Team programming: Difference between revisions

Content deleted Content added
SmackBot (talk | contribs)
m Date/fix the maintenance tags or gen fixes
Line 7:
Traditional software development has nearly always involved multiple [[computer programmers|programmers]] working on separate parts of a computer system for any project of significant scope and scale -- a method of [[division of labour]]. Clearly, it is unreasonable to imagine that a single programmer could adequately complete all the required work for a complex system working entirely on their own within a viable timescale; and as development projects become more complex, specialised expertise becomes of paramount importance in aspects such as [[systems analysis]], [[quality assurance]], and technical challenges posed by individual components. Initially this tended to be an informal process, but with the rise of commercial software development as a viable industry, a more industrial and systematic approach became necessary.
 
SystemsPaper-orientated systems methodologies originally designed for undertaking governmental projects, such as the [[Structured Systems Design and Analysis MethodologyMethod]] (SSADM), assigned individual people to carry out individual tasks, and specified the role of designers as being clearly separate from that of the programmers in the [[waterfall model|waterfall software development model]]. This methodology also clearly separated each of the individual "life-cycle" stages through which a system development project progressed. The resulting "paper trail" for a systems development project could take so long to build that often parts of the analysis documentation -- or sometimes its entirety -- was out of date by the time of actual development, rendering them worse than useless.
 
== Modern trends: multiple programmers to one sub-task ==