Discover more from Dispatches by Deepak Alur
Opinion: On process and methodology
What works to build great software
When someone asks me about what process and methodology worked best for my teams, I keep it simple by saying - I like to stay agile. I avoid getting into a long-drawn debate about methodologies. I often refer back to what Martin Fowler wrote way back in 2005. Other industry leaders eloquently and admirably continue to share their wisdom including Kent Beck and Allen Holub.
As a practitioner, I am not pedantic about any process or methodology. Like a tailor who custom stitches a suit for his client, I like to craft and mold the processes and methods that are best for the team and the product. The objective is to predictably and reliably ship a high-quality product, consistently.
A process has an effect on individual and team morale. When the process is right, the morale is high. You might not even notice that the process is there, it simply disappears into your work. But when a process is off, you will start feeling the friction, start noticing the morale dip. If not addressed quickly, you might see a big dip in productivity and even attrition.
So, keep questioning the process, even examine it skeptically from time to time. Is our process helping or hurting developers, is it achieving the objective? I advise my teams to not blindly follow what’s been set up over time. Like everything else in life, processes need to be adapted, evolved, and even deprecated. What worked for one team, doesn’t work for another. What worked before, doesn’t work now. Do not be afraid to discard and start over.
I find the values promoted by XP — communication, feedback, simplicity, courage, and respect) — are fundamental to any agile team and it takes a lot of time and effort to cultivate and practice. Once this becomes the way of the team, new members quickly onboard and contribute. Scrum too has its values — commitment, focus, openness, respect, and courage. Notice the similarity with XP.
There is no single methodology that one can simply fit your team. The team should craft their own agile methodology by selecting, adapting, and composing various best practices. Every established methodology comes with its own framework, values, practices, and constraints. They are meant to provide guidance in determining your own successful course, and there is no need to be rigid about what you want to box yourself in.
Above all, be pragmatic and stay agile. Remember the objective - reliably ship a high-quality product, consistently.