Using an “agile process” is listed as one of the Top 10 Reasons for Project Success. So, it’s not surprising that everyone wants to be agile these days. There are numerous books and blogs available that explain how to adopt agile practices from a people and process perspective, but what about technology?
Do the decisions we make when choosing our “build, run and manage” application platform affect our ability to adopt agile practices?
To answer this question, we’ve looked at the principles behind the agile manifesto and identified two core themes to help characterize the agile features of application platforms.
The 2 Key Agile Themes
|Theme 1 - Delivery Efficiency
Adopting agile practices means we need to deliver working software fast and often and in a sustainable way i.e. we need to choose application services that streamline the software delivery cycle.
The 10 Features of an Agile Application Platform
By using these two key themes as a guidepost, we identified an initial set of 10 application platform features that 1) optimize delivery efficiency and 2) encourage adaptable designs. Each item is detailed further below:
- An application framework that minimizes coupling
- An application framework with great support for Unit and Integration Testing
- A messaging technology that can run anywhere
- An application platform that supports performance testing in the development cycle
- An application server that streamlines application deployment
- A web server that can be deployed quickly and consistently
- A cloud-enabled application provisioning solution
- Platform components that support “Database as a Service”
- An adaptable database solution
- A performance monitoring tool that automatically keeps pace with application changes
1. An application framework that minimizes coupling
|We all know that the less coupled an architecture it is, the easier it is to change. So, we need to look for an application framework that helps developers minimize coupling at all tiers of the architecture.|
2. An application framework with great support for Unit and Integration Testing
|In order to maintain quality and speed in an agile environment, you need to choose an application framework that facilitates the creation and execution of unit and integration tests as quickly as possible.|
3. A messaging technology that can run anywhere
4. An application platform that supports performance testing in the development cycle
|Often agile projects leave performance testing until late in the sprint, or even separate it into a hardening sprint of its own. This can seriously impact the amount of rework required and often means “done” code is not really production ready.|
5. An application server that streamlines application deployment
6. A web server that can be deployed quickly and consistently
|The time taken configuring, patching and compiling a web server for your application is time taken away from feature development.|
7. A cloud-enabled application provisioning solution
8. Platform components that support “Database as a Service”
|Self-service database management increases developer agility and accelerates application development cycles.|
9. An adaptable database solution
|The iterative and evolving nature of agile development means that the application domain model is likely to change over each release. This means the chosen database solution needs to be flexible enough to keep pace with this changing domain model.|
10. A performance monitoring tool that automatically keeps pace with application changes
Where does vFabric fit as an Agile Application Platform?
While this list of 10 embraces evolution through feedback from a worldwide community of agile practitioners, resources like the Agile Journal already recognize the value of how cloud platforms and agile fit together. Keep a look out for the second part of this blog post where we will provide a view of this list with example capabilities of the vFabric application platform. Until then, we would appreciate any thoughts or feedback in the comments.
 The Chaos Manifesto, 2012 – The Standish Group