The Government Accountability Office (GAO) has provided recommendations to agencies such as Veterans Affairs (VA), Social Security Administration (SSA), Housing and Urban Development (HUD) and the U.S. Census Bureau (Bureau) for modernizing their legacy systems and processes. There is a common theme in the recommendations that revolves around strategic planning and risk management, which are encompassed within Enterprise Architecture.
Enterprise Architecture takes a holistic approach to planning with input from the business and understanding the technical direction needed to fulfill the business needs. Aligning the technical resources and environments to achieve the business goals helps to streamline processes, leading to more efficient business and IT operations, higher quality and reducing risks. Centralizing the decision making at the portfolio level and across the enterprise will help to align those resources to the strategic vision, which includes the business and technical needs. A centralized view also allows an organization to identify and consolidate duplicative projects, thereby reducing costs. Enterprise Architecture sets the standards by which decisions are made and products are developed.
Incorporating Agile practices within Enterprise Architecture allows organizations to remain flexible to changing needs and technology. As organizations grow, processes and solutions become more complex. Having a common architecture that is re-usable across teams reduces the complexity by ensuring that teams are using the existing infrastructure. This also lets teams focus on delivering more business value in a shorter timeframe rather than spending those resources on setting up new infrastructure.
While project teams deliver their work in short 2-4 week iterations and release products to end users on a more frequent cadence, shortening the development and long-term budget roadmaps to two years or less ensures projects are reviewed and evaluated more frequently to verify they are still timely, cost-effective and valuable. This also allows for the business and technology roadmaps to be concurrently reviewed and updated.
Enterprise Architects are a key resource to implementing Enterprise Architecture within an organization. The architects work with business stakeholders to understand the business needs and work with IT stakeholders to help guide the technical roadmap. They also help drive the organizational policy that sets the standards for decision making. Organizations may choose to implement an Enterprise Architecture team through which new requests are funneled. This is beneficial where the systems are complex and widespread across the organization. Using their understanding of the overall IT landscape and business needs, Enterprise Architects also guide project teams’ development efforts and work with them to understand their challenges. From working directly with project teams, they are also able to bring new and innovative ideas to be implemented or reused across the organization.
Managing risk is a critical process in all projects. Implementing a standard risk-management practice across the organization ensures that risk is addressed as it arises. This includes setting clear roles and responsibilities, identifying and measuring risks, and managing the risks. Enterprise Architecture should set the guidelines by how risk is measured, managed and reported throughout the organization.
One example of risk at the team level that needs to be managed is technical debt. In a recent hearing, the GAO testified that a system release included unresolved defects that impacted performance and user experience. Open defects and complex code bases that may require future refactoring lead to technical debt, which increases risk and reduces productivity. Addressing technical debt is a function within Enterprise Architecture and project teams must balance delivering value and addressing technical debt. The consequences of failing to address technical debt are not always clear, and as the debt piles up, it will be costlier to the business as productivity toward maintaining large complex code bases is reduced. Not addressing the technical debt also puts the project at risk of not aligning to the target Enterprise Architecture as it may have been reported to OMB or organizational stakeholders. This requires negotiating with the business to slow down delivering new value to ensure that high quality is being achieved. Incorporating Enterprise Architecture and Architects at the project level is one step toward ensuring the technical and business needs are properly prioritized.
Incorporating Enterprise Architecture in Agile Projects
Enterprise Architects work directly with business and project teams to understand the business and IT needs. They help drive the architectural design but also foster innovation from the project teams. In more complex systems, the Enterprise Architects collaborate with the business and project teams to provide a holistic view across initiatives. At a minimum, the Enterprise Architect should be considered a key stakeholder on projects. They provide input and guidance during planning sessions, prioritize architectural requirements, and participate in demos. Enterprise Architecture also validates the best technical fit for the proposed solution and identifies technical dependencies across projects.
As technical requirements are identified, teams react and evolve their design to meet the project needs. However, they may not have insight into how changes may impact other environments and projects, and Enterprise Architecture provides guidance for design across the organization. Providing the high-level architecture ensures that systems are effective but also lets teams react to emerging requirements and foster creativity.
Architecture needs to be addressed and accounted for. It needs to be maintained and build ahead of products features being developed. Project teams need to devote resources to building out the needed architecture while maintaining the balance in delivering business value. The architectural requirements can be broken down into smaller requirements that can be implemented incrementally. Developing the architecture incrementally also supports simple design and prevents building a complex structure or environment that may never be needed. This also includes the practice of refactoring and ensuring that code bases remain simple, manageable and on target.
Implementing Enterprise Architecture will reduce delays, costs and risks to projects, but there is a risk of creating a bottleneck through governance reviews and processes. To support faster delivery, the Enterprise Architecture should be flexible and incorporated within project teams. Enterprise Architecture also provides a holistic view to strategic planning and resources that can be aligned to meet the strategic initiatives of the organization. Deploying Enterprise Architects to work directly with project teams will ensure the architecture is understood and a balance is struck between business and IT requirements.
It is also possible to incorporate Enterprise Architecture and Agile practices. Developing the Enterprise Architecture incrementally and providing the high-level processes and requirements while leaving the emergent design and details to the project teams allows for flexibility and responses to change as is often found in Agile projects.
VETERANS AFFAIRS INFORMATION TECHNOLOGY Management Attention Needed to Improve Critical System Modernizations, Consolidate Data Centers, and Retire Legacy Systems, Committee on Veterans' Affairs, House of Representatives Cong., 25 (2017) (testimony of David A. Powner, Director Information Technology Management Issues U.S. Government Accountability Office). Print.