Agile practices and DevOps practices are highly complementary. As organizations have adopted agile practices, they have found that automating the software development pipeline enables their teams to shorten cycle times and deliver value to their customers faster.
Getting started with DevOps is more than just automating manual processes currently being performed by your Development and Operations teams. It is a significant organizational change which can impact the work people do, existing business processes, leadership approaches, and (ultimately) culture.
How to Get Started
This includes readiness not only for your Development and Operations teams but also for business stakeholders and leaders. The assessment should be more than just readiness to adopt new technical practices like continuous integration, continuous deployment, version control, configuration management, etc. Existing business processes can seriously impede a DevOps transformation. Culture will be impacted. Leaders will have to change how they lead. All these areas should be assessed to help guide your approach to the transformation.
Establish Your Vision
Identify a Product Owner for your DevOps “product”. It should be someone who can establish and communicate the vision for the product. They should be able to define a roadmap for your DevOps journey that can be adapted as the team begins to deliver. The roadmap should create a vision of where you are going but encourage frequent delivery of value as the team progresses.
While implementing DevOps practices is transformational, it should not be done as a “big bang”. Start small. Focus on instilling solid foundational software development practices like version control and improving your build process. These core practices will make subsequent changes easier. Keep your overall vision in mind but iteratively improve. Showing results early will make it easier to maintain excitement about the transformation.
Make the Business Case
Ultimately, your business case needs to clearly articulate how cycle and lead times will be reduced from ideation to delivery of value to your customers. Communicating the DevOps vision and roadmap should support how your team will accomplish this. Sharing initial results already achieved proves the team can deliver. Leadership support is critical. While it is possible to start at the “grass roots” level, eventually you will need leadership support.
Team members will have to learn new skills. Encourage them to make this investment and to add new tools to their toolboxes. Engage the help of knowledgeable practitioners who have experience in DevOps and Agile transformations. DevOps is not a product that you can purchase and implement. It is a new way for your teams to deliver value to your customers faster.
Pick a Pilot Project
A new greenfield project is ideal. Use this as an opportunity to “showcase” what is possible. Implement new technical practices and business processes that enable the team to shorten cycle times. Encourage collaboration among all participants of the software development pipeline. Patterns can be developed to be leveraged on future projects. This will assist in your understanding of what changes will be needed in existing software products to enable DevOps.
Be Prepared for Setbacks
These will come. There will be technical challenges and push-back on business process changes. Existing cultural beliefs and behaviors will have you questioning whether implementing DevOps practices is worth the effort. Some people will feel threatened by the changes. Continue to refine, improve and communicate your vision. Focus on continuously delivering value to your customers.
Continuously and Incrementally Improve
Challenge everyone to find ways to optimize the end-to-end software development value stream. Implement small changes that shorten cycle times then look for the next opportunity to improve. Instill a mindset of continuous improvement. Don’t settle for “best practices”. Keep getting better then communicate your victories.
Create New Habits
Over time, DevOps should not be seen as a project to be implemented but just the way your teams develop software. Challenge your developers to be the best and to encourage each other to consistently deliver value to your customers. Inspire them to continuously improve their definition of done and to passionately protect the quality of the products they deliver.
Most Importantly – Collaborate!
Delivering value consistently and rapidly requires a cross-functional team that knows how to collaborate. These skills cross traditional organizational department lines. Encourage everyone to challenge the status quo. Eliminate traditional silos to enable true collaboration. Maintain a constant and unwavering focus with all team members to shorten the time it takes to deliver value to your customers.