Make Your Software Development Process More Like A Sewer

Is your organization’s process like a sewer? If not, you need to ask yourself, “Why not?” and “How can my organization improve its process to become as efficient as a wastewater treatment system?”

To a lot of people, maybe even you, the sewer is akin to the cloud. That is, you flush the toilet and some magic happens and at the end, clean water flows into a stream. To a lot of organizations, that describes their process:

  1. Assignment
  2. ?
  3. Profit!

However, as anyone in the wastewater treatment industry or anyone who has spent days proofreading and editing copy related to the wastewater industry knows, the sewer is more complicated than that. And the sewer can offer valuable lessons to streamline your organization’s software development process.

There is one part of the process that is your responsibility.
Here in the state of Missouri, the part of the wastewater treatment system that connects your house to the main, the sewer lateral, is your responsibility. If your effluent backs up into your basement because an unexpected tree root poked into the clay pipe, you need to get it fixed. If you need to put in some PVC to replace dysfunctional wastewater removal on your property, you need to fix it.

Basically, at some point, individuals are responsible for their portions of the process. A failure at this level does not mean the whole process has broken down. Some individuals in some organizations are prone to blaming their own faults and failures on the process and hope to invalidate the entire process thusly. A good process identifies individual responsibilities and allows for some alteration and improvements by individuals so long as the effluent reaches the main.

The sewer uses simple principles.
Most of your sewer systems are gravity-fed. That means the basic structure uses the easiest, most efficient conveyance to carry the effluent from individual nodes in its network to the next stage. There’s even a saying, at least in the blue collar world, about solid waste matter rolling downhill. Your process should use as much natural energy and flow to get things along. Natural tasks and natural checkpoints. Smaller pipes should empty into larger pipes. And so on.

Sure, some sewer systems do make use of STEP (Electric Pump) that use pumps to force water to run uphill or grinders (think garbage disposers) to chop particles in effluent into smaller pieces to force it into smaller pipes. A lot of organizations use these kinds of processes, which requires more energy, more maintenance, and more replacement of moving parts. Basically, this doubles your project manager’s migraine abatement efforts.

The sewer takes into account the local topography.
Every sewer district serves a different region with a different topography. The hills, creeks, mountains, and valleys of each differ. Ergo, the actual sewer itself must account for all the differences. The sewer lines have to go around obstructions and seek out the easiest grades to accommodate the flow of the effluent.

Similarly, individual organizations have different corporate cultures and personalities to accommodate. As hard as it is to imagine, organizations are not only full of roles and job titles, but they also contain diverse personalities. The exposure of the corporate culture to those personalities ultimately influences the organization itself, so sometimes traces of personalities remain after the individuals are gone. Why do we do it that way? Because Andrew did it that way. Sometimes, people won’t even know Andrew did it that way, just that they were taught to do it that way.

When putting in place a process, one might want to toss that way and implement this way, which one might think is the right way. If they feel more comfortable doing it that way, they might continue to do it that way regardless. Sometimes, one should know which people and groups are least likely to change and to account for it.

The point of this cutesy metaphor is this: Distinct organizations have distinctions. Before trying to put a process in place, you need to understand something of the organization so that you build a process that reflects the realities, habits, and tendencies of the organization. Otherwise, you’re building a process that invents them, and that invention is illusion.

Sewers are not replicated across districts.
The basic concepts of wastewater treatment remain a sort of constant, excepting the annual changes in regulations and standards with which sewer districts must comply. However, the fine details of individual sewer districts are based on their local topography (see above). If you try to apply the Metropolitan Sewer District blueprint to Boone County, you’ll find that the individual nodes do not align with the individual businesses and homes to service nor does it account for the hills and creeks of the more rural region.

Likewise, if someone at your organization reads a book about LEAN principles at Toyota and decides to lay your organization on that particular Procrustean bed, well, someone has to step up as Theseus. Don’t let them chop too many limbs off of what your organization does currently to account for the Platonic process whose perfect ideas you want to realize.

A sewer evolves.
Although it might seem that the roadsides feature a constant stream of construction equipment digging, boring, and burying things, your sewer district is not tearing out the existing sewer system and replacing it annually. Sadly, some organizations treat their processes or software tools to manage those processes just that way: they tear it out regularly when it does not work and try again.

Once you put in a process, any process, you should consider making evolutionary changes to the process as you learn how it works and how your organization works with it. This can streamline and improve operations and remove those square corners where waste material can hang up. Additionally, your organization will not require reeducation from scratch annually, and you might avoid another round of meetings where team or group leaders sit around and make the same boxes on the whiteboard again but put different words in them.

Sometimes, you don’t need a whole sewer system.
In many cases, in a whole lot of the country where the houses are not concentrated within a couple dozen feet from each other and from the street, houses and businesses don’t use sewer systems at all. They rely on septic systems or (shudder) open lagoons for their wastewater. It’s just not economically feasible to connect all these discrete locations into a centralized facility.

Look at your organization and the tasks and projects that it works on. Not everything needs to hook into the central process. A single user-reported bug? A small client copy change? The addition of a single piece of copy to the CMS? These tasks don’t need a complete design review with code review and a couple hours of meetings.

That’s not to say they don’t need some process. Even individual mobile homes need some wastewater treatment, even if it’s just a septic tank or an outhouse. But your organization needs to recognize and, as needed, implement alternatives to the process.

When you started this article, admit it: you thought it was a goofy conceit. But when you wash your hands or shower, that water goes down the drain and through a set of pipes, mains, and channels for its wastewater treatment. You want your project to easily, magically flow like wastewater from your tasks to successful project completion. Too many times, organizations create processes out of the abstract and out of pure science, and the processes’ application fails. With a little understanding of the concrete, of the topography, and of the “natural laws” of your organization, you can better construct your processes to work easily and automatically, like a wastewater treatment system.

One Response to “Make Your Software Development Process More Like A Sewer”

  1. Friday links, 3/4/2011 edition | making IT happen : an infrastructure blog Says:

    […] Make Your Software Development Process More Like a Sewer […]

wordpress visitors