Herry Wiputra, Chief Technology Officer, Campaign Monitor
The technology startup ecosystem is booming. As more companies enter this highly competitive space, how can incumbents ensure they stay ahead of the curve? With customers demanding instant solutions to problems within software, what adjustments will existing technology businesses make to ensure they stay agile enough to keep customers happy?
I have worked for multiple technology businesses over 15 years of my career in IT.It has become evident that building agile, autonomous teams is the key to success for any technology company looking to survive in today’s fast-paced environment. But how does one cultivate this mentality with so many incongruous elements in traditional technology businesses working against this goal? At the heart of the matter is the development and operations team’s incongruent relationship.
Businesses must find a solution to streamline their processes to ensure frequent, timely delivery of software updates. Many try to adopt the tenets of the burgeoning ‘DevOps’ movement, but it is a complete system and culture overhaul that is far more involved than simply combining the two words ‘development’ and ‘operations’. While it does not strictly combine the two teams, DevOps as a practice sees far greater alignment between development and operations teams terms of goals, culture and workplace processes.
Traditionally, the two departments operate on a very individual and isolated basis. Developers write the code then hand off to the operations team who prepare it for public consumption and ongoing maintenance. The development team’s success is measured by the rapid output of programming, while the operations team is measured by system uptime and performance. Can you see how these two conflicting areas of interest might result in a delayed release?
For any company looking to streamline the deployment process, here are the three stages of integrating the DevOps movement into your business:
Companies must develop a culture with a healthy risk appetite in order to facilitate this transition to a team where failure is embraced. The technology market is in a constant state of flux as new services appear and technological updates revolutionize the market seemingly on a month-by-month basis. Businesses must be able to react immediately to these changes or face becoming out-dated.
Although this comes at a cost — within a nimble company, failure will happen, now the focus must shift to quick recovery or as some companies put it, ‘fail fast’. Having a DevOps team is risky — there is potential for the team to overlook certain errors during their speedy deployment of software. However, this is balanced by the team’s ability to respond quickly to these oversights with fixes delivered at a speed not previously possible for traditional tech businesses.
In order to fully integrate a healthy risk appetite, companies must address how they motivate their personnel. Humans behave in accordance to how they are incentivized, so employee KPIs must be aligned with these behavioral changes. Both the development and the operations teams must share goals that are not measured by a mistake-free deployment of software.
However, merely adjusting the KPIs of the teams is not enough to create a streamlined process and adequate cross-departmental communication. Companies need to strengthen relationships to create empathy between developers and operations. This can be achieved by adding employees with broader skills sets to either team, enhancing understanding between teams. Another tactic can be to rotate the staff through different roles to facilitate a more involved knowledge of the complete end-to-end deployment process.
Traditionally, the development team is in charge of coding the software before the operations team releases it for public consumption. When adopting a DevOps mindset, each team has complete ownership of the process from creation to maintenance, while still remaining focused on one area of deployment. This shared responsibility facilitates the autonomy required for higher frequency deployment. Integrating a DevOps ‘toolchain’ is essential for this process, granting both teams access to any stage of the software deployment chain. Tooling enables developers to perform operations tasks independently of the Operations team. This end-to-end involvement increases understanding and autonomy across both teams, leading to more frequent, higher-quality deployments.
Technology companies are exposed to innovation on a daily basis. Being agile within the market is no longer setting businesses apart; it has become a necessity to survive. While not the answer to all process issues, DevOps is a step in the right direction. Adherence to this movement will lay positive foundations for a healthy risk appetite and improved cross-departmental cooperation with the company. This allows the company to focus less on its ground-floor processes and more on future technological innovations, ultimately keeping the business ahead of the curve.