Conway seadus

Allikas: Vikipeedia
Jump to navigation Jump to search

Conway seadus on nimetatud arvutiteadlase Melvin Conway järgi, kes tutvustas ideed 1967. aastal.[1]

Seaduses märgitakse, et

„organisatsioonid, mis loovad süsteeme, loovad neid reeglina koopiana iseenda kommunikatsiooniliinidest ja struktuurist.“

M. Conway[2]

Seadus põhineb tähelepanekul, et tarkvara mooduli loomiseks peavad mitu autorit omavahel tihedalt suhtlema. Seega, tarkvaraliideste struktuur peegeldab süsteemi ehitanud organisatsioonide sotsiaalset hierarhiat. Conway seadus oli mõeldud kui tähelepanek, kuigi mõnikord kasutatakse seda humoorikas kontekstis. See tähelepanek ristiti Conway seaduseks 1968. aastal toimunud sümpoosionil National Symposium on Modular Programming (eesti keeles 'modulaarse programmeerimise sümpoosion').[3]

Variatsioonid[muuda | muuda lähteteksti]

Avatud lähtekoodi eestvedaja Eric S Raymond sõnastas Conway seaduse ümber tuntud teoses "The New Hacker's Dictionary" ('uus häkkeri sõnaraamat'). Ta ütles, et tarkvara organiseerimise viis ja tarkvarameeskonna struktuur on kongruentsed, ja võttis Conway kirjeldatud näite kokku sõnadega: "Kui sul on neli rühma, kes töötavad kompilaatori kallal, siis sa saad 4-pass kompilaatori."[4][5]

Seda versiooni on kõige lihtsam mõista. See käsitleb mikroolukorda. Kui selle olukorra vältimiseks ei tehta teadlikuid jõupingutusi, siis see ka juhtub. Paljude arendajate ühine positsioon näib olevat probleemi jaotamine mitmeks komponendiks, mis on võrdne arendajate arvuga. Kuigi see võib tunduda lihtne viis, kuidas probleemi lahendama hakata, siis on üpris ebatõenäoline, et komponendid on võrdse suurusega ning selliselt tuletatud disain ei ole tõenäoliselt eriti hea.

Mõnikord saab probleemi lahendada oluliselt parema disainiga, kasutades vähem mooduleid ja vähem programmeerijaid.

James O. Coplien ja Neil B. Harrison ütlesid: "Kui organisatsiooni osad (nt meeskonnad, osakonnad või allüksused) ei kajasta täpselt toote olulisi osi või kui organisatsioonide vaheline suhe ei kajasta suhteid toote osade vahel, siis on projekt hädas... Seega veenduge varakult, et organisatsioon sobib kokku toote arhitektuuriga."[6]

See muster kehtib makrokeskkonna kohta ja lühidalt öeldes käsib „viia arhitektuuri organisatsiooniga kooskõlla”. Süsteemi ülesehitust mõjutavad sotsiaalsed ja majanduslikud tegurid, millest organisatsiooni tõeline (mitte ametlik) suhtlusstruktuur on tugevaim. Mustrit kohaldades peab leidma vastuse paljudele küsimustele: kuidas seda rakendada, mida täpselt ehitada, kust alustada ja kuidas muuta organisatsiooni nii, et toetada toote arhitektuuri.

Conway seaduse mõju võib märgata näiteks suurettevõtete veebilehtede disainis. Kasutatavuse ekspert Nigel Bevan märkis 1998. aastal: "Organisatsioonid loovad sageli sellise sisu ja struktuuriga kodulehti, mis peegeldavad ettevõtte struktuuri ja ei arvesta kodulehe kasutaja vajadustega."[7]

Tõendid[muuda | muuda lähteteksti]

MIT-i ja Harvardi ärikooli (inglise keeles Harvard Business School) teadlased on trükis avaldanud tõendeid, mis toetavad Conway seadust. Nad nimetasid Conway seaduse peegeldushüpoteesiks ja leidsid kindlaid tõendeid, mis kinnitavad seda hüpoteesi, samuti tõdesid nad, et suured erinevused tarkvaramoodulite ülesehituses on kooskõlas arvamusega, et jaotatud meeskonnad kalduvad arendama modulaarsemaid tooteid.[8]

Conway seadust kinnitavaid uurimusi on teinud ka Nagappan, Murphy ja Basili Marylandi ülikoolis koostöös Microsoftiga[9] ning Syeed ja Hammouda Tampere tehnoloogiaülikoolis Soomes.[10]


Viited[muuda | muuda lähteteksti]

  1. "Conway's Law". www.melconway.com. 
  2. How do Committees Invent?, http://www.melconway.com/Home/Committees_Paper.html 
  3. Yourdon, E. N., and Constantine, L. L. Structured Design (Prentice Hall, 1978), p. 400
  4. Eric S. Raymond (01-10-1996). The New Hacker's Dictionary - 3rd Edition. ISBN 978-0-262-68092-9.  Kontrolli kuupäeva väärtust kohas: |date= (juhend)
  5. Eric S. Raymond, Conway's Law, http://catb.org/~esr/jargon/html/C/Conways-Law.html 
  6. Coplien and Harrison (juuli 2004). Organizational Patterns of Agile Software Development. ISBN 978-0-13-146740-8. 
  7. "Usability Issues in Web Site Design" (PDF). 
  8. "Exploring the Duality between Product and Organizational Architectures : A Test of the "Mirroring" Hypothesis" (PDF). Hbs.edu. 
  9. Nachiappan Nagappan, Brendan Murphy & Victor Basili, 2008, "The Influence of Organizational Structure On Software Quality: An Empirical Case Study," ACM TechReport MSR-TR-2008-11, http://research.microsoft.com/pubs/70535/tr-2008-11.pdf.
  10. M. M. Mahbubul Syeed & Imed Hammouda, 2013, "Socio-technical Congruence in OSS Projects: Exploring Conway’s Law in FreeBSD," In Open Source Software: Quality Verification, Part I (Etiel Petrinja, Giancarlo Succi, Nabil El Ioini & Alberto Sillitti, Eds.), IFIP Advances in Information and Communication Technology Volume 404 (Proceedings of the 9th IFIP WG 2.13 International Conference, OSS 2013, Koper-Capodistria, Slovenia, June 25–28, 2013), pp. 109-126, Berlin:Springer, DOI 10.1007/978-3-642-38928-3_8, ISBNs 9783642389276 and 9783642389283, https://link.springer.com/chapter/10.1007/978-3-642-38928-3_8#page-1.

Lisalugemist[muuda | muuda lähteteksti]