Content deleted Content added
de-orphaned |
No edit summary |
||
Line 11:
== Modern trends: multiple programmers to one sub-task ==
Difficulties were experienced with these older methods, such as costs spiralling out of control as systems grew, and schedules failing to meet time-to-market targets. These issues gave rise to techniques such as [[pair programming]], [[mob programming]] (aka. [[ensemble programming]]), along with new systems lifecycle structures such as the [[Boehm spiral]]. Specification of these new approaches began in the mid-1980s and continues today. Many of these strategies involve multiple programmers working collaboratively on the ''same'' piece of [[source code]] as opposed to being ''individually'' responsible for individual tasks. For example, in "pair programming", responsibility for the resulting product is equally shared between two programmers who work on their assigned sub-task together. Benefits of this approach include the ability for deficiencies in knowledge and ability in specific areas to be compensated for by the other programmer; in addition, the shared responsibility is thought to increase incentives for meeting project deadlines and quality targets.
This technique is frequently used in newer programming methodologies that are focused around [[object-oriented]] programming techniques, such as the [[Rational Unified Process]] and [[Extreme Programming]] (acronym "XP"), often in combination with design documentation methods such as the [[Unified Modelling Language]] (UML). In object-oriented programming languages, software functionality forms modular, discrete units (termed [[class (computer science)|class]]es for the functional elements, and [[Modular programming|packages]] for constellations of interlinked classes that carry out a particular function); the two most well-known of these are [[C++]] and [[Java (programming language)|Java]]. This lends itself well towards the division of programming projects into sub-teams, although issues are still often encountered in integrating the resulting product following completion of each sub-task.
|