Tuesday, May 2, 2017
A March in the Mud
When I was growing up, I have a great Uncle Paul who fought in Europe with Patton’s Third Army. He refused to discuss his experiences, and when asked about being in combat he remarked bitterly,” I was cold, and it rained a lot.” Over the years, many of the combat veterans I have known have behaved in a similar fashion. Whether they served in Korea, Vietnam, Desert Storm or Afghanistan; the prevailing attitude was I would be unable to understand their experiences because I was not physically there. Instead, I relied on the narrative from books, documentaries and those veterans would share their experiences.
What struck me during my investigation was the tedium of military service. Moments of terror punctuated countless hours of boredom and following procedures. Each day is a grind with little room for heroism or glory. While I have never made the kind of sacrifices required of combat veterans, the grinding nature of a military campaign is familiar to anyone who has worked on an I.T. project. In fact, every developer has a story about being on a project which resembled a “death march.” One of my favorite illustrations by Bill Mauldin, who created the famous Willie and Joe cartoons from World War Two, is tired and muddy American Troops guarding German POWs and they are marching through the rain. The caption offers brilliant commentary, “Fresh, spirited American troops, flushed with victory are bringing in thousands of hungry, ragged, battle-weary prisoners.” The irony being everyone during the war is tired, hungry and battle-weary.
Anyone who works on a software project gets tired and weary. There are too many late nights, too many slices of pizza, and too many problems to fix. In many ways, we are like those soldiers trudging through the rain. It is why developers prefer agile methods over the more traditional waterfall approach. Instead of long aimless slogs in the rain and mud, at the end of each sprint, we track our progress and take stock. Big bang releases would become a thing of the past and development would be made more sustainable.
The reality has been more complicated. As we have learned to release software in shorter intervals, business leaders have demanded that we cram more feature into each release. So instead of work being a “death march” it resembles being pushed out of airplanes each sprint shouting “Geronimo” and hoping we survive the experience; this is not sustainable development.
Metaphorically, scrum masters and developers are seeking a happy medium between long marches in the rain and jumping out of an airplane. Each day should feature a win or forward progress. Developers should not put in heroic efforts or engage in crunch time. It is a lofty goal, and if we are doing our jobs correctly, one the agile community can accomplish.
It takes communication with business leaders and regular deployments of software into production. We need to pay better attention to the DevOps movement to see how to implement continuous integration and pipelines for projects. Finally, it means saying “No” when people demand ten pounds of sand fit into a five-pound bag. To do otherwise means we are no different than those soldiers slogging through the mud.
Until next time.