Agile IT methodologies are being adopted by more organizations as they help companies manage the greater complexity and uncertainties within their enterprise architecture. The rate of change and interdependence of data, systems and infrastructure has made older waterfall project and top-down design methods untenable for IT management. By relying on team empowerment, rapid cycles of incremental development, continuous testing and business feedback, agile development methods are able to discover solutions to underdefined or changing problems.
When agile development is embedded within DevOps management for existing enterprise architecture, organizations are able to respond to opportunities and threats from both internal and external sources.
Sticking to the agile path with automation
One of the key aspects of agile methodologies is continuous testing — an incremental change is not even previewed by the business until it has passed testing. For startups, this can be a trivial set of functionality in early stages before the development matures into a product. However, at the enterprise architecture level in large, established organizations, testing is not necessarily a quick aspect of the change. Changes that affect multiple systems or databases will require a significant resource commitment if testing is performed with manual techniques. This would be a barrier to agile adoption and is where the investment in test automation is a requirement for progress along the agile path.
It is natural for complex systems to drift or degrade from their original code as the business adapts software and databases to suit its processes. This is why pairing continuous automated testing with code evaluations and code-based cleaning is a natural extension of agile methods. This combination of automated maintenance ensures IT assets are operating efficiently and that any code change introduced does not degrade system performance. Continuously testing, containing and cleaning code decreases the probability that changes will introduce failures in unrelated areas of the environment.
Staying up-to-date with vendor cycles
Enterprise systems typically rely on both business-driven customizations and the vendor's product. While continuous code cleaning ensures the customizations are not sending systems into failure, allowing the system to become out-of-date with the vendor's current versions also introduces significant risk into the business. Vendor support in general or more specific security maintenance is commonly withdrawn from older code versions. A business that is not staying current with vendor upgrade cycles may find itself at the end of support and, therefore, at risk.
Ready for change?
The scale of a version upgrade project is not typically linear when leaping forward several versions — it is much easier to embrace each version upgrade when it is released.
There are two areas of impact at the enterprise level when leaping forward several upgrades: continued maintenance of customizations and the impact on business users.
If continuous testing and code cleaning is employed, customizations will likely be able to accommodate vendor code change. However, the impact on the business can be bigger with multiple version leaps, even if the customization can accommodate the change. In addition to being technical projects, these changes will then become organizational change management projects for the business. When the distance between implemented code and the up-to-date standard increases, end users are more likely to resist the accompanying business process changes.
Businesses following an agile path for enterprise architecture are typically resilient when they encounter change, but changes do require management. Continuous maintenance of the code base reduces technical risk from change, and accepting vendor code upgrades reduces the scale of business change.
What are your biggest concerns regarding enterprise architecture and agile development? Let us know in the comments.
Jason Hannula is a seasoned IT business analyst who has worked with various agencies to deliver transformation projects that improve business processes and data usage. He has also been writing about the impacts of emergent technologies and trends on businesses since 2013.