The steps in Progressive Elaboration and Construction include:
- Capture and Evaluate Requirements
We can perform Discovery and Analysis in concert with our Client, which will create an Agile-like implementation, or work from a set of documented requirements, which will produce a Waterfall-like implementation, or anything in between. We are completely comfortable with whatever our Clients’ preferences are.
Throughout the Elaboration and Construction process, we maintain a list of requirements that have not been evaluated and accommodated in the solution architecture. Periodically, with a frequency appropriate for the rate at which new requirements are discovered, we re-prioritize the list so that requirements with the highest potential to impact the architecture are processed first.
- Identify Patterns
Every implementation contains repeating patterns of functionality, logic or structure. As we evaluate requirements, we identify patterns that may allow us to compress component implementation to multiple instances of common code elements. The ability to reduce code for a number of components to a single template and then generate the required instances is where all the leverage of generative engineering stems from.
- Assess Architectural Impact
As the prospective implementation approaches are identified for each new requirement, we also evaluate their potential impact on the solution architecture.
- Iterate Solution Design
After assessing the architectural impact, if any, we then design the implementation of the solution elements supporting the requirement.
- Assess Implementation Impact
If we identify that a change in the architecture is necessary, we are then able to identify the impact of the change on existing components quickly and make modifications quickly and cost-effectively.
After finalizing the design, construction of the required elements are performed and a minimal representational set of the components are generated.
- Perform Unit Test
The generated version of the components are tested to ensure that they behave as expected and perform to specification.
The process is iterated until all relevant requirements have been accounted for.