Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Managing Complex Requirements in the Real World

Autor: Istvan Demes, Emenda

Beitrag - Embedded Software Engineering Kongress 2018

 

What is Requirements Management? Requirements management, requirements analysis, or even plain old requirements by themselves, should be simple. In theory. However, we know that in the real life it is anything but simple. This talk tried to explore why this is, how common practices are diverging from the theory that tries to keep Requirements under control, and how modern methods and tools can assist in making our life easier and making requirements management possible.

The theory of Requirements Analysis is something that we have all come across. There is a general 5 step process that can relatively successfully describe all the stages we will encounter– Investigation, Feasibility, Design, Implementation, Release. In the first 3 stages, the focus is more on establishing solid Requirements that will result in the kind of product that the shareholders expect. Stages 4 and 5 are, on the other hand, about successfully enforcing the guidelines and constraints that were set out by the requirements and verifying that we are meeting those goals.

At the core of it all, what we must do is decide on a set of Requirements which satisfies the shareholders’ idea about the product. Then we must keep track of those requirements, make sure that they are known, and that they are adhered to.

However, we must not forget that nothing is written in stone, and today’s software development is a highly interactive process, therefore changes to the requirements set out earlier are inevitable. We need to make sure that we keep track of these changes, and that the changes in requirements are reflected in the final product as well. It is also rather difficult sometimes to decide what a good requirement is initially, and changes both to the objectives and the circumstances can substantially alter the validity of each Requirement we have established. Thus, a process that is, theoretically very simple, quickly becomes something that in practice is very difficult to keep track of, and it can easily get out of control if we’re not putting enough effort into managing it. That’s where Requirements Management comes in.

Requirements Management Stages

First, we are exploring options, considering the stakeholders’ objectives, current market trends, various opportunities and generally setting the boundaries for our upcoming project. This is largely interpersonal communication, and its success largely depends on the clarity and quality of conversation that is happening between various parties. It is difficult to use specific tooling at this case, however Requirements Tracking tools such as JIRA or DOORS start to be useful in noting down ideas and keeping tabs on emerging objectives. Specialist spell checker tools, such as Semios can also help in enforcing a clear terminology and making sure what is written down is reflective of what needs to be achieved.

Later our focus shifts from exploring objectives to evaluating them. We need to decide how they can be implemented, whether changes need to be made. Our tools also need to change from simple ‘note-taking’ to enabling us to track changes in the requirements and managing them across many people who might interact with it. This trend of focusing less on changing the requirements, and more on acting on them continues throughout the development process, so we need to focus most of our Requirements Management efforts at the beginning of the process. On the other hand, modern software development projects are highly iterative, and requirements changes can occur at any time, so we must still be able to keep track and manage them efficiently.

Responsibilities of Requirements Management

There are 3 things that are core to an efficient and effective Requirements Management System. It is, plainly, Clarification, Tracking and Enforcing. These are all things where computers can be better than us, or at least help us. In Clarification, they can help us make sure that what we write down is really what we have in our mind. There are specialized tools that ensure our terminology, expressions, ideas are written clearly. They can enforce grammatic rules that prevent our Requirements becoming overly vague, mistaken, or even contradictory. It is something that is an inherent danger when a large number of people from various background, various levels of language proficiency work together. And since Requirements are the highest level of abstraction of our project, any misunderstanding or vagueness here can result in wildly different interpretations, which in turn often results in costly mistakes.

Tracking (and Enforcing together) are things where common tracking systems can all help substantially. The point is to have an easily accessible central repository of ideas the represents the accepted common ground of objectives and provides a space for debating those ideas. These systems are responsible for providing accountability, and branching out from that, can be a place for enforcing these objectives. Enforcing in this case is another way of tracking the progress of implementation, keeping up with how that part of the project is coming along, or if there are any problems, conflicts that has arisen while trying to meet that particular requirement.

How tools can help us

We have established that we have a very simple efficient theory but facing a much more complicated and difficult reality. Tools help us bring our focus closer to the idealized theory and taking care of the distractions for us.

First, we have to take care of the language problem, and spell checkers help with this. Tools like Microsoft Word already does some very simplistic algorithm which tries to promote concise writing. Specialized tools such as Semios can analyse your official requirements document either in Word or in DOORS, and can eliminate vague, confusing terms, as well as using your specified field-specific terms to make sure the Requirements will be understood by everyone. This reduces the risk of misunderstanding, and consequently implementing the wrong features.

Providing the backbone for Requirements Management we have tools like JIRA, DOORS, Excel, and a number of other tools that can be used for requirements tracking. We need to find something that is both accessible to everyone that needs the document, and promotes the necessary level of collaboration, version control, and prioritization. There is no one size fits all solution, as even within the same company, different projects might find different tools more suitable to their goals, but as long as they help with keeping track of all the emerging requirements, they enable the stakeholders to concentrate on the higher level tasks instead of getting caught up in organising.

 

Author

Istvan Demes - I am a graduate of the University of Bath, and a Software Consultant at Emenda Ltd, a company specializing in software quality and software security tools. In the past couple of years, I had the pleasure of working with many major companies all around the world, and see their development processes, while trying to improve and streamline their work.

Contact

Email: istvan.demes@emenda.com

 

Beitrag als PDF downloaden


Requirements - MicroConsult Trainings & Coachings

Wollen Sie sich auf den aktuellen Stand der Technik bringen?

Dann informieren Sie sich hier zu Schulungen/ Seminaren/ Trainings/ Workshops und individuellen Coachings von MircoConsult zum Thema Requirements /Embedded- und Echtzeit-Softwareentwicklung.

 

Training & Coaching zu den weiteren Themen unseren Portfolios finden Sie hier.


Requirements - Fachwissen

Wertvolles Fachwissen zum Thema Requirements/Embedded- und Echtzeit-Softwareentwicklung steht hier für Sie zum kostenfreien Download bereit.

Zu den Fachinformationen

 
Fachwissen zu weiteren Themen unseren Portfolios finden Sie hier.