There is no one-size-fits-all process model. The answer is to use a meta-process, or a process for generating a software process. You need to accommodate both the macro (in the large) and micro (in the small) systems engineering. In Scenarios, Stories, Use Cases: Through the Systems Development Life-Cycle, Ian F. Alexander and Neil Maiden write about using a meta process to choose the most effective process model for your projects.
Accommodate ‘in the large’ and ‘in the small’ Explicitly
Alexander and Maiden write that you need to explicitly accommodate systems engineering ‘in the large’ and ‘in the small’:
- For any practical systems engineering/project management process model, you need to reflect and accommodate both levels explicitly.
- Focusing on one level at the expense of the other is a mistake, although both errors are encountered in practice.
- One often sees just one level depicted, with the other implicitly struggling to get out.
Choose the Most Effective Process Model
There is no single, correct ‘in the large’ model. Alexander and Maiden write that you need to choose the most appropriate process model based on the project situation:
There are a number of different ‘in the large’ models in use. Often one hears the claim that one particular model is the right one to use. Some people become almost religiously zealous when it comes to this. But this is inappropriate; there is no one correct ‘in the large’ model. To insist that this is the case is to invite and encourage process rigidity. ‘Horses for courses’ thinking should prevail. Choose the one that seems most appropriate for the project in question. This last point has an effect on people who write process standards. If there is process diversity in the large, what do you put in your process standard?
Use a Meta Process (A Process for Generating a Process)
Alexander and Maiden write that you should use a process for generating a process:
The answer seems to be that your process standard should instead be a meta process, or a process for generating a process. This seems to be a particularly powerful concept, since it seems to offer at a stroke full generality, flexibility, and recycling of systems engineering good practice. It also requires you to have risk assessed the project and asked pertinent questions about how the project is likely to unfold (and having to do these cannot be considered a bad thing!)
Key Take Aways
Here’s my key take aways:
- There is no single correct ‘in the large’ process model.
- Use a meta-process or a process for generating a process.
- You need to accommodate both the macro (in the large) and the micro (in the small) systems engineering activities and phases.