November 9, 2011 | Written by: Jean-Yves Rigolet
Share this post:
If the teams in charge of enterprise applications operations are dedicated to the stability of systems and infrastructure to provide business users with the means to carry out their work, by contrast it is expected of those that develop the applications to regularly develop new features to ensure an evolving and competitive business. These two conflicting objectives often cause problems and tensions between the two teams.
Organizing teams in a business is not an easy task. The culture change needed to improve the flows between teams is not only human but also requires a redefined relationship through the implementation of innovative tools and techniques to support cooperation in a spirit of agility between its various actors.
However, tooling the teams is not a guarantee of better results in itself, and organizations rely on people and their ability to adopt agile principles to get there.
How can we explain their difficulties in communicating with each other?
The answers are as multiple as the problems faced by each party. It could be an urgent need for new resources on a machine to test the load performance of an application, or attaching a debugger to a program to understand strange behaviour in a production environment, or even promoting an application from development to test, or defining new programs… These are some of the requests from developers. For the operations teams this list of needs is neverending. Closer to the technical infrastructure, and facing daily pressures from handling the operating systems for multiple platforms, operations teams seek to understand what the developers want to see installed and ready for use, the management of different backups, implementing and configuring the different batch jobs and editing calculations while ensuring their security. Again, lets cut this list short before it gets out of hand.
So can we do anything to relieve these teams? Is it inevitable that they end up back to back so often?
We must not forget that both teams have a common objective; to provide tools to conduct the business of their enterprise. This is why any kind of bridge technology which eases communication, and tries to reduce the risks of manipulation or misinterpretation looks like a step in the right direction.
On a daily basis, operation teams are forced to perform various manual actions, which can lead to errors and to a lack of precise knowledge of the applications deployed. A more systematic use of automation relieves teams while providing greater responsiveness and the exact knowledge of all the components actually running on systems.
To address these problems, many development teams rely strongly on one of the strengths of agile principles to deliver regular working applications, while meeting user requirements; through the automation of procedures.
Whether automating unit testing, ensuring functional integration tests or performance tests, or when building parts or complete applications, the automation of development procedures offers the teams the benefits of reproductibility and predictability to deliver robust solutions while avoiding the risk of human error.
In order to provide the teams with agile operations, the next step is to provide automation of deployment, which is what IBM now offers through a technology based on Rational Software Architect (RSA) that allows developers to define and automate the tasks required to provision the content of an application in the form of a topology. Modeling deployment information is captured in RSA and provided to automation engines such as Rational Automation Framework (RAF) for WebSphere, which is responsible for deploying an application or service on a target platform.
Moreover, as the teams responsible for application systems running in the enterprise are rarely working with a single contact from development teams, numerous deployments and varied requests are expected and need to be carried out according to a specific order and in keeping with synchronization phases. For this reason, elementary deployment of services must be integrated into a detailed schedule and orchestrated deployment.
That is why we have come to propose the detailed management of these plans, based on UML, which provides validation capabilities of the deployment plans. Once a plan is accepted by both parties and orchestrated, the Deployment Planning & Automation (DPA) tool automatically manages the workflow of application deployments according to the technical infrastructure of the enterprise.
Reducing the gap that has widened over the years between development teams and those responsible for running the business operations, these tools can now create a solid link between the teams which is essential during this difficult phase of deployment, ensuring clear and effective collaboration.
If cloud computing has different meanings to different people (from the varied to downright wacky!), the simplest way to provide invisible but nonetheless very real bridges between teams, starts with those that have lost the way to collaborate efficiently.