“Do not repeat the tactics which have gained you one victory, but let your methods be regulated by the infinite variety of circumstances”
The father of modern strategic study, Carl von Clausewitz, defined military strategy as “the employment of battles to gain the end of war.” Hence, he gave the preeminence to political aims over military goals, ensuring civilian control of the military.
Of course, this applies also to the software development where any IT problem is human in its very core…
However as someone said, I’m fed up to the ears with old men dreaming up wars for young men to die in. That’s why I think that’s a failure to choose a war from an armchair, to provide a solution seeking its need. The shortest path to delusion is theory without practice. And a bad usage of your thoughts and ideas will have as consequence a misuse of reality. That’s why for us, the community is crucial because, as someone else said, battles are sometimes won by generals; wars are nearly always won by sergeants and privates.
But here, as someone else (Steve Jobs) said, “You can’t just ask a customer what they want and try to give that to them. By the time you get it built, they’ll want something new.”
Your customers don’t always know what they want. Yes they may say they want this or that, but once you give it to them, they may never use it. So instead of just taking your customers word for what they want, you have to get into their mind and understand why.
This will help you understand what problems your customers are facing and how you can solve them. If you can solve your customers’ problem, you’ll have something that they will use for a very long time as long it doesn’t require them to change their behavior.
So, in order to gain a war against a certain competitor is way better to gain peace with your community.
But for this, in our cubicle we must not forget about our scope of existence: the other’s pain relief. If we don’t help others why we are here? To make money? It won’t last, believe me.
But to achieve this scope we must keep the others in our minds, we must communicate in order to lower our response time while keeping our focus.
…at the beginning of 13th century the Mongol Emperor Genghis Khan and his descendants succeeded to conquer most of Eurasia, building the last big contiguous empire in the human history.
The building blocks of Genghis’ army and his strategy were his tribal levies of mounted archers and (just as important) the vast horse-herds of Mongolia. Each archer had at least one extra horse; (it was an average five horses per man) thus the entire army could move with incredible rapidity. Moreover since horse milk and horse blood were the staples of the Mongolian diet, Genghis’ horse-herds functioned not just as his means of movement but also as his logistical tail. All other necessities could be foraged and plundered. It was not until well into the 20th century that any army was able to match the rapidity of deployment of Genghis’ armies.
Compared to the armies of Genghis, all other armies were heavy and comparatively immobile. Through manoeuver and continuous assault, Chinese, Persian, Arab and Eastern European armies could be stressed until they broke, and then annihilated in pursuit.
Genghis Khan put absolute trust in his generals, such as Muqali, Jebe and Subutai, and regarded them as close advisors, often extending them the same privileges and trust normally reserved for close family members. He allowed them to make decisions on their own when they embarked on campaigns far from the Mongol Empire capital Karakorum. Genghis Khan expected unwavering loyalty from his generals, and granted them a great deal of autonomy in making command decisions.
In the military strategy we’ll find comparable results only after enough centuries, first during the times of Napoleon I of France and, after this, much more notable in the World War II in the Heinz Guderian’s Blitzkrieg.
Blitzkrieg (German, literally “Lightning war” or “flash war”) is a popular name for an offensive operational-level military doctrine which involves an initial bombardment followed by the employment of mobile forces attacking with speed and surprise to prevent an enemy from implementing a coherent defense. This operational speed is achieved by giving the local command to someone who is there “on the field” – who really understands which is the main focus of the concrete assault by having a seamless communications channel with all the members of the assault unit (Guderian insisted in 1933 to the high command that every tank in the German armored force must be equipped with radio). Directive control was a fast and flexible method of command. Rather than receiving an explicit order (or requirement), a commander would be told of his superior’s intent and the role which his unit was to fill in this concept. The exact method of execution was then a matter for the low-level commander to determine as best fit the situation.
This in-field extraordinary mobility using management by exception (as we would call it today) and having a continuous, seamless communications channel between all parties, led in the Battle of France (with subsidiary attacks of Belgium and Netherlands) to the collapse of the French army – which had a strict hierarchical organization and a fixed ‘on-premise’ ‘inexpugnable’ Maginot line – after barely two months of blitzkrieg operations, in contrast to the four years of trench warfare of the First World War.
I do think that today’s software development can be somewhat described by a quote from Guderian’s book ‘Panzer Leader’:
“In this year of 1929 I became convinced that Tanks working on their own or in conjunction with infantry could never achieve decisive importance. My historical studies, the exercises carried out in England and our own experience with mock-ups had persuaded me that the tanks would never be able to produce their full effect until weapons on whose support they must inevitably rely were brought up to their standard of speed and of cross country performance. In such formation of all arms, the tanks must play primary role, the other weapons beings subordinated to the requirements of the armor. It would be wrong to include tanks in infantry divisions: what was needed were armored divisions which would include all the supporting arms needed to fight with full effect”
Germany was defeated but this way of thinking (with some modifications) influenced decisively the way in which we see the strategy nowadays. And this doesn’t limits itself to warfare. In fact it stresses the power of cooperation in a networked, flexible organization vs a strictly hierarchical structure.
In our domain, already some companies empower these kinds of tactics: Apple, Canonical (for the ones who doesn’t know the company which backs the Ubuntu), Google, Mozilla, Automattic (the company behind WordPress), Balsamiq etc.
I do think that we need more flexibility, more freedom to innovate, more freedom to leverage the community skill. Yes, we’re going forward. But we need some adjustments. After all we try to build something, to do something good, not to destroy. And after all we are in the unique position in which ‘the customers’ are sometimes more skilled in their own programming specialty than the company. And this isn’t so odd, as it sounds. But will you cooperate? And ‘you’ means everyone who reads this. Yes, I mean YOU.