Continuous delivery: A new mindset

Share this post:

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.

More stories

Why we added new map tools to Netcool

I had the opportunity to visit a number of telecommunications clients using IBM Netcool over the last year. We frequently discussed the benefits of have a geographically mapped view of topology. Not just because it was nice “eye candy” in the Network Operations Center (NOC), but because it gives an important geographically-based view of network […]

Continue reading

How to streamline continuous delivery through better auditing

IT managers, does this sound familiar? Just when everything is running smoothly, you encounter the release management process in place for upgrading business applications in the production environment. You get an error notification in one of the workflows running the release management process. It can be especially frustrating when the error is coming from the […]

Continue reading

Want to see the latest from WebSphere Liberty? Join our webcast

We just released the latest release of WebSphere Liberty, It includes many new enhancements to its security, database management and overall performance. Interested in what’s new? Join our webcast on January 11, 2017. Why? Read on. I used to take time to reflect on the year behind me as the calendar year closed out, […]

Continue reading