Creating Effective Processes to Deliver Quality Software
Delivering complex systems depends on software processes that guide the work on a daily basis. Much has been written about the evils of verbose waterfall processes, but the truth is that not having enough process also makes it impossible to deliver enterprise software without making many mistakes.
At their core, processes help everyone understand the work that needs to be accomplished and manage the many inherent dependencies in any software or systems development effort. Without process, there’s a chaos of uncontrolled efforts that lack coordination and necessary governance.
So, how do we create effective processes and improve them over time?
The first question to ask is, Which processes are we talking about? Developers often focus on continuous integration, with a goal of achieving the nirvana of continuous delivery. Operations looks to IT controls, which ensure that services are available without interruption. But don’t forget that business processes are also extremely important and must successfully align with your IT processes, too.
This means that if you have emergency business efforts, such as completing your tax report by April 14, then your IT processes must be capable of achieving the same results using the requisite technical resources. Too often, folks in the silos of IT are not consulted when creating business processes, and the reverse can be true as well.
To create effective processes, you really need to understand your business goals and align them with your IT goals. If your IT department does not have the staff and budget to deliver systems with the required features, then your IT and business processes are not aligned, and that is going to lead to problems.
This does not mean you need to give you technical guys loads of cash to buy whatever toys they wish; it means you need to consult and inform your IT department when designing your objectives. Many technology teams achieve amazing results with very limited budgets, but that requires communication and collaboration with the business experts to ensure that the right priorities are all being addressed—and in the right order.
Process improvement depends heavily on the inclusion of the right stakeholders. Too often, politics and special interests can impact who is invited to a particular meeting; this is where your most senior leaders must ensure that everyone is working toward the same goals. And while your internal experts are probably the best source of information for determining the steps of any process, make sure you also consider best practices, including industry standards and frameworks.
Achieving effective processes is typically an endeavor that requires an iterative approach. Using workflow automation tools is essential if you want your processes to be repeatable and traceable. But in process engineering, less is more, so don’t include any extra steps that are not necessary.
Taking a pragmatic and effective approach toward coordinating efforts will lead to right-sized processes and help your team achieve success.