Choose your language:
A large communications company sought TEKsystems’ support to assess its software development processes and provide guidance on a recommended continuous delivery (CD) model (including Agile practices, tools and capabilities) and build the foundation for an enterprise DevOps.
The client is a large, California-based communications company delivering digital entertainment programming, including movies, television and audio to subscribers in the U.S. and South America. The client has trusted TEKsystems to support its IT initiatives for nearly a decade.
Most companies, especially those in the technology and communications space, feel increasing pressure to innovate and deliver new products faster. Whether developing a new capability or releasing an update to improve an existing feature, organizations feel a sense of urgency to make new outputs available to the marketplace quickly in order to stay relevant and compete. Traditional software development and deployment via the linear Waterfall methodology is not conducive to the fast pace that communications organizations are moving to solve business challenges and satisfy their end users. For an enterprise to enable the business to be more competitive in the current marketplace, eliminate operational pain points and embrace changes as a matter of routine, it needs to shift to a more agile business environment. The dimensions of business agility include responsiveness to changes in customers, how people and culture make an organization more agile, how to encompass agility elements to the underlying process and how to use automation as an enabler. The result is rapid new product launches and sustained performance.
To help achieve business goals and attain the level of business agility that is needed, many organizations may choose a bottom-up approach to adopting a continuous delivery model. A successful continuous delivery model to be proven and applied initially to a pilot can enable organizations to rapidly and incrementally produce high-quality solutions and improve delivery effectiveness. The approach is more iterative and collaborative than Waterfall and as such, enables organizations to mitigate project risks, quicken their time to market, increase productivity and maximize efficiency. Under a CI/CD model, cross-functional collaboration enables an organization to streamline its processes to adapt as delivery needs evolve throughout the project life cycle.
Although there are many advantages, shifting to business agility can be a long-term and challenging undertaking for organizations. This requires ongoing commitment and collaboration between the IT and business sides of the organization. In addition, with numerous other priorities impacting each employee in the present, it can be challenging to drive participation on an initiative that has no immediate and direct impact on the here and now. Successful CI/CD initiatives demand leadership and employee buy-in, and active participation throughout the adoption process.
Cucumber, Git/Stash, Jenkins, Rally
The client delivers digital entertainment programming, and its competitors include well-known companies providing online streaming capabilities, satellite television and other cutting-edge, advanced technology and features in the entertainment space. The client’s competition had been increasingly improving their ability to build new capabilities and get their products to the market quickly. The client, who was used to releasing new products on a quarterly or annual basis, took notice of the speed to market that industry peers were able to provide and felt pressure to improve its own processes. Bringing new features and capabilities to the market was critical in order to compete and stay relevant. Extending from that, positive perceptions and customer satisfaction were important to the client and that meant being able to deliver quality products and services in a timely fashion. In addition to market demands, the client was also in the middle of a merger and acquisition with a company that had a more mature development process. Wanting to bring value to this new business partnership, the client needed to find a better, more efficient way of getting new products, features and capabilities to end users.
As a large communications organization, the client had a sizeable IT department, including several divisions dedicated to specific functions and priorities. The divisions operated in silos and lacked alignment with the business in terms of culture, process, technology, measurements and procedures. The client realized inefficiencies stemming from this misalignment; in order to remain competitive with other, more nimble communications organizations, the client needed to strengthen and standardize its delivery processes and increase collaboration between QA, operations and development.
Instead of completing projects in an Agile fashion, the internal groups primarily relied on the more linear Waterfall methodology. While some areas of the IT department had the mechanics in place to use Agile development methodology, there was no overarching framework or disciplined process in place for all groups to leverage and ultimately streamline activities and drive efficiency. Realizing the benefits of adopting Agile, the client was in the early stages of a maturity transformation path; there were aspects of Agile that were being used but not holistically across the IT organization and there was room for improvement.
In order to turn its operating model into a competitive advantage, Agile practices enabled by technology and automation are key in this scalable model. There are three levels of accomplishment within software delivery that the client wanted to work toward.
By integrating code and builds on a regular basis, the team can detect errors quickly. This helps reduce the cost of delivery and allows the team to achieve software delivery more rapidly. The full benefits of CI can be reached when performing in an iterative and incremental manner. Organizations aspire to achieve continuous integration to make these development processes more automated and streamlined.
Continuous deployment is closely related to continuous integration and refers to the release into a staged environment that passes automated tests. After continuous integration, the developers and testers are working seamlessly. But to increase efficiencies even further, the operations team (and/or staff that support production-level systems) need to be aligned so the software or application being developed can go into production quickly and the end product can be used even sooner. By adopting both continuous integration and continuous deployment, this allows for greater collaboration between operations and delivery, fueling real change in an organization and turning the release process into a business advantage.
Differing from continuous deployment, in a continuous delivery scenario—the most mature level of the life cycle—end users can enjoy the end product being developed almost immediately. This means no more testing or deployment phases. Organizations that are performing continuous delivery are so efficient that they are constantly developing and changes can be made or new features can be added to an application, then released outside their environment and to the market right away for audiences to see and actually use.
The client wanted to be more nimble and bring products to their customers as soon as possible. The aspirational end objective was to achieve continuous delivery. They needed to go through the life cycle continuum, from continuous integration to continuous deployment before reaching that level of maturity. One of the IT divisions, the Strategy and Innovation (S&I) team, recognized the need for a more consistent set of practices and tools that should be used across functions within IT. Focused on linking the development side with the operations side, continuous delivery is often referred to as DevOps.
The S&I team required support from an IT services provider that could evaluate their current landscape, assess current processes and provide guidance for the future. Because the wider IT department included many functional teams and disciplines, the tools and processes used to complete projects were not shared holistically across the department. The partner of choice would need to work through the mechanics of these tools and processes with an interdisciplinary team to determine consistent tools, processes and standards. Realizing that this transformation would take time, the client would need a playbook for near- and long-term actions. To support this initiative, TEKsystems would assemble a multidisciplinary team which would include organizational change management experts, Agile transformation coaches, application development life cycle management experts as well as enterprise architects to build a comprehensive and pragmatic solution for our customer.
The team would perform a baseline assessment, including evaluation of the client’s current operational models and identification of barriers, risks and complexities to adoption of a continuous software deployment model. Based on our findings, a detailed assessment report would be developed to provide strategic direction and recommendations for a culturally compatible continuous deployment model that addresses any potential people, process and/or technology change actions required. As a key deliverable, we would lead the development of a continuous integration and continuous delivery playbook with the support of a core project team within the client. We would also advise, coach and measure the core project team’s performance via an iterative software product deployment POC exercise. There would be four iterations to learn, build from and fine-tune the continuous deployment playbook.
Pilot product functions to be implemented and continuous delivery change actions to be adopted would be handled in an iterative manner as part of two concurrent work streams (backlogs). Focus would be on building a common understanding, overcoming barriers and developing team consensus around a mutually agreeable continuous delivery model.
There were several key challenges TEKsystems took into consideration when providing our recommendations:
Because the IT department was large and composed of various teams, driving adoption of consistent processes and tooling across functions would prove difficult. Every team has different goals, project priorities and deadlines. This initiative was not driven by an immediate business requirement, and other priorities would take precedence. The other groups were set in their ways, and convincing them to shift their fundamental way of performing processes meant that the S&I team would need to demonstrate the value of Agile to the other groups and get their buy-in.
Client leadership was eager to regain a competitive foothold by getting products to market faster. In addition to S&I, various other teams within the IT organization felt this pressure to increase efficiencies, including the operations group, development group and .com group. The different groups were trying to come up with their own solutions and hiring separate third-party partners for support, further complicating the situation.
Reaching a continuous deployment and continuous delivery model would require finding supporters outside of the S&I team who see the value, buy into the team’s goals and are willing to participate and advocate for S&I’s efforts. We would have to navigate the political environment to find advocates with positive attitudes who were willing to commit to participating and making time for this initiative.
Despite these challenges, we were confident in our ability to help the client through this initiative. Given our long-standing partnership, the client was also confident in our capabilities, proven expertise and understanding of Agile, and we were selected exclusively to provide our support.
TEKsystems successfully performed an assessment of the client’s environment and provided strategic recommendations on process improvements for future projects. We were involved early in the client’s DevOps journey and early in their learning curve, so our assessment evaluated processes on a very holistic level.
The continuous delivery change actions focused on three areas of improvement:
We provided a scalable framework—based on proven industry best practices—for executing continuous integration and continuous delivery (CI/CD) that was adopted incrementally by the team. We treated the changes as a product and executed those changes using Agile practices.
Facilitating CI/CD processes ultimately helped align the cross-functional teams and enabled them to realize the value of Agile.
In addition to the S&I team, we wanted to get buy-in from other teams. We were able to find a core group of advocates that came together, participated and bought into the end goal of maturing their processes. A combination of four functional areas of IT participated: S&I, application development, operations and .com. Each group had their own tools and approaches to completing projects, so we were focused on aligning those differences and getting everyone within the larger IT department on the same page. Once we got traction with this core team, we were able to generate broader interest from others who took notice of the success. The S&I team was very happy with our support and we anticipate we will be providing additional guidance further through their Agile transformation life cycle.
We developed a CI/CD playbook to guide the client through this phase of the Agile transformation life cycle. The playbook was validated through a pilot and will serve as a baseline for future CI/CD implementation actions.
Changing the fundamental way of development requires a lot of time and active participation from everyone. It was critical to take this transformation one step at a time and ensure the client team had a strong grasp of the basics, such as how to use the tools and the advantages of the tools. During this phase of the client’s Agile transformation, we focused on getting everyone trained, learning how to work together across divisions, agreeing on what standard set of tools we would use, getting into an operating rhythm and ultimately streamlining development.
We completed four iterations of the proof of concept; and with each iteration, the team coached and mentored users in order to keep the momentum going. We recognized improvements and movement along the learning curve with each iteration. For example, in the middle of the third iteration, the client really began to see the value of using a standardized, consistent set of tools to streamline operations and get projects done faster. In the second iteration, participation was low but by the fourth iteration, people had taken notice of the value and were eager to get involved. Over time and with increased participation, the client will be able to further mature its Agile processes.
At this stage of the transformation, the client had several key improvements and benefits to take away from our partnership. They performed an internal retrospective of this initiative which was very telling. Before, there was no holistic, collaborative process model in place—now, they have a common way of working together in terms of process and procedures which will be a foundation in their efforts to expand and mature going forward. We helped build a common understanding, developed team skills and arrived at a DevOps framework that was mutually agreeable across different roles within IT. The client realized that they now had the ability to communicate, collaborate and move faster than before. Integrated tools—which they had used before but not collectively—now deliver better, faster, more efficient outcomes. And the integration of tools and processes also helped break down some organizational barriers because they enabled the siloed department to effectively collaborate.
Changing the way a company performs software development is a big commitment and change for everyone involved. The client saw the value in maturing its Agile processes, but realized early on in our partnership that they were not as prepared as they initially thought, and education and training were necessary. Although outside of our original project scope, we took a step back to focus on helping the client get the basics down before moving forward. We also worked against competing schedules and priorities to ensure progress was being made and we were delivering the value that the customer expected from us.
Given the size of the organization and the fact that the IT department is made up of many functional divisions, the client works with many third-party partners. As a key partner, TEKsystems has been delivering IT solutions and services to this customer for over a decade with over 100 IT professionals. The new playbook and pilot program we helped develop are going to be key for this customer to grow, mature and increase the agility of their operations and their overall competitiveness. We have a proven track record of partnership, and the client appreciates the value we consistently deliver. In fact, outside of the S&I team, other IT divisions were working with third-party consulting firms in a parallel effort. TEKsystems was the only organization that was able to develop and deliver a playbook to advise on future projects—this playbook was a critical deliverable for the client.
With a dedicated team and combined expertise in Agile Transformation, organization change management, application life cycle and application development management, TEKsystems offered specialized expertise and shared the best practices. Our experience and insight enabled us to bring a unique perspective to the engagement. We realized the client’s internal knowledge of Agile was not where it needed to be, and knew their fundamental understanding was critical to moving forward in the life cycle. Thus, we made education and training a priority and pushed our timeline out to accommodate the client’s needs.