Best practices on process documentation
Peter Peret Lupo, M.Sc., CSM, SCJA, ISC2 CC
Head of Software Engineering | M.Sc Software Engineering | CSM? | Lean Six Sigma Green Belt? | ISC2 CC
Why would you do?it?
You probably have asked yourself this question. Why should you invest time in writing it down? Because you don’t know what you don’t know.
Have you ever had requests from other departments that you feel like bureaucracy? It happens because you don’t know why they need this information since you don’t know their processes.
On their side, they don’t know which things you already do that could provide them with the same information. Some of your team members may also not understand the activities performed by other team members, so they can’t improve what they do to better support work done downstream.
I’ve seen teams that would sometimes test before doing code reviews for lack of a process. Imagine that!
So if you want to start thinking about global optimizations (since local optimizations may be detrimental to the overall performance), you need to have an overview of who does what, how, what they need, and where it is used (so you can also identify the actual bureaucracy and remove it).
Don’t stop at the?diagram!
Many people like to document in a simple diagram. Create some activities with just the names and be done with documenting processes. As much as it provides an overview of what happens, it doesn’t help anyone much. I think that’s why people do it and let it accumulate dust in a corner somewhere. The real value comes when people:
You will still need a diagram; it’s hard to read lengthy documents and to trace the subsequent activities, especially when there are forks and parallelism.
If you are documenting Software Engineering Processes (may it be QA processes, Development processes, etc.), you have two alternatives:
and:
Most people are more familiar with BPMN, so that’s what I tend to use the most.
If you are looking for friendly tools, you can consider the?Eclipse Process Framework?(free) for SPEM,?Bizagi Modeler?for BPMN (free, and the one I use the most), or?Enterprise Architect?(paid) for both.
What should you?capture?
Aside from the flow in the diagram, with the decision points, parallelism, clear start, and end elements, you need specific attributes in your activity. I’ll list the basic ones here:
As long as you have a diagram, you don’t need to document the pre and post-activities.?;-)
If you like this post, please share it (you can use the buttons in the end of this post). It will help me a lot and keep me motivated to write more. Also, subscribe to get notified of new posts when they come out.
Identifying the activities
Identifying the activities requires deep knowledge about each area (development, QA, requirements, etc.). If you are not familiar with these areas, you should identify the SMEs in the organization.
Note that they may not have the experience in identifying and mapping the processes, though. In software engineering, I recommend using popular references as checklists to identify what your organization does. Some of the best references are the?CMMI?or?ISO/IEC/IEEE 12207:2017?for software development and?ITIL?or the?ISO/IEC 20000–1:2018?for IT services.
These models and standards will tell you the outcomes of each process area without telling you how to achieve them. So you can use them as a guide: if you achieve that outcome, you must have an activity or a set of activities for that.
Unified processes
Once you have involved SMEs and checked up models and such, you must have realized different process areas. It’s not organizational processes, and it’s not team’s either. I’m talking about “knowledge areas,” like Requirements Engineering, Quality Assurance, Technical Solution, etc.
Following multiple partial processes that go back and forth with each activity is exceptionally messy and error-prone. Write unified processes with all the different areas involved. Add a label to each activity to flag the process area if you want to. It will likely be helpful to determine who should be involved in improvement discussions or the best way to support some compliance requirements.
Measurement and data collection
If you have KPIs or use any other strategy to measure the performance of your processes (e.g., GQ(i)M), you will want to mention in the activities that produce the data which data needs to be collected, how, and where. This will help you ensure consistency in your measurements. Not only does it help people remember to collect, but it also helps different people to collect the same thing at the same moment.
Process tailoring
Together with the process, you might want to define adaptation directives. This will tell the staff how to adapt the process to specific situations. Think about it as “the best practices in specific situations.” If you have to adjust the process to work in scenarios such as (non-exhaustive list):
Write down what worked best, associated risks to watch out for, and the impact on the process performance for each activity that needs to be changed, removed, or included.
Models and compliance traceability
Many companies are subject to regulations, have legal concerns, or even legal requirements (e.g.,?SOX). Some other companies adopt international standards (e.g.,?ISO/IEC/IEEE 12207:2017) or maturity models (e.g.,?CMMI).
Now that you have documented your process adequately (BTW, both CMMI and ISO 12207 will tell you to document it), and that you need to ensure compliance one or more models, standards, or regulations, you need to make sure that:
This can be done in-process or in an external document (which I prefer). Both have pros and cons.
The in-process approach is when you reference the requirement that a specific activity supports in the activity description (or a separate field/attribute). It will reference an indexed topic (Regulation X, Paragraph Y, Clause Z) or a combination of page/paragraphs. Don’t forget to note the version of the publication. This makes it easier when people need to make improvements to the process.
The external document will have references to your processes and activities paired with the references to the publication. This makes it easier to scan for activities that need to be adjusted because of a publication update. It will also help auditors tremendously.?;-)
Best practices in process documentation
So, you know what to do, and you are ready to get your hands dirty. Which are the things you should consider?
It seems people don’t usually comment on stories on Medium. There are just a handful of comments, even in stories where I have thousands of readers and clapping. If you want to engage with other readers, exchange ideas, or provide feedback, sound off in the comments. It won’t go to waste; I’ll try to answer all of them. What has been your experience documenting processes?
Cheers!
Originally posted at: https://blog.pplupo.com/2022-03-18-Best-practices-on-process-documentation/