by Zach Rhoads (Red Hat)
One of the core tenants of agile development is to focus on the tasks that are the highest priority and immediate need. This is sometimes referred to as “Just-in-Time” development. The idea is to focus on the tasks needed to ship the feature now and worry about everything else when it is actually needed. Another tenant that goes hand-in-hand with “Just-in-Time” is the idea of failing early. Basically, a team should know as early as possible if something is going to fail, that way the team does not waste time going down the wrong path. This means the team should develop a feature and solicit feedback in short cycles, allowing the team to quickly understand what works and what does not.
Now, the ideas of “Just-in-Time” and “Fail Early” may seem straightforward from a design, development and testing perspective, but it becomes a bit more complicated from a configuration management perspective. If an organization has multiple teams and/or multiple groups within a team working on features in parallel, managing all of those applications, deployments and environments can become quite a burden. One thing to consider would be to employing some cloud infrastructure to alleviate that burden. Services such as Openshift, Heroku and Amazon Web Services allow instances of servers or application containers to be created and deleted on-demand (or “Just-in-Time”) via an automated web interface. This enables teams to quickly and automatically deploy an application, solicit feedback and make changes without having to wait for servers or administrators to be available, allowing teams to find failures earlier while minimizing support costs. Once the feature is ready to move to a formal test environment, you can just delete the instance and move on.
Having a cloud environment allows the team to do true rapid prototyping while saving the cost of administering the extra servers and application containers required to do so. On top of that, if the team wants to explore a new technology stack or framework, setting it up in a cloud instance allows them an exterior sandbox without costing the administration team time and resources. Using cloud infrastructure and platforms to augment certain parts of your environment can really help reduce the friction of tedious, temporary environment setup and teardown, allowing teams and administrators to focus on solving problems and shipping features.
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.