The Art of War, although originally written as a guide for military strategists, has been adopted and widely applied in government, business and corporate sectors. Many of its concepts can similarly be applied to the software development industry. Although a software team is not in direct war or conflict with another party, we can think of the software project as the enemy which the team has to conquer. The book is divided into chapters, each focusing on an important aspect of a war. Here, we’ll tackle some of the chapters and look into how we can relate them to the complexities of software projects.
The first chapter touches on the importance of planning, taking into consideration the fundamental factors that define the outcome of war. Some books mention five factors, whereas some discusses as many as eight. The table below lists eight factors as enumerated in Sun Tzu: War and Management by Wee Chow Hou, Lee Khai Sheang, and Bambang Walujo Hidajat. The first and second columns were taken as is from the book. I added the third column based on what we can say as the equivalent of each factor in terms of software development projects.
1. Moral Influence / Politics - consist of social relations involving authority or power and refer to the regulation of a political unit, and to the methods and tactics used to formulate and apply policy. In software organizations, it is equivalent to the corporate or organizational politics. The Art of War emphasizes on harmony between the ruler and the people, and the same principle applies to any other businesses such as the software industry.
2. Generalship / Commander – stands for the general’s qualities of wisdom, sincerity, benevolence, courage, and strictness. The project manager is the war general of software development. His leadership, organizational, management, and technical skills greatly affect the outcome of the project.
3. Climate / Weather – signifies night and day, cold and heat, fine days and rain, and change of seasons. The market conditions and the competitive view represent the weather of software projects. They are the guides that allow an organization to produce a more marketable and competitive product.
4. Terrain – refers to whether the ground is traversed with ease or difficulty and to whether it is open or constricted. The IT infrastructure, development and testing tools, and the technologies we use are our terrain. Using the right tools and technologies could help shorten the schedule and produce better quality products. On the other hand, using the wrong ones can be an enormous hindrance to development progress.
5. Doctrine / Law – is the organization of the army, regulation of supply routes, and management of military materials. The software processes utilized by the organization represent the doctrine. It is important that the correct processes are in place and that they are implemented and followed effectively.
6. Strengths – refers to the physical strength and equipping of the army. The organizational and technical quality of the team, including its leaders, defines the strength of a software development army. A well-equipped team has a greater chance of overcoming the technical and non-technical challenges of software projects.
7. Training – means preparing the army to effectively carry out operations and strategies, and this is equally important in software projects. Training directly improves the sixth factor mentioned above - strength. However, the timing and type of training is highly important. The benefits of training degrade the longer it takes for the people to have a chance to apply what they learn to actual work.
8. Discipline – emphasizes on the benefits of rewards, and according to the book, the army that has better administration of rewards and punishments will be in a better fighting spirit. Similarly, motivated developers can easily become more productive than de-motivated ones. Although motivation comes not only from rewards, it is vital thatfair and effective rewarding practices are in place.
Waging War/The Challenge
This chapter tackles the economy of war, the cost of operations, and the importance of speed. A speedy victory is the main objective in war, and it is also one of the three main objectives in software development. The other two are quality and cost. A wise general sees to it that his troops feed on the enemy. As a wise project manager sees to it that the developers gain momentum and inspiration by conquering small milestones throughout the project. A prolonged operation is both costly and undesirable in wars, as a prolonged development without a sense of accomplishments is not only costly but de-motivating to the developers.
Attack by Stratagem/The Plan of Attack
This part of the book focuses on offensive strategy, and the four important aspects of the enemy that needs to be attacked to achieve victory. In order of importance: Strategy, Alliances, Army, and Cities. Going through a software project, there are also certain areas where offensive focus is essential. One is the development plan, which represents the team’s strategy. The project risks and external dependencies are the enemy alliances that can thwart the success of software projects. The deliverables represent the enemy army, and these include the design, the code, the documentations, and the product itself. Finally, the users or target customers represent the cities. Therefore, in software development projects, success is more likely by attacking, or proactively focusing the team’s efforts and resources to the customer requirements, development plan, risks and dependencies, and design and development deliverables.
Weak Points and Strong/Illusion and Reality
This chapter explains the importance of building strategic strength and deception. Software projects have a tendency of deceiving us. More often than not, our schedules are optimistic, and we usually under-estimate the complexity and effort requirements of development and testing tasks. According to the book,
Analyze the enemy’s plans so that you will know his shortcomings as well as strong points. Agitate him in order to ascertain the pattern of his movements. Lure him out to reveal his dispositions and ascertain his positions. Launch a probing attack in order to learn where his strength is abundant and where deficient.
Similarly, there are ways to improve our view of reality in software projects. Thoroughly analyze the specifications of the software, study similarities with previous projects and existing products, and perform early prototyping or proof of concept activities. This is equivalent to probing the project and getting more accurate basis for our plans and estimates.
Variation in Tactics/The Nine Variations
This chapter discusses the significance of the army’s flexibility with respect to different battle grounds and their ability to respond to varying circumstances. In terms of software projects it best relates to the team’s analysis and problem solving capabilities. The book quotes,
To take different measures suited to the nine varieties of ground, to take aggressive or defensive tactics in accordance with different situations, and to understand soldier’s psychological states under different circumstances, are matters that must be studied carefully by a general.
Development plans are never perfect, and so the project manager must be capable of seeing the necessary changes needed during the course of the project. The team’s ability to adjust to certain situations especially to resolve a critical issue is vital for continuous progress and eventually, project success.
The Art of War is full of wisdom and teachings, most of which apply specifically to military conditions. But as explained in this article, there are principles that can be correlated to the software development industry. These are just a few examples, and the rest of the chapters can easily be as helpful. I recommend the interpretation by General Tao Hanzhang, and translated by Yuan Shibing in the book Sun Tzu’s Art of War: The Modern Chinese Interpretation.
The original post can be found here.