Prior to agile methods, software development followed various approaches such as the waterfall model. At the time, it consisted of moving from an "as is" (current) state to a "to be" (target) state, and documenting all stages of progression between both states. The problem with this model was that clients did not know exactly what their requirements were before they saw the software working. They could change their requirements, leading to a redesign, redevelopment, and retesting. This of course increased costs and time-to-market.
Today, Agile developments offer greater flexibility thanks to its incremental approach and its ability to integrate continuous changing requirements, even at the last minute.
Enterprise architecture has also adjusted to these changes, and it is now agile. Proof of this is its integration in the SAFe framework (Scaled Agile Framework). SAFe is intended to guide enterprises in scaling lean and agile practices. It promotes alignment, collaboration, and delivery across large numbers of agile teams. SAFe also implements DevOps, a software engineering practice that aims at unifying software development (Dev) and software operations (Ops), and break down silos to accelerate time-to-market.
While agile developments are well adapted to continuous market changes, development teams may lack the big picture, and may not fully understand the entire ecosystem. This is how agile enterprise architecture comes into play.
During agile developments, architects create an “architectural runway” as described in the SAFe framework, to design an intentional architecture. The architectural runway evolves as business requirements change. Business architects, system architects and solution architects work collaboratively to design the intentional architecture. They provide product managers and development teams with an exhaustive view of the enterprise ranging from business objectives to IT architecture, so companies can transform a vision into concrete IT projects. Business Architects engage with the business, plan business capabilities and link them to company objectives. Application architects can create multiple sketches of applications, design services and information flows. Technology architects design the implementation of the application by designing the infrastructure and APIs that support the applications.
By having a clear visibility into the business and IT landscape, dev teams can better understand how their developments support business objectives, as well as whether their developments will be correctly implemented. Dev teams and architects work together to assess how the architecture needs to be changed to support the developments. Also, when dev teams are not sure of the impact of their developments, the quickest way to assess their impact is to model the changes instead of coding them with the help of enterprise architecture tools.
By evolving the architectural runway, while the developments occur, it offers a true DevOps approach by ensuring that developments will be correctly implemented by operational teams.
Some Enterprise Architecture solutions also embark project portfolio management (PPM) capabilities which reinforce the cohesion between architects and dev teams. At the business level, business architects create and prioritize projects that support the need of new business capabilities, monitor the advancement of projects as sprints progress over time, and make sure everything is delivered on time.
At the IT level, IT architects monitor the same projects (Enterprise Architecture is cross-functional), but they can also add new IT projects required by development teams, such as moving applications to the cloud, retiring applications or redesigning an infrastructure.
Additionally, enterprise architecture solutions with PPM capabilities allow projects to be easily reprioritized, based on market changes or unforeseen changes such as budget restriction, providing an even greater flexibility. By creating a direct link between projects and architecture, architects can precisely measure the impact on the architecture for a specific project, so they have a greater understanding of the intentional architecture when building the architectural runway.
Agile methods have introduced a greater flexibility into software developments, allowing their quick adjustment due to continuous changes in the requirements. Software developments require an agile architecture that enable the support of ongoing developments. By using an architectural runway as described in the SAFe framework, architects and dev teams work collaboratively to design the intentional architecture supporting software developments. The addition of a PPM feature into enterprise architecture solutions also help boost delivery speed by increasing the cohesion between architects and dev teams.
Visit our website to learn more about IT Transformation.