Improve Your Software Organization’s Processes: Focus on the Right Thing
I tend to speak and write about patterns, software configuration management, and agile software development. While these topics may seem a bit disconnected, they have something in common: They are about defining frameworks that help teams focus on the fun, productive parts of software development. In other words, processes.
I see value in having good processes that fit a team’s needs. In some contexts, however, people view processes as an obstacle. Mononymous writer Rands speaks to this, referring to the process myth and explaining that the difference between good and bad process is that good process encapsulates organizational values.
While processes seem like overhead, particularly in organizations that started out with a handful of people who shared a common vision, ad-hoc process doesn’t scale very far. A defined, documented process is a handy tool for avoiding problems, much like a checklist. Problems happen when a process is no longer relevant because it doesn’t reflect the underlying culture or ceases to be an effective way to address the problem it claims to solve. As Rands puts it, “Engineers don’t hate process. They hate process that can’t defend itself.”
He suggests that the best way to keep processes useful and relevant is to ask questions and constantly verify that the purpose behind the process is kept in the forefront. Once a process is in place, overcoming the tendency we have to maintain the status quo can be a challenge, but it is an important challenge to address.
Philip Horvath wrote about three kinds of resistance to change related to examining and improving processes: inertia, simple fear, and complex fear. Inertia is simply that no one wants to make an effort to explore new ideas or changes. Simple fear involves change affecting something someone cares about. Complex fear involves someone’s deeper concern that the change may affect the definition of who they are.
Horvath suggests that all these obstacles to change can be overcome by seeking to understand the other person, and he suggests specific techniques for each. The fact that these roadblocks to change exist means that keeping a process relevant and useful in an evolving organization is hard work. Having some techniques for addressing resistance to change, such as those in Mary Lynn Manns and Linda Rising’s excellent book More Fearless Change, can come in handy.
Every team follows a process. Those who claim not to may not have a well-defined process or one that arises organically, but they surely have a prescribed way of getting things done. If it works well, it’s a good process, and it may be worth documenting and formalizing.
Constant questioning, retrospectives, and change tools such as those described by Horvath, Manns, and Rising are essential to keeping an organization efficient and effective. Good processes address real problems and reflect the values of the organization. As problems and values change, processes should change, too.