Last Month Kundananji Sinkala finished his studies at the University of Gothenburg (Sweden). His thesis was titled Accelerating software delivery in the context of Requirements Analysis and breakdown for DevOps: a multiple case study. We gave advice and guidance on the various topics he addressed.
He conducted research from a theoretical and practical point of view. For the case studies he interviewed a lot of DevOps practitioners. The respondents were originated in all parts of Europe. Requirements Engineering played an important role in their daily jobs.
This article shares the major observations and conclusions. Read on to get some tips and tricks which can help you with your requirements engineering challenges.
Requirements analysis and breakdown
The first part of the thesis was dedicated to different requirements analysis and breakdown techniques. One of the observations was to produce a prioritized list of requirements based on relevant input. It’s about work-breakdown structures, business value per feature and project constraints.
It turns out it is very difficult to calculate the value of a requirement or feature. One solution is to classify requirements based on one of the following levels. We can identify the product level, the feature level, the function level and the component level. This is called the RAM (Requirements Abstraction Level). Requirements should be broken down to the function level – not to the component level. By doing so, it it is easier to compare requirements. It helps to determine the business value.
Improper breakdown of requirements has a negative effect on the software delivery speed. The information flow is hard to trace. Especially if the decision to change the requirements is made on the wrong abstraction level. Testing requirements separately is difficult if it is not broken down in on the right level.
Requirements breakdown strategies
One of the conclusions of the interviews revealed there are four major strategies which companies use in order to deal with Requirements Engineering and breakdown in a DevOps environment:
- Hierarchical-based strategy
- Feature-based strategy
- Value-based strategy
- Data-based strategy
The companies who follow the hierarchical-based strategy confirmed this is is accelerating the software delivery processes. Give teams enough freedom to make the right choices for the software they produce while monitor those teams which going into too much detail.
Another answer is is to really understand very well how the end product is being used in the field. Integrate customer logs in the build system, categorize them to create new, valuable requirements.
Also to weed out non valuable things from the backlog. Constantly revisiting the backlog and compare it with the requirements coming from end customers. This is especially true from the data-based strategy.
Tips & tricks to accelerate
DevOps proves to be very useful to bridge the gap between departmental functions. For example the coordination between development & operations departments. Operational teams must understand which features/requirements are developed. Requirements are not only created by developer feedback but also by operations monitoring. The feedback from these systems help product owners address requirements issues faster in the production environment.
Most of the time the requirements are created and broken down by people higher up in the organizational hierarchy. The research reveals that the speed up of software delivery is hindered since the DevOps practitioners have rather limited knowledge about requirements engineering (techniques). A good suggestion is to include training sessions and workshops for team members who actually do the coding and deploying the applications.
A lot of companies who follow one of the four strategies mentioned in the previous paragraph do not follow any standardized techniques to predict potential risks. They wait for any issues to arrive – and address them through time consuming and unstructured meetings. A better approach is to use automated traceability techniques and formal documentation to get the feedback earlier and in a structured way. Reduce the number of (unneeded) meetings.
This article just touches the main aspects with respect to the breakdown structures of requirements for DevOps. Following these tips help to accelerating software delivery processes. There is so much more to explore. Kundananji presented more context and he analyzed several cases and results from his research. If you are interested and would like to have more information, please contact us. We are happy to help you align your requirements engineering challenges with your business goals.