Programvaruindustrin har varit i kris sedan starten. Som Blazer konstaterade för 20 år sedan är "[Programvara] otillförlitlig, invecklad sent, oansvarig för förändringar, kostnadseffektiv och dyr och har varit under de senaste 20 åren" [4]. I en undersökning av programvaruentreprenörer och statliga kontraktsanställda ansåg över hälften av de tillfrågade att överskridningar i kalendern, kostnadsöverskridanden, kod som krävde interna ändringar innan de var användbara, och kod som var svår att ändra var vanliga problem i de programvaruprojekt de övervakade [22] Än idag är problem med programvarusystem vanliga och högt offentliggjorda händelser. Även om det inte finns någon enda orsak till programvarukrisen, en stor bidragsgivare är problemet med att samordna aktiviteter och samtidigt utveckla stora mjukvarusystem. Vi kommer att hävda att denna samordning blir mycket mer dficult i takt med att projektens storlek och komplexitet ökar. Coorclmation dfficulties är dock inte begränsade till mjukvaruutveckling, men är en inneboende aspekt av arbetet i alla stora organisationer. Ur detta perspektiv bör några av de mekanismer som används för att samordna arbete i stora organisationer i allmänhet ha tillämplighet på programvaruutveckling. I synnerhet undersöker vi de olika rollerna för formella och mikromala komumkatlonmekanismer vid samordningen av arbetet med programvaruprojekt. Vi kommer att hävda att de flesta av de befintliga verktygen för samordningsstöd har använt formella kommunikationsförfaranden, och att det också finns ett behov av att vårda informella kommunikationsförfaranden. Samordning har definierats som riktningen för "initiduals" ansträngningar för att uppnå gemensamma och uttryckligen erkända mål" [3] och "integrationen eller sammankopplingen av olika delar av en organisation för att utföra en kollektiv uppsättning uppgifter" [23]. Inom programvaruutveckling innebär det att olika personer som arbetar med ett gemensamt projekt enas om en gemensam definition av vad de bygger, delar information och maskerar sin verksamhet. De måste ha en gemensam syn på vad den programvara de bygger ska göra, hur den ska organiseras och hur den ska passa med andra programvarusystem som redan finns eller genomgår parallellutveckling. För att bygga programvaran effektivt, måste de dela detaljerade designspecifikationer och information om progress av programvarumoduler. Sammanfattningsvis måste de samordna sitt arbete så att det blir gjort och passar ihop, så att det inte görs överflödigt, och så att delar av arbetet överlämnas snabbt. Egenskaper hos programvaruutveckling
Tysk och Streeter betonade osäkerheten, det ömsesidiga beroendet och den informella kommunikationen av programvaruutveckling REF.