Distribuert utvikling - Distributed development
Et distribuert utviklingsprosjekt er et forsknings- og utviklingsprosjekt (FoU) som gjøres på tvers av flere forretningssteder eller lokasjoner. Det er en form for FoU der prosjektmedlemmene kanskje ikke ser hverandre ansikt til ansikt, men de jobber alle sammen mot resultatet av prosjektet. Ofte gjøres dette via e-post , Internett og andre former for rask langdistansekommunikasjon. Distribuert utvikling var i stor grad banebrytende av programvaresamfunnet med åpen kildekode .
Det er forskjellig fra outsourcing fordi alle organisasjonene jobber sammen på et likt nivå, i stedet for at en organisasjon utleverer arbeidet til en annen. Det ligner på et virtuelt team, men med et forskningselement.
Kjennetegn ved distribuert utvikling
Utviklere er fordelt på flere steder og jobber med samme prosjekt eller produkt. Årsakene til distribusjonene spiller ingen rolle, de kan inkludere tilgjengeligheten av ressurser på forskjellige steder, nærhet til visse klynger, nærhet til kunder eller kostnadsfordeler.
Folk kan spesialisere seg i et distribuert utviklingsmiljø, men de samarbeider aktivt for å oppnå det felles målet. Det må være en programleder eller prosjektleder et sted i prosjektledelsesmiksen. I et distribuert miljø deler prosjektmedlemmer ideer, informasjon og ressurser. Et sentralt krav er at all kommunikasjon må være åpen for alle involverte, og ikke begrenset til de som er i samme kontorbygg. Dette oppnås vanligvis ved å bruke internettbasert samarbeid. Kommunikasjonsverktøy som ofte brukes, inkluderer GitHub og wikier .
Distribuert utvikling er en av de høyeste former for samarbeid i ethvert teknisk eller vitenskapelig FoU- miljø. Det er vanligvis ikke en barriere for forretningssuksess, men det kan variere fra å være noe av en byrde til vanskelig å oppnå, siden det krever høye ledelsesmuligheter, et utmerket kommunikasjonsmiljø, et politisk fritt miljø, en svært effektiv infrastruktur, et godt utviklet organisasjonskart, og hyppig interaksjon. Det viktigste er at ledelsen trenger å tro på oppsettet og sette inn tiltak for å belønne overholdelse, samt være veldig streng med de som ikke overholder. Ifølge gründeren Mitch Kapor gjør mange selskaper distribuert utvikling med hell.
Suksessfaktor
Det er flere ulemper med distribuert utvikling. Studier har vist at ansatte at alle jobber på samme kontor er flinkere til å koordinere sitt arbeid og mer produktive. På samme måte kan programvare som er tett integrert være veldig vanskelig å utvikle ved hjelp av distribuert utvikling. Av disse grunner krever mange store selskaper, inkludert Facebook, at alle ansatte skal jobbe på samme kontor.
Til tross for dette er det flere fordeler med distribuert utvikling for en bedrift. Det gjør det mulig for bedrifter å ansette en mer variert arbeidsstyrke, inkludert ansatte som ønsker å jobbe hjemme eller ikke ønsker å flytte lange avstander. Det tillater bedrifter å ansette kvalitetsarbeidere til en lavere kostnad, i motsetning til de veldig høye lønnene i Silicon Valley. Distribuert utvikling er ofte mer egnet for modulær programvare, der forskjellige deler av programmet kan utvikles separat.
Det er tre viktigste suksessfaktorer for et distribuert utviklingsprosjekt:
- Velg og / eller rekrutter gode, sterke, dyktige mennesker.
- Bruk litt penger på møter ansikt til ansikt, spesielt i begynnelsen av hvert større prosjekt.
- Bygg et organisasjonsdesign som støtter arbeid i en distribuert utvikling, inkludert riktige insentivsystemer.
Ved å gjøre disse tre handlingene kan man oppnå fordeler utover ren outsourcing eller offshoring , nemlig mye høyere motiverte ansatte i alle deler av det distribuerte nettverket, høyere oppbevaring og absolutt en gevinst fra mangfoldet i nettverket.
applikasjoner
Globalt distribuert programvareteknikk
Global Distributed Software Engineering er bedriftsapplikasjonen for en distribuert utviklingsprosess. Bedrifter kan jobbe i et distribuert miljø på grunn av team som jobber forskjellige steder, eller på grunn av Outsourcing eller Offshoring . En populær tilnærming til distribuert programvareutvikling er Distribuert agil programvareutvikling .
Tidligere ble nesten all programvareutvikling utført av team der alle medlemmer: teamleder, designere, utviklere og testere, jobbet sammen i nær fysisk nærhet. Gjennom årene begynte selskapene å vokse i størrelse og kompleksitet, noe som tvang dem til å utvikle programvare globalt. Videre hadde andre krefter også sin innvirkning, for eksempel begynte økonomiske krefter og globalisering å gjøre nasjonale markeder til globale markeder, noe som også førte til mer konkurranse.
Som forklart tidligere om suksessfaktorer , gir utvikling av programvare i et distribuert miljø flere fordeler, noe som også er en faktor for selskaper som begynner å utvikle programvare globalt, for eksempel:
- Lavere utviklingskostnader på grunn av for eksempel lavere lønn i andre regioner i verden
- Tidseffektivitet, øk antall daglige arbeidstimer
- Tilgang til et større faglært basseng
- Nærmere nærhet til selskapets marked og kunder
Globalt distribuert programvareteknikk har mange utfordringer når det gjelder kommunikasjon. Studieområdet for kommunikasjon i distribuert programvareutvikling adresserer disse utfordringene og fokuserer på å hjelpe bedrifter med å ha pålitelige kommunikasjonskanaler uten misforståelser.