- Breaking tasks into small increments;
- Applying only the minimum of planning.
- Iterating over short time frames (timeboxes).
- Involving a cross functional team working in all Software Development LifeCycle functions.
At the conclusion of an iteration a working product is demonstrated to stakeholders with the goal of minimising overall risk and allowing the development project to readily adapt to change.
In defining each iteration it is essential within an Agile methodology that
- The current state of the solution landscape is reviewed.
- The desired state from the business is elicited.
- The technical and non-technical gaps between the current and target states be determined.
- A definition (Story Card) of the steps necessary to narrow the gaps is created.
- A review the implementation results is undertaken so as to choose the next step and revise where appropriate the approach towards the target state
Each of above, whilst in an Agile development is focussed on the micro, is also fundamental to a successful Enterprise Architecture on a macro scale.
An Agile methodology can also be applied to the development of the Enterprise Architecture which subsequently becomes an information source for each Agile development activity.
- Establish a light Enterprise Architecture at the highest level of the business providing. Business and IT strategy, a high-level roadmap, a light touch architecture framework, principles, guidelines and a governance approach.
- Identify the slice of the enterprise where the business is about to embark upon multiple moderately sized initiatives.
- Define a minimum set of end-to-end architectural artefacts such as processes, data models, service models etc. needed to support these initiatives and begin populating a repository with enterprise content, governing artefacts, and start documenting guidelines and best practices.
- Assess the results, adjusting the previously defined governance approach, re-align the business and IT strategies where appropriate and mature the architecture framework.
- Select another slice of the business and repeat from steps 2.
Agile development and Enterprise Architecture can work hand in hand, providing valuable support to one another.