Continuous delivery: A new mindset

Despite its many benefits, the Internet has also been a disruptive presence in many ways.  One example, though not typically understood at first glance, is its impact on development methodologies.  Users of many Internet based applications are now accustomed to and demanding frequent updates to keep pace with the ever changing technology landscape.  This leads to a new continuous development methodology.

Continuous delivery is defined by as:

A software development system that automates the project phases from source code to distribution. It eliminates most of the manual steps in compilation, testing (see continuous integration) and distribution to the final destination (Web site, master disc, and so on).

This is an extension of the agile development methodology which includes many different organizations within the company; from development organizations all the way through to the delivery organizations. With its ability to quickly adapt to changing environments, the cloud is particularly positioned to take advantage of continuous delivery. In order to leverage the full capabilities of the cloud, a new mindset needs to be embraced by all departments in the organization. In particular, the concept of continuous delivery is not one that is well adopted today.

In today’s world too many organizations segregate development and steady state support.  Incentives need to be put into place so that both organizations strive for frequent quality updates to production systems. Currently, development organizations are rewarded by how quickly they can develop and release code.  Steady state departments are typically rewarded by how stable they keep the environment.   Incentives need to be put in place so development is also rewarded on the quality of their deliverables and steady state is rewarded on delivery of new features.

Development, Testing, and Steady State all have different perspectives on the development lifecycle.  These views seem to be opposite at first blush, but by taking a further look you can find commonalities.

  • Incremental Testing One of the major issues in standard development is being able to test and validate a code stream.  Small incremental builds require much less retesting, since targeted tests can be identified and implemented.  More defects will be identified if resources are targeted to test specific areas, while avoiding retesting areas that haven’t changed. This should be good news to steady state teams as well, since they should have more confidence in the code being released.
  • Code Consistency In order to truly capitalize on continuous delivery, automation to deliver code needs to be in place.  If the same code and delivery method is used for test and production, far fewer issues will occur.  The cloud can provide the capability to deliver consistent images on all environments.  The development organization needs to embrace this at the cost of spending additional time on the packaging of the product.
  • System Consistency The cloud can help facilitate system consistency by providing systems that are configured the same way they will be deployed.  The cloud gives the ability to spin up systems on demand, allowing development to keep pace with the latest configurations.  This also reduces costs by only paying for the systems when they are needed.
  • Frequent Updates Steady state and development organizations should both insist upon frequent updates to the system.  This might not be intuitive, but frequent updates will keep the steady state team from slowly diverging from the latest versions and keep them on current supported versions.  Many software development packages require additional supporting products such as WebSphere and DB2.  The supporting products have frequent patches and version updates.  Without the ability to continuously update your application, you can quickly fall behind supported versions.  Continuous updates keep the development organization agile and ready when supporting applications have updates.

By focusing all departments on common goals, organizations can provide a continuous delivery methodology and capture the promises of the cloud.

Add Comment
No Comments

Leave a Reply

Your email address will not be published.Required fields are marked *

More Archive Stories

Intuitive data mapping in retail analytics

When I moved from business to business (B2B) to analytics earlier this year, the first thing that struck me was the one major common aspect between the two domains: the need for data transformation. Both B2B and analytics need to transform data to make it conform to certain specifications. The raw input data is never close to the final format that they can use.

TOSCA and Cloud Services Orchestration – Compose once, play on any cloud!

The ‘holy grail’ of cloud computing – truly portable cloud architectures, where cloud services can seamlessly be transitioned from one provider to the next – is now another step closer to reality. This week, OASIS announced a new standard called TOSCA, Topology and Orchestration Specification for Cloud Applications, which seeks to solve important challenges faced by cloud service owners, architects, vendors and providers including management of complex topologies, security and Quality of Service requirements.

Cloud brokerage: Requirements to support service contestability

During a recent client engagement, a banking client put forth a requirement that, as they reorganize their IT environment by setting up a hybrid cloud, the new model should allow for contestability of public cloud services. They desired the ability to switch to those services which are superior (or “best of breed”) from a functional […]