noun \ˈprä-ˌses, ˈprō-, -səs\
a series of actions or operations conducing to an end; especially : a continuous operation or treatment especially in manufacture.
Words are an amazing thing. Words create images and communicate intent. They have the power to strengthen and the power to weaken. With software, the most divisive word is Process. It truly is the demotivator of teams and can suck the life out of developers in an instant.
Now don’t get me wrong, I am am absolute proponent of the application of process, but I’ve seen the damage that those seven letters can do. That is why I no longer utter that word. Instead I use alternative words in their place. These words are Repeatability, Consistency and Predictability. Let me explain as to how these words extract the essential benefits from the application of process.
I tend to use the words interchangeably with Process depending on context. It’s interesting that usually you can talk about 2 out of the 3 words in the a context where process would be used.
The definition of process above makes it clear. Process is about the continuous application or treatment in manufacture. Through repeated application of a process, the output of the process is, well, repeatable. If engineering work is ad-hoc, the output of the engineering may be great or it may be not so great, but the likelihood of having good output again and an again is fairly low.
Once process is applied, there is an increase in the consistency within an organization. Development teams can share documents, change projects and yet still hit the ground running and understand what others are doing.
This group-think is critically important as teams and organizations grow. Think of it as the language that the teams use. If one team speaks only French and the other only English, the likelihood of clear communication and portability of staff within teams will be low. They will be able to work together, but they definitely won’t be efficient.
Processes are usually put into place to drive a level of predictability. By tracing where you are in the process, you can improve predictions of not only how far you have left in the process and through experience how long it will take to get there, but also how many of the concurrent executions of the processes you can have in place.