Content deleted Content added
No edit summary |
Merge from Mob programming following unopposed 2022 proposal; short text and context; see Talk:Team programming |
||
Line 15:
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.
===Mob programming===
'''Mob programming''' (sometimes informally called '''mobbing''', '''ensemble programming''' or '''posse programming'''<ref>{{cite journal|author1=Edward Sykes (Heretsch) |author2=Rajpal Singh|year=2012|title=ACCU 2012 Lightening Talks: Posse Programming|url=https://accu.org/conf-docs/PDFs_2012/Lightning_Talks_Fri_Ed.pdf|journal=Accu2012 Lightening Talks}}</ref>) is a software development approach where the whole team works on the same thing, at the same time, in the same space, and at the same computer. This is similar to [[pair programming]] where two people sit at the same computer and collaborate on the same code at the same time. With mob programming, the collaboration is extended to everyone on the team, while still using a single computer for writing the code and inputting it into the code base.<ref>{{cite journal|last=Zuill|first=Woody|year=2014|title=Mob Programming: A Whole Team Approach|url=https://www.agilealliance.org/resources/sessions/mob-programming-a-whole-team-approach-aatc2017/|journal=Agile2014 Conference Experience Reports|pages=11}}</ref>
{{Quote
|text=The basic concept of mob programming is simple: the entire team works as a team together on one task at the time. That is: one team – one (active) keyboard – one screen (projector of course).
<ref>{{cite web|last1=Hammarberg|first1=Marcus|title=Mob programming – Full Team, Full Throttle|url=http://codebetter.com/marcushammarberg/2013/08/06/mob-programming/|website=CodeBetter|publisher=CodeBetter|access-date=9 September 2014|archive-date=6 August 2013}}</ref>
|author=Marcus Hammarberg
|title=Mob programming – Full Team, Full Throttle}}It builds on principles of [[lean manufacturing]], [[extreme programming]], and [[lean software development]]. Early use of the phrase "mob programming" was made in ''Extreme Programming Perspectives''.<ref>{{cite book |author1=Moses Hohman |author2=Andrew Slocum |chapter=Chapter 28. Mob Programming and the Transition to XP |title=Extreme Programming Perspectives |date=2002 |publisher=Addison-Wesley}}</ref>
In addition to software coding, a mob programming team can work together to tackle other typical software development tasks. Some examples include: defining [[user stories]] or requirements, designing, [[software testing|testing]], [[software deployment|deploying software]], and working with subject matter experts. Almost all work is handled in working meetings or workshops, where all the people involved in creating the software are considered to be team members, including the customer and business experts.<ref>{{cite web|last1=Nigri|first1=Julien|title=Le Mob Programming : Présentation|url=http://blog.soat.fr/2014/05/le-mob-programming-presentation/|website=Soat|publisher=Soat|access-date=9 September 2014|language=fr}}</ref> Mob programming also works for distributed teams in the same virtual space using screen sharing technology.<ref>{{Cite web|url=https://www.remotemobprogramming.org/|title=Remote Mob Programming|last1=Harrer|first1=Simon|last2=Christ|first2=Jochen|access-date=29 April 2019|last3=Huber|first3=Martin}}</ref>
== See also ==
* [[Pair programming]]
* [[Extreme programming]]
== References ==
<references/>
==External links==
* [https://mobprogramming.org Mob Programming]
{{DEFAULTSORT:Team Programming}}
|