Let me first explain the topic with a simple example. Teachers help students understand the concepts in math and provide them with practice sums. They also teach them to crack the given problems. Students keep practicing and finally appear for an examination. In the exam, if the questions are similar to what was taught, and then the children crack them with the right answers and score good marks. On the other hand, if the question has a twist in it, then not everyone can answer them. However, the model remains the same. It depends on the individual understanding and ability to solve such problems.
How is this example relevant to our topic? Let me explain, in the first case where the questions were direct, allowed the students to follow the already taught method to get answers. In the second scenario, the children must apply the concept and find a way to solve the problem. Thus the former method is a planned one and the latter one requires dynamic action.
In software development, we call the first one as defined and the second one as empirical process control respectively.
What is it?
When the work is complex we cannot understand it at ease. We will try to understand applying various methods. We will observe results and carry out different experiments until we find a solution.
Basic features of empirical process control
- Get educated during each process and use that to progress to next level
- Keep expecting and get ready to embrace changes
- Check and change based on the need every time
- Estimate but remember that they are not accurate
Where empirical process control must be applied?
Every complex domain requires this approach as a defined algorithm does not offer certain results. Therefore, there is a need to understand the dynamics and identity of an algorithm to solve the problem.
Where there is innovation expectation there you can apply this method and feel glad about new ideas.
When there is a naïve team working and they would want to try implementing different approaches use this method and find a solution. It will not only help solve complex issues but will motivate the team as well.
Scrum and Empirical Process Control
Now, let us relate how scrum and this process go hand in hand. We have seen how this way of process control allows the team to think, innovate, observe and experiment. This provides the answer to why the empirical process in scrum?
Yes, it is a dynamic framework where the entire team meets daily to understand progress. During every stage, the customer gets a chance to review the product and provide a suggestion. Then the product owner (PO) adjusts the priority of the backlogs.
Therefore, the scrum method does not have a candid planning but prefers and is successful with the plan on the way. This means the plan is dynamic during the entire process.
Scrum method can be explained in short with an image as given below
You can easily understand that the steps involved are planning which is dynamic and your progress to stop and check. Based on the output you again make changes before reaching the process step.
Consider every sprint as a black box in the scrum. The work happens uninterruptedly during each sprint. Already we are aware that scrum is a time-boxed process with time defined daily standup, planning, review, and retrospectives. Therefore inspection is carried out at each of these meetings to optimize the process by collecting the details to observe, experiment and modify.
Three chief ideas of this process include
Everyone in the scrum team is allowed to observe all the processes. This means the workflow is transparent and hence anyone can suggest changes. Find how this is achieved in every stage of the development.
- Release plan schedules
- Prioritizing backlogs
- The project vision statements
- Sprint plan
- Daily standup
By keeping it transparent the team feels empowered and hence works with an open mind that will do away with the differences and all will work towards achieving the end goal.
Not just being visible will suffice but the team must also be part of the inspection to find and accept the improper variances in the process. Only when the acceptance happens, it will pave way for adopting a new method.
Steps involved in the inspection
- Common scrum board is used to check for the outcomes
- The deliverables are inspected by the PO to validate the entire sprint.
- Customer input is collected and then backlog prioritization is adjusted.
When the inspection becomes successful the team will know the areas that require improvement and will start embracing the changes.
They discuss the following details in the daily standup
- Identify the risk
- Place a change request
- Conclude changes during the retrospective sessions
In short, the entire idea behind the empirical process control is executed as follows.
- The daily discussions are used for inspection of the development to achieve the sprint goal and changes are adapted to implement before the next day meeting.
- The review meet is used for inspection of the development to achieve the release goal and changes are embraced to implement in the upcoming sprint.
Likewise, in the retrospective session, the total process is inspected to take corrective actions in the remaining sprints.
Why this method?
Finally, you must know why should use this process in your implementation.
- The need for a dynamic process arises when you are not aware of the right solution to a particular problem. Having an empirical mindset will let you accept the complexity and work towards achieving a solution.
- When the work step is not understandable you can use this method. Yes, by doing so you are opening a new avenue and thus pave way for innovation.
- The team will understand the importance of observation and they will also look for evidence to implement a new approach. This will lead to trigger the thinking ability of every individual.
- Monotony is broken down as one will not follow the same planned activity but will come out with different ideas.
- Eye to detail and continuous efforts to work will make the team ready to handle any kind of development work in the future.
By itself, scrum is an empirical process as it delivers a shippable product increment which is checked frequently by the team and based on the review the product backlog gets adjusted. The team performance is transparent and is inspected during the retrospective to suggest for improvement.
The role of each individual in a scrum team is vital for the successful implementation of the process. We suggest you attend training for a Scrum Master Certification to practically understand the right way to use the empirical process control in your team and projects.