Software Development Methods part 2
In the first part of the article regarding the similarities between Sun Tzu’s Art of War and software development we talked about how you should make sure that you show incremental results in order to build team confidence and about focusing on bringing added value to the business goals.
We will now look at how the concepts from the Art of War apply to other aspects of software development.
5. Energy
1. The control of a large force is the same principle as the control of a few men: It is merely a question of dividing up their numbers.
2. Fighting with a large army under your command is nowise different from fighting with a small one: It is merely a question of instituting signs and signals.
Organization is one of the functions of management. In Agile, the best organization and control instruments are the dashboard and the burn-down chart. For small teams, the Daily Scrum will help the organization. For larger teams, there is the Scrum of Scrums that allows clusters of teams to discuss their work, focusing especially on areas of overlap and integration.
21. The clever combatant looks to the effect of combined energy and does not require too much from individuals. Hence his ability to pick out the right men and utilize combined energy.
The concept of Agile self-organized teams means that the team decides how best to allocate its resources to take advantage of each team member's various strengths. Each team member applies his expertise to the problems. The synergy that results improves the entire team's overall efficiency and effectiveness.
6. Maneuvering
1. In war, the general receives his commands from the sovereign.
2. Having collected an army and concentrated his forces, he must blend and harmonize the different elements thereof before pitching his camp.
The team manager receives the investment from the business manager, who should not intrude into the team's activity. However, the team manager and the team itself should be held responsible for the results. Not necessarily related to Agile, the author considers the separation between the technical and the business area and the principle of no intrusion of great importance for the project's success.
7. Thus, if you order your men to roll up their buff-coats, and make forced marches without halting day or night, covering double the usual distance at a stretch, doing 100 LI in order to wrest an advantage, the leaders of all your three divisions will fall into the hands of the enemy.
9. If you march 50 LI in order to outmaneuver the enemy, you will lose the leader of your first division, and only half your force will reach the goal.
10. If you march 30 LI with the same object, two-thirds of your army will arrive.
As a basic concept in Agile, working in iterations is one road to success. A great effort (like trying to cover the 100-LI distance) will be exhausting and may generate severe consequences. Operating in small iterations will bring continuous value to the business.
21. Ponder and deliberate before you make a move.
Carefully analyze, estimate, plan, prioritize and reprioritize and be prepared to respond to change. Don't forget to hold retrospectives.
23. The Book of Army Management says: On the field of battle, the spoken word does not carry far enough: hence the institution of gongs and drums. Nor can ordinary objects be seen clearly enough: hence the institution of banners and flags.
24. Gongs and drums, banners and flags, are means whereby the ears and eyes of the host may be focused on one particular point.
The spoken word may not have enough impact. Without being a specific Agile concept, but largely applied in management, a dashboard is a visual instrument of communication, together with the burn-down chart.
7. Variation in tactics
3. There are roads which must not be followed, armies which must be not attacked, towns which must be besieged, positions which must not be contested, commands of the sovereign which must not be obeyed.
An experienced team manager should feel which choice to make, what is possible to do under some conditions and what is not possible. In the spirit of the idea of separation between the technical and the business area, there are still commands not to be followed. This is many times hard to do in the real world, as it may generate severe conflicts. The Agile concepts offer us the fable of pigs and chickens in project development: The pigs are the ones committed to work and essential to the project's success (like the developers), while the chicken are the ones only involved in the project (like the business manager). How to get a balance between them is more an art than a science.
8. Terrain
18. When the general is weak and without authority; when his orders are not clear and distinct; when there are no fixed duties assigned to officers and men. . . , the result is utter disorganization.
The clear and distinct orders may be translated as the clear acceptance criteria that should accompany a user story. If these can be interpreted in many ways or, worse, if they are not complete or are even missing, the implementation of the user story is in danger of failing.
23. If fighting is sure to result in victory, then you must fight, even though the ruler forbid it; if fighting will not result in victory, then you must not fight even at the ruler's bidding.
Whenever you can add business value to the project, do it, no matter what the orders of the business manager are.
In the third and last part of our article we will take about how concepts such as attack by fire, the use of spies and the nine situations can find their equivalent in software development.
Software Development Methods - 1
Software Development Methods - 3
Software Development Specialist