Requirements Engineering Must Not Be a Juggling Act
No Room for Juggling in Requirements Engineering
Plate spinning is a performance act seen in circuses and on TV variety shows, where a juggler spins china dinner plates, each one perched on top of a tall stick. He or she runs around, constantly adjusting the speed of each plate’s rotation, and a good plate spinner can keep eight or more going at one time. It’s quite something to watch; quite entertaining, but not something you would want to bring back to work as a project management or requirements engineering technique.
But that’s what often seems to happen to software designers and testers during production. Design is never a linear operation. There are bugs, fixes, re-dos, and additions to be reinserted into a process, each of which demands a range of tests and subtests to ensure everything continues to function as expected. And just like plate spinners, these actions must run against an unforgiving timeline. IT design becomes a ceaseless effort of keeping many things going simultaneously, ideally in agile fashion with the focus being on avoiding catastrophe rather than enjoying the freedom of pursuing excellence.
For many organizations, the work of gathering and defining the requirements of a software design project is still being done using a combination of office tools, including Microsoft Word documents and Excel spreadsheets. These may work well as static tools for planning and recording, but they do not allow for automation or flexibility. Nor do they allow for any form of time efficient traceability.
The ideal – in fact what is truly a necessity in requirements engineering – is to move to an approach centering on model based testing, specifically a system model. The main pillar of model based testing is creating models out of business requirements. Once you convert these models into an active flowchart, then test cases can automatically be generated, as opposed to writing text, creating manual test cases, and getting them out to development teams.
View this short video to get a quick introduction on engineering requirements using flowcharts and models.
A model-based approach also allows for improved delegation and resource management during the design process, since the actions require less training and can be assigned to others.
Automation tends to remove the plate-spinning sensation. Or more precisely, it hands over the work of keeping so many variables up in the air over to a software application that can handle it more efficiently and can correct and refine more quickly. Every time a change in requirements appears, it is automatically integrated into the system.
In Requirements Engineering, The Flowchart is the Centerpiece
Central to any successful project is a visual chart. Charts work far better with the human brain than words alone, since they move tasks and challenges into a two-dimensional physical space. For project management, this is best exemplified by a Gantt chart, which overlays each task horizontally across time. In management and productivity, people often turn to flowcharts or kanban boards, which summarize tasks and roles in a bulletin board format. Even company hierarchies become more comprehensible when they are laid out in an organizational chart.
When it comes to requirements capture, the best visual tool is a flowchart – but it must be an active type that can add and remove additional routines and scenarios in real time. It must be agile and flexible, and ideally able to communicate with other tools like Microsoft Visio as well as business process models via BPMN and XML Process Definition Language (XPDL).
The Importance of Subflows
Subflows are an essential component of design and testing since they break down larger and more complicated processes for easier editing and understanding. This is critical when making modifications within a sprint.
Test, ReTest, and Pre-Test
Perhaps the most important of all the features that automated requirements engineering applications deliver is the ability for optimized testing. Many organizations either over-test, under-test, or perform testing within too narrow a parameter. Time and budget limitations make it difficult to visualize whether the tests have been completely adequate, which results in entire projects being sent back to the drawing board, far too late in the process.
With a flowchart-based, agile testing system it should be possible to move the test phases further upstream, to catch and resolve problems long before they become embedded in the product.
We work in an era where speed dominates, and that is not always a great thing, when considering vital production areas like quality control. It is necessary to match speed with speed and agility with agility. This means moving all areas of design and test to a far more automated platform than can be provided with standard “Office” applications. This ultimately removes the need for plate spinning and replaces it with a highly versatile table setting, that can be rearranged and tested precisely as needed.
CA offers comprehensive solutions that automates the most difficult testing activities – from requirements engineering through test design automation and optimization. Start your Free Trial of CA Agile Requirements Designer today and fast track your testing at the speed of agile.