Project or Product
Let me start this article from an unexpected direction. In the Second World War, in early May 1942, a main naval battle was fought between the Imperial Japanese Navy and the United States naval and air forces. It’s known as the Battle of the Coral Sea.
After the battle, both sides claimed victory, but the Japanese sunk way more ships in tons on the American side than vice versa. The American loss included the Lexington fleet carrier, which represented 25% of the American carrier strength in the Pacific that time. A second fleet carrier, the Yorktown, has also been seriously damaged and expected to spend months in a dry dock for repair. On the contrary, the Japanese navy only lost a light carrier Shōhō aside from some other smaller ships. This result did not look like a victory for the Americans, but it was…
For the Japanese, the Battle of Coral Sea was only a secondary operation, but with fleet carriers. Historians believe that the Japanese made a strategic error by supporting a secondary operation with such strategic assets knowing that they already had their plan to defeat the Americans at Midway in an all-out battle. During the battle, the Japanese naval forces had lost a large number of planes and experienced pilots. They were weakened just enough that it let the Americans overcome them at Midway, and win the war in the Pacific.
So how is it possible that both sides could claim victory in the Battle of Coral Sea? While the Imperial Japanese Navy won a tactical victory in terms of sunk ships, it was a strategic victory for the Americans.
The two words, tactical versus strategic, are my point in this unorthodox introduction. But what if we replace these two words with sprint and marathon? Or maybe we could replace them again with project and product?
In Hollywood blockbusters, SWAT teams are shown as some serious forces when the regular law enforcement teams are not enough. SWAT stands for Special Weapons And Tactics. It clearly describes their focus. They do not look for long-term consequences, they are only short-term goal oriented. For example, they take care of the criminals in a bank heist and rescue the hostages. That’s all. They don’t provide mental support for the hostages after the incident. They also don’t care about the damage caused to the building during the action.
Software engineering is not like this, especially enterprise software engineering is not. Those big and complex applications are written in years and cost millions. It’s more like a marathon and requires strategic thinking. Such an enormous investment is never made by the business for something less than a well-written software product that supports them for a long-long time. In this interpretation, the project is just a tactical activity for carrying out the needed changes to the product.
We, as software professionals, should always think of our applications as products. Satisfy our business with the right software product. Understand what they need and how long they need. Have a vision for it, design its architecture, implement it. Finally, and most importantly, maintain it through the changes the projects made on it. Unless you don’t want to win your war…
The Yorktown can also serve with a bonus story. The American intelligence knew about the upcoming attack at Midway. Therefore, the carrier could only spend a few days in the dry dock for quick-and-dirty repair before joining the other two remaining fleet carriers at Midway, the Hornet and the Enterprise. Her presence in the battle was significant not only in terms of available aerial force for the Americans, but it also absorbed Japanese aerial counterattacks, which otherwise would have been directed at the Hornet and Enterprise.
While the Yorktown unquestionably helped the Americans to reach their strategic goal, her patchwork repair cetainly did not increase her surviving capabilites. Quick-and-dirty solutions are never for free. In this case, she was the price and never came back. Remember for the Yorktown before agreeing on a quick-and-dirty solution next time.
Comments