If developing software is like waging war then who is the enemy?
Sources of Uncertainty
- Team resources unfamiliar with the technologies to be used
- Requirements that are incomplete or inconsistent
- Technical requirements that turn out to be infeasible
- Inability to understand project dependencies
- Inability to formulate a correct and understandable plan
In that battle about 400 men on horses attacked 20 battalions of infantry supported by 50 artillery pieces.
Needless to say it was a slaughter.
The Art of War (online)
- Leading to advantage
- Using Spies
- Strengths and weaknesses
- Winning whole
How often do you see developer's say that they can code anything over a weekend over a case of Red Bull?
This statistic has haunted us for 50 years.
Leading to advantage
Tactical Dispositions, p. 15
Software projects succeed when there is a rhythm to the attack on complexity. High intensity problem solving needs to be followed by lower intensity stability building. The team must move at a sustainable pace or risk burning out. Software teams do not succeed when they are working 10+ hours a day; they become like dull swords -- unable to do anything.
Using SpiesForeknowledge cannot be elicited from ghosts and spirits; it cannot be inferred from comparison of previous events, or from the calculations of the heavens, but must be obtained from people who have knowledge of the enemy's situation.
Using Spies, 5 —6
intangible, i.e. invisible, odorless, and untouchable. Your spies are your business analysts, architects, and project managers.
Your business analysts will work with the business to define the scope of the complexity. Ask for anything you want, but commit to build all you ask!
Remember that all large complex systems that work are built from small simple systems that work, so aim to build the smallest usable product initially. Asking for too much and providing insufficient resources and/or time will lead to a failed project.
The architects provide checks and balances on the business analysts to make sure that the project is feasible.
The architects will provide key dependency information to the project managers who make sure that a proper execution plan is created and followed.
Each of these spies sees a different aspect of complexity that is not visible to other people. Unless the reports of three types is combined effectively you risk not knowing the extent of the software that you are trying to build. If you go into battle without proper intelligence you are back to the scenario of the Charge of the Light Brigade.
Strengths and weaknesses
Weak Points and Strong, p. 29—30
Waging War, p. 3
In the pressure cooker you can expect key personnel to defect and put you into a worse position. How many times have you found yourself on a Death March?