This was the statement a well-known software company CEO recently made in a speech, to describe the everyday battle against business competitors. It was the first time I had thought of software development as war, and it made sense to me. As this impassioned CEO went on to talk about the differences between leadership and management, I started to connect dots I had not previously seen. Software is war and to win the war you need a strong military leader, not a manager.
History disproves the Whitfield and Strong song War ('What is it good for? Absolutely nothing'). While wars cause terrible tragedy, they have led to some extremely important technological advancements. The American Civil War gave us the snorkel and the submarine; World War 1, air traffic control and sanitary napkins; and WWII gave us penicillin and the first computer used for decryption. War is great for innovation. As the old saying goes, 'necessity is the mother of invention'.
War has not only encouraged technological advancements but process and methodology advancements as well. A recent paper by McKenna and Whitty called 'Agile is Not the End-Game of Project Management Methodologies' contains a great chart depicting the explosion (pun intended) of methodologies that wars initiated (http://eprints.usq.edu.au/23649/1/Agile%20is%20Not%20the%20End-Game%20of%20Project%20Management%20Methodologies.pdf#!).
Is innovation so hard in day to day life because we don't consider the 'enemy' encircling us whenever we write a line of code or attend a meeting? Is the level of 'necessity' not high enough? Is innovation lacking due to the pressures of daily trench warfare - for example, that the sales guy has sold something we don't yet have? Is it due to a lack of 'basic training' - does everyone in your team know how to use the tools they have been given, or not? So many of us have the weapons of mass instruction, but not the skills to implement them.
If software is war, the battles are the scrum sprints. Each battle defines your progress, each win encourages the troops, each defeat means a re-think of the battle plan, each loss, a reorganization. With any software development, but particularly within an Agile environment where innovation and communication are key, having the right leader at the helm inspiring the team to do their best every day, not just at release time, is so important. A great military leader is not the shy, retiring type; they are engaging, enthusiastic, have the weaponry knowledge of a foot soldier, the political know-how of a senator, the business sense of an entrepreneur, and the planning foresight of a soothsayer. Winston Churchill said 'we will fight them on the beaches' but it's how we are in the trenches, not just on the beaches, that makes the real difference. If each day you are doing your best, following processes, and learning and refining your art, then the day you are face to face with the enemy you will have the muscle memory to perform under pressure and win the final battle: the one that signifies the end of the war, and the great software release.