DevOps is helping organizations keep pace with the skyrocketing demand for mobile app development. Here are 10 best practices for managing successful DevOps projects.
In June 2015, Gartner forecasted that, "By the end of 2017, market demand for mobile app development services will grow at least five times faster than internal IT organizations' capacity to deliver them." In fact, across the board, enterprises are already seeing their application workloads soar. As a result, more organization are adopting DevOps—a methodology that can speed app development and delivery by getting application developers and operations specialists to collaborate throughout the end-to-end app development and deployment process. Here are 10 DevOps best practices that are gaining traction in organizations.
1: Break the silos in IT
Breaking down functional silos between disciplines in IT must come from upper management, since IT has been organized into disciplinary silos for decades. In this environment, application development work has historically taken an assembly line approach, with one department building the app, after which the app is shipped to an operations group to integrate the app, after which the app is tested by a QA group, after which the app goes back to the applications and operations group so it can be deployed.
This separation of functions limits active collaboration, contributing to applications problems that delay deployment. Pressured to deliver today's apps faster, IT managers have begun to restructure IT into DevOps teams that are a mix of all of the IT disciplines, with each team getting accountability for a specific category of apps.
2: Adjust performance reviews
When the IT culture needs to be "de-siloized," putting some teeth into the process by evaluating team performance and individual participation on the team in performance reviews can go a long way. Base a larger portion of performance reviews for developers and operations personnel on their teams' ability to meeting app development and deployment goals.
3: Create real-time project visibility
Contemporary project management software now has built-in automation that eases the tedium of doing project updates. Project management tools can provide real-time visibility into an application and exactly where it is in the development to deployment process. It can also display who and what are the mission-critical resources for the current tasks at hand. The project management software can serve as a "single version of the truth" for a cross-functional IT team, making the job of project coordination easier.
4: Use software automation wherever you can
You can cut time, errors, and costs by selecting an application automation toolset that is compatible with your IT environment. This automation can be extended to app source code development, system and middleware configuration, and even database and networking changes. Important pre-production tests like regression testing and load testing prior to deployment can also be automated. This saves developers and operations personnel time and effort.
5: Choose tools that are compatible with each other
The other caveat for using tools and automation with DevOps is that the information the tools produce on application and system status does not conflict. It is generally more effective to choose tools from a single vendor because the tools are already tightly integrated with each other. This improves the chances that the status an app developer receives on an application's health will correspond closely to what an operations person sees on the app in his or her world.
6: Start with projects that are small and ensured for success
CIOs who endeavor to move IT culture away from silos need to make sure that the newly integrated DevOps work teams rack up some quick successes. This builds their belief and cooperation in the new methodology.
7: Don't forget the users!
The applications you're developing are for the end business. Without the critical support of business stakeholders, your DevOps works will be in jeopardy. Actively include end users throughout the DevOps process, from the time you sit down with them to define app requirements, through prototype development, unit testing integration/regression testing, training, and deployment.
8: Collaboratively manage change
When multiple parties collaborate in a rapid-paced development effort that engages prototyping and other tools, change to an app is going to happen. This is why an effective change management process is vital to every DevOps project. The moment an app change is asked for, the request should go out to everyone on the team, no matter which IT discipline they work in. This communication should be routed to end-user stakeholders as well.
9: Continuously deploy applications
DevOps is best leveraged in a continuous app deployment model where sites don't wait to bundle numerous enhancements into separate software releases but instead opt to continuously embellish and deliver revised applications. A continuous app delivery model with a strong change management system enables new app capabilities to be delivered to the business faster.
10: Create a service environment within the company
The days of the IT "glass house" are over. To stay relevant, IT must keep its finger on the pulse of the business users' needs and deliver apps that meet or exceed functionality and time-to-market expectations. It can do this if it changes its culture to stress the values of team effort, open communications, and commitment to customer satisfaction—even if the customer resides in an adjacent office.
Has your organization adopted a DevOps approach? Share your experiences and advice with fellow TechRepublic members.
- 10 low-cost ways to develop and improve applications
- Mobile is driving DevOps
- DevOps isn't a matter of speed, it's all about software quality
- The three flavors of DevOps: Developer-driven vs. operations-driven vs. Platform2.5
- Why 2016 is going to be the year of DevOps
- DevOps double case study: CloudBees and Perfecto Mobile (Tech Pro Research)