Home > Blogs > Teaching Software Process

Teaching Software Process

One of the many lists that I lurk on, the Agile Leadership Yahoo Group, became active a few days ago, with a thread that ranged from quite thoughtful to somewhat disrespectful, as these threads often do (which is why I generally only lurk). At one point, a question was posed: if you were teaching in, say, the Masters program at Carnegie Mellon, how much time would you dedicate to teaching about the past and how much about the processes for the future? I took a bite, here's a paraphrasing of what I had to say.

I would look at teaching development processes in a different way than past vs. future (to avoid that corresponding inappropriate implication that past = failed and future = successful). After all, some approaches developed long ago resulted in project successes, while some more recent approaches are contributing to project failures today.

A defined approach in itself is neutral, it is the application of that approach to a specific project situation that begets success or failure. Instead of past vs. future, I would suggest we have a lot to learn from all approaches over the ages, looking at projects where these processes have been positive contributors and where they have really just been barriers to success. There have been successes and failures in every approach, at least the ones that have survived to the point where they show up in the literature. There will continue to be failures as long as we believe that the right process, any right process, is a magical formula that allows us to stop thinking throughout the project, or that we can define the right process in advance of understanding the product and the stakeholders involved.

I see the history of approaches as an evolution of thinking, with a couple of key themes that continue to weave in and out over time. The most prominent of these is the hysteresis of process 'weight' over time, from little or none to way too much and back again (and I'm sure the pendulum has not yet stopped - back to those ongoing failures and the magical formulas above).

I would show how much of the 'new' thinking in processes has existed for decades, but I would also recognize that the rebranding and repackaging has made these practices more broadly acceptable, which is a very good thing. Each process has it's strengths and blindsides, it's area of focus and implied assumptions, and a challenge it was meant to address. The trick when studying processes is to recognize the relevance of an approach to a given problem, and make a conscious selection of the right path forward. Unfortunately, many process consultants, old and new, internal SEPG members or external consultants, come to the table with experience in one approach that worked well somewhere else, or feel obliged to identify a standard process for all forthcoming projects.

I would also highlight that there is currently a dangerous false dichotomy of thinking for many that there are successful projects and there are projects that are not Agile.

There is much to learn from the past, particularly that there have been many successes and failures to learn from. More often than not, it is not that the process applied was bad for failed projects, but that the process applied was not wisely selected, or that it was not followed in the heat of battle. We also need to learn that this is still going on today on many projects, and the results will be the same.

The most appropriate process is extremely dependent on the team, the culture, the client, the product and myriad other factors: it is dangerous to say a priori that this or the other process is the right one (or conversely, to say a priori that an approach should not be considered). As with anything, decide for yourself rather than listening to one salesman's pitch for their wares. Understand a range of different approaches, the relative value of each, and decide for yourself.

Perhaps the past vs future can be reframed as dogmatic process application vs a considered, tuned approach as the situation warrants. We have a way to go before the future is upon us.

Become an InformIT Member

Take advantage of special member promotions, everyday discounts, quick access to saved content, and more! Join Today.