Software Development Methods part 3

Software Development Methods part 3

In this last part we will look at how the concepts of the nine situations, attack by fire and the use of spies apply to software development. We will also draw some conclusions on the ideas we have talked about in our three part series.

In this last part we will look at how the concepts of the nine situations, attack by fire and the use of spies apply to software development. We will also draw some conclusions on the ideas we have talked about in our three part series.

9. The nine situations

10. Ground on which we can only be saved from destruction by fighting without delay is desperate ground.

24. Soldiers when in desperate straits lose the sense of fear. If there is no place of refuge, they will stand firm. If they are in hostile country, they will show a stubborn front. If there is no help for it, they will fight hard.

25. Thus, without waiting to be marshaled, the soldiers will be constantly on the qui vive; without waiting to be asked, they will do your will; without restrictions, they will be faithful; without giving orders, they can be trusted.

There may be situations when the developers must fight heroically for accomplishing deadlines. This may happen in Agile teams, even if the method states the 40-hour working week -- or, at least, not working overtime for two weeks in a row. The idea of the 40-hour week is that team members should work the hours that they can sustain quality. But the practice offers situations when this rule must be broken.

10. The attack by fire

17. Move not unless you see an advantage; use not your troops unless there is something to be gained; fight not unless the position is critical.

19. If it is to your advantage, make a forward move; if not, stay where you are.

The interpretation to be done to these ideas is related to the Agile concept of the minimal marketable feature (MMF). This is the smallest piece of functionality that can be delivered and that has value to both the organization delivering it and the people using it. If there is no value in some action, the development team should not do it.

11. The use of spies

6. Knowledge of the enemy's dispositions can only be obtained from other men.

14. Hence it is that with none in the whole army are more intimate relations to be maintained than with spies. None should be more liberally rewarded. In no other business should greater secrecy be preserved.

16. They cannot be properly managed without benevolence and straightforwardness.

27. Spies are a most important element, because on them depends an army's ability to move.

We would associate spies with the architects, consultants and business analysts who bring the information to developers. Offering precise information about technologies and tools to be used, about their strong points and shortcomings and about business logic is of crucial importance to the project success. Their activity should be more liberal and less tied to patterns. The results of their work will allow the developers to implement good technical solutions.

Software Development Methods part 3.png

12. Conclusions and future analysis

For thousands of years, humankind has built ideas and strategies in the attempt of getting power, money, and dominance over others. Through politics, economics, or war, the final goal was achieving power. Things haven't changed much, they have just taken different forms -- software development and market launches are some of them.

This article has tried to highlight similarities between ancient war activity and modern software development activity. We have referenced -- but did not remain exclusively tied to -- the most famous war strategy treatise (Sun Tzu's The Art of War) and the most widely used software development method -- Agile. We have discussed where they overlap and where they seem to be different, giving modern meaning to some of the quotations from the ancient military Chinese book. This author strongly believes that no theory or doctrine (including the ones discussed within this paper) should be taken as absolute truth. Things must be regarded in context, and a good decision does not necessarily mean literally following a given principle. A good decision means, in many cases, using a mixture of knowledge, experience, intuition, and, of course, luck.

Besides Agile, there are other software development methods to be explored in detail (the traditional Waterfall, Kanban, or an Agile-Waterfall hybrid method being some the main candidates).

War continues to be a main concern today, and it remains one of the most consistent activities in history. Looking back at the ideas of 2,500 years ago, it is surprising how close they are to the present ones. We just hope that their application will be driven toward more peaceful domains -- such as software development.

Software Development Methods - 1
Software Development Methods - 2

Catalin Tudose

Software Development Specialist

Still have questions?
Connect with us