Cloud Source
Showing results for 
Search instead for 
Do you mean 

Increase your reaction speed, update your development approach

on ‎12-02-2013 03:20 AM

agility.jpgLet me start with a little story. A good year ago I was in Quebec, and let me disclose something here … speaking French, I’m really welcome out there. We had a wonderful time. One of the customers we met was a local bank. Their IT team wanted to experiment with cloud and we convinced them that cloud enabling their development environment made a lot of sense. So they did. They ran a proof of concept with two development teams. Last May I went back. The POC was nearly over and the head of infrastructure wanted us to take the equipment back. Unfortunately for him, there was no way the development teams were ready to let go. Actually they wanted 8 other teams to join. The infrastructure team saw a lot of benefits for development, but little for them. So, they did not see the benefits of having to buy the equipment. We ended up having to go to the CIO to resolve the issue.

It told me two things. First, moving to cloud changes the equation. The traditional organization and its way of financing/measurement may no longer apply. Second, once you provide developers with tools to facilitate their job, they love it, and it’s becoming difficult for them to go back to their original way of working.


How can you speed development up?

Over the application development process, developers use a multitude of environments for design, coding, documentation, testing etc. In a traditional environment they have to set-up their systems at each step in the process. That takes time. We at HP, analyzed the amount of time lost doing this, and surprise, surprise, we came up with a total of 15% of people’s time.


Providing them with a centralized environment where they can provision these environments automatically reduces that time drastically, giving them extra hours for developing their applications. That’s a direct benefit gained from using cloud based technologies to provide them the environments they need.


But there is more to it. In setting-up their environments, developers have a tendency to use the software versions they have available. In the old world it’s often the DVD that’s on their desk. This results in multiple versions of middleware, databases and tools being used. That will delay the integration of the components of the application and having it taken in production. How much time is gained here is difficult to say, but I would guess anywhere between 10 and 20%. Life also becomes easier for operations, and that’s another hidden benefit of doing this.


In a cloud environment, there is only one version of each virtual machine image, and it’s up to the creator to ensure he/she uses the appropriate version of all software components.


Using a cloud based environment actually adds two other benefits, first regular back-ups of the work done. Don’t tell me all your developers back-up their environments on a daily basis and never have to redo work because they lost it in a crash. Secondly, availability and security are improved through the use of a centrally managed environment.


These are simple approaches you can take to improve responsiveness without fundamentally transforming the way the organization develops applications. Listen to Ramon Baez, HP’s CIO describing how HP is using cloud to improve its velocity and responsiveness.



Automate testing

You remember the traditional environment where you develop your code Monday through Thursday and spend Friday doing testing? Sure, you’ll run small module testing during the week, but if you expect another module to give you something in one format, while it’s provided in another, you’ll only spot it on Friday.


Well this can be changed dramatically by automating the testing. Assume following for a minute. You’ve spend your day in coding functionality. It’s time to go home. You clock your days’ work in the repository and leave. And then it starts. Your contribution and the one of your colleagues are compiled and assembled. The assembled modules are installed and a series of tests are run.


By the time you get in, next morning, you have a report on how well your work behaved during those tests, which test succeeded, which one failed, what happened etc. So you can start your journey fresh, knowing that yesterday’s work is doing the job, or what you need to change.


By taking such approach you speed up development process, not only because you relieve the developers from a lot of the testing activities, but also because you allow them to be more productive by highlighting issues earlier.


Deployment automation

Cloud put the spotlight on automated deployment of applications. During the lifecycle of the application, it will have to be installed on multiple environments. For each of those environments the installation scripts have to be written. They may have to be adapted as the development evolves. That also takes time.


What if we could describe the environmental characteristics required by the application and use those to generate scripts and workflows to automatically deploy the application on the different environments.


So, you do your module tests on your local machine, your integration tests on a private cloud environment, stress tests in a public cloud, maybe your staging is running on a managed cloud to finally install the application on a private cloud but with high availability, scale-up/scale-down and load balancing.


New technologies such as Continuous Delivery Automation allow you to precisely do that. This is also how OpenStack is tested. Monty Taylor describes this quite well in a presentation given at LinuxCon NA 2013.


If you have a little more time, you may want to listen to him presenting OpenStack on OpenStack, how testing is done, during OSCON 2013.



As companies move away from big software release cycles, updating their code regularly, automating testing and deployment becomes critical. It allows developers not just to be more productive, but also to respond to users’ needs much faster. Isn’t that what agile development is all about. What is key though is the integration between development and operation, because having more agile development without involving operations will not give us any benefits. We fundamentally need both.

0 Kudos
About the Author


Nov 29 - Dec 1
Discover 2016 London
Learn how to thrive in a world of digital transformation at our biggest event of the year, Discover 2016 London, November 29 - December 1.
Read more
Each Month in 2016
Software Expert Days - 2016
Join us online to talk directly with our Software experts during online Expert Days. Find information here about past, current, and upcoming Expert Da...
Read more
View all