This content is part of the Essential Guide: Developing cloud applications in the new IT era

Strategies for adopting continuous software development for cloud

Management buy-in, along with the right mix of tools and staff, are critical to successfully implement continuous app development for cloud.

Continuous software development isn't a single tool or framework that magically transforms your development environment. Instead, continuous development involves a fundamental shift in people, practices and tools that, if implemented correctly, can significantly benefit the business and its users.

Adoption of continuous software development should start with a simple question -- why do it? In many cases, continuous development can lead to competitive advantage. These advantages include improved efficiency, productivity, faster time-to-market for cloud applications and an enhanced user experience.

But when implementing a continuous software development model, there are several factors to keep in mind.

To adopt continuous cloud application development, organizations need the skills to support that process. Experienced developers or software project managers are invaluable when implementing continuous software development. Often, the transition starts as a pilot project for a new application, and a business can use that project to refine its skill sets, processes and tools.

There are several tools and platforms that support continuous software development for the cloud. Serena Software Inc.'s Dimensions CM offers an application development platform that facilitates development tasks, such as change visualization, continuous integration of code, QA testing, security and release management. Similarly, CloudBees provides a continuous integration and delivery platform based on Jenkins, which can be deployed locally, as a cloud service or as a hybrid cloud. IBM is also in the game with MobileFirst and Bluemix for multiplatform enterprise application development.

To implement continuous cloud application development, organizations should be willing to try new things and learn from mistakes. The speed and fluidity of continuous development allows organizations to try new products that may not have been possible or practical before. Continuous development also involves a great deal of automation to speed the development cycle, as well as constant attention to underlying business needs.

Avoiding common continuous software development pitfalls

While continuous cloud app development can deliver significant value to a business, implementing it is not fast or easy. It requires investment and management buy-in, along with the necessary people, practices and tools. Here are five common challenges to keep in mind:

  1. First, development and deployment environments can be different. Testing is crucial in the continuous development process, but it is not a production effort -- a test environment often lacks the network traffic, storage traffic, compute stress and other "real world" factors that occur in a production environment. A continuous development strategy should consider these differences and try to minimize them where possible.

  2. Continuous development uses automation to move and integrate code, handle testing and maintain quality standards -- but it's not always perfect. Automation is essential, but the results are only as good as the rule sets that are used. A development team must constantly review and update automation resources, while leaving ample opportunity to perform manual testing or quality reviews before deploying a new iteration.

  3. Development and deployment are sometimes disconnected. For example, moving a new iteration into a cloud instance for testing might be quick and easy, but it's not always easy for users that need to download and install an application on their systems. Review and check real deployment practices to verify that any documentation, scripts or other deployment resources are updated and working as expected for real user environments.

  4. Sometimes, application developers can lose focus on business needs. Continuous application development allows app designers to experiment with new code or try new features. However, each iteration of a project should reflect tangible business goals. For example, a new iteration should fix bugs, add meaningful features and improve usability. Ensure every step ties back to business needs.

  5. Scope creep is a pervasive problem in software development. The continuous application development process can easily get sidetracked as developers try to stuff more effort into each iteration. Work on and release the essential or planned changes, and shelve the extras for a later date. Keep schedules on track, and don't try to do too much at once.

Next Steps

Tips for transitioning to a continuous delivery model

A guide to continuous development

How to form a continuous testing plan

Discover the benefits and tools for continuous integration

Dig Deeper on Cloud automation and orchestration