Programming is a challenging task. You need to focus, to solve a problem, and to create a solution for problem. There are so many ways to do programming. In Agile environment, programming can be done through three ways. Solo programming, Pair Programming, and Mob Programming. This article will discuss when you choose one compare to the others.
Solo (all in one)
This is just like a song from Katty Perry featuring Clean Bandit. Solo! Solo means you do by yourself. You did plan, do, codes, and test activities. The solo great when
Project is simple and less complexity.
Less external dependencies and stakeholders.
Limited user experience
Benefits of solo programming are:
Faster in development
Codes are understandable.
Easy to manage.
Challenge in solo programming is:
Limited design principles applied during the development process.
Exhausted and bored
Undocumented codes
You can learn more here The Personal Software Process (PSP) (cmu.edu)
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
Pair (~2 developers in same role)
Pair is a couple way to do programming activity. Pair programming is great when.
Pair is available with different skills and knowledge.
Pair is great when face-to-face communication.
Pair is great when we have same role in a team.
Benefits of pair programming are:
Well-design product two head is better than one.
Transfer knowledge happens.
Shared ownership of the codes. The pair knows the codes.
Challenge in pair programming is:
Slow down the productivity.
Hard to implement in distributed environments (e.g., different time zones)
Suitability of pair person.
You can learn more about pair programming here On Pair Programming (martinfowler.com)
Mob (> 2 members in different role)
Mob is more than two peoples work together. Mob is great when.
Having members with different skillset
Having a good workspace to work together.
Having a jell team with good communication model.
Benefits of mob programming
Project understandability is the highest among the team members.
Validation and verification happen between members.
Near real time feedback model to shape the well-designed project
Challenge in mob programming
Specific infrastructure is needed.
The communication between members should be fluid between team members.
Limited productivity when the others work while the others only see the process.
You can learn mob programming here Mob Programming Basics – Mob Programming
So which one you prefer as your programming style? Put a comment please.
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";