Carte

Photo by Taylor Vick

Devops In Small Teams


devops

Modern software products are becoming larger and more complicated every year. In addition to this added complexity, the digital landscape of today requires faster development and release cycles. Companies like Google, Amazon, Facebook, and Netflix are characterized by their fast-paced releases and quick response times. The solution to the problem often lies within the integration and streamlining of software development and IT operations; this integration has become known as DevOps. With DevOps becoming mainstream and adopted by tech giants, does a DevOps pipeline make sense for all companies? Does the time saved and fast releases make financial sense to offset the initial obstacles and startup costs?

Why a Small Team Would Want DevOps

Software development within the largest tech companies, colloquially known as FAANG companies[2], can sometimes seem like a race to first release. The race to release has led many large companies to invest largely in sophisticated DevOps infrastructures. DevOps, a generic term used to describe the integration of software development and IT operations, has very quickly become the standard for large scale software development. 88% of 1425 organizations had already or planned to adopt DevOps practices before 2019[7]. While the benefits of the DevOps practice are very often touted, is this model practical and sustainable for smaller organizations? Management personnel could easily see Facebook’s claim that they are capable of deploying a continuous stream of hundreds and up to thousands of updates per day[5] and assume their business could benefit from at least some of the methods being employed by Facebook. The concept of unified development and operations in theory is perfect for any size team building software. The main idea of DevOps is to create an environment of collaboration between development and operation teams[8] avoiding and mitigating scenarios of the development and operation teams blaming one another for any failures during deployment of a software product. However, implementing new development technologies and technologies is never hassle-free.

Complications with Existing Management

Without buy-in on DevOps methodology from all of senior management, the attempt to begin operating with DevOps in mind could run into multiple roadblocks.[3] As seen in the initial findings from Jones et al, [3] an existing managerial structure can easily undermine a Software Development Manager (SDM) and their attempts to establish a DevOps plan. An example can be seen in the UK Small to Medium Enterprise (SME) Jones et al performed their qualitative study on. In the initial findings, the existing managerial structure had the SDM and the IT Operations team both reporting to the Head of Group Operations. Because of this structure, a senior system administrator was able to circumvent the SDM while the team was trying to implement a DevOps workflow. The solution proposed by Jones et al to close the existing “IT operations loophole” is simple, the Software Development Team and IT Operations Team should both report to the SDM, who then reports to the Head of Group Operations. However, this solution is not feasible to implement without the full investment of senior leadership into the transition to a DevOps approach.

Complications with People and Money

Within a smaller engineering team, it can be more common for individuals to fill multiple roles. A team within a company that isn’t solely focused on software development can easily have a team size of under 10 engineers, similar to the size of some startups.[6] This lack of personnel available could add unneeded stress to the average worker within a small company during the integration of a DevOps workflow. Employees in the development and operations teams would still be required to perform their normal daily tasks, in addition to attempting to build up the systems to support DevOps. Companies looking to implement DevOps principles could also fall into a similar situation seen in the 2016 UK SME study conducted by Jones et al. Within this study, the company being observed was attempting to implement DevOps for the development of a new system as well as maintaining a legacy system that was critical to business operations.[3] Small engineering teams will see similar situations occur if the implementation of DevOps will be paired with the development of a new system. These smaller teams may lack personnel and/or funding to accomplish everything within a timeframe seen as economically viable by upper managers.

Initial Costs

Because of its growth in popularity, the tools used for DevOps have become their own submarket within the software development industry. Like many other aspects within software development, there is a myriad of tools available to allow companies to attempt to integrate a DevOps workflow at various prices as well. The integration of a new DevOps workflow can theoretically be completed with tools that do not require licensing fees and operate under open-source licensing. However, the true cost of open-source software solutions is not normally a tangible dollar figure that can be provided to the company’s accounting department. Often open-source solutions require bootstrapping the entire system from the ground up,  whereas a more expensive enterprise-grade solution may come with the advantage of a more simple startup and integration or customer support to aid the team through the integration steps. A pricing model that is becoming more common is software products offering low cost or free low tier plans with increasing costs dependent on the use case. The advantage of this newer pricing model is that a small team can begin the integration of these tools without having to justify the cost of DevOps tools to upper management until a tangible benefit of the tool’s integration can be seen and more easily justify the price of an enterprise license.

Security Concern

When conducting research into DevOps, it is very easy to see all the benefits of getting a powerful and efficient continuous integration / continuous delivery (CI/CD) system running. It would be plausible for a manager to see the constant delivery systems from companies like Facebook reporting up to thousands of releases within a single day[5] and assume if their team could reach that level of efficiency, most of their engineering problems could be solved. The importance of integrating security within the DevOps process should not be forgotten. In fact, many software developers have stressed this importance and created vernacular in accordance with Secure DevOps, commonly referred to as SecDevOps or DevSecOps.[4] The continuous deployment numbers of Facebook are often quoted in order to tout the efficiency of a well-engineered DevOps pipeline. What is often overlooked is that any software changes related to end-user privacy are handled differently and the deployment rate is limited.[1] While some DevOps practices such as automated monitoring, testing, and deployment may actually be beneficial to a system’s security.[4] The implementation of DevOps practices strongly promotes the idea of collaboration amongst the Development and Operations teams. Rahman & Williams[4] observed that unrestricted collaboration could lead to individuals “inappropriately gaining access to system resources and accidentally or deliberately changing system properties” this change could very well have a negative impact on the overall system security. Rahman & Williams[4] observed that established DevOps organizations had security awareness practices and active involvement from security teams for collaboration on DevOps. It should be imperative that the adoption of DevOps is done with the collaboration of Information Assurance (IA) personnel in order to protect the end-user’s security.

Conclusion

DevOps/SecDevOps is definitely the way large scale tech companies will be developing and releasing products for the foreseeable future. DevOps within FAANG companies can allow them to gain an edge in the modern software arms race, providing companies the capability to premiere a new feature to the end-user before their competitors. With the advantages DevOps brings to the largest tech companies, it is understandable that a smaller development team may want to adopt their own form DevOps. The complications that a small development team may run into during the start-up of a DevOps workflow are likely similar to the challenges faced within the largest companies. However, companies on the FAANG scale have the advantages of financial backing and manpower to work overcome obstacles that arise. The adoption of DevOps is not impossible for a small team, and while the obstacles that will be encountered are not impossible to overcome, they should be considered and known before the integration of DevOps begins. Once a team is allowed the freedom to change how release and deployment of software will be handled as well as getting support from most, if not all, of the Development and IT Operations teams the path to DevOps will have many obstacles unique to smaller teams lifted.

References

  1. Feitelson, D., Frachtenberg, E., & Beck, K. L. (2013, February 4). Development and Deployment at Facebook. https://ieeexplore.ieee.org/document/6449236&nbsp
  2. Fernando, J. (2020, August 28). FAANG Stock. Investopedia. https://www.investopedia.com/terms/f/faang-stocks.asp.
  3. Jones, S., Noppen, J., & Lettice, F. (2016). Management challenges for DevOps adoption within UK SMEs. Proceedings of the 2nd International Workshop on Quality-Aware DevOps – QUDOS 2016. https://doi.org/10.1145/2945408.2945410
  4. Rahman, A. A. U., & Williams, L. (2016). Software security in DevOps. Proceedings of the International Workshop on Continuous Software Evolution and Delivery – CSED ’16. https://doi.org/10.1145/2896941.2896946
  5. Savor, T., Douglas, M., Gentili, M., Williams, L., Beck, K., & Stumm, M. (2016). Continuous deployment at Facebook and OANDA. Proceedings of the 38th International Conference on Software Engineering Companion – ICSE ’16. https://doi.org/10.1145/2889160.2889223
  6. Souza, R., Malta, K., & Almeida, E. S. D. (2017). Software Engineering in Startups: A Single Embedded Case Study. 2017 IEEE/ACM 1st International Workshop on Software Engineering for Startups (SoftStart). https://doi.org/10.1109/softstart.2017.2
  7. Technologies, C. A. (2014). DevOps: The Worst-Kept Secret to Winning in the Application Economy. Https://Infotech.report/. https://infotech.report/Resources/Whitepapers/dc26fd4e-c270-40c4-ab3e-35bfe82752ef_devops-winning-in-application-economy-2.pdf.
  8. Wahaballa, A., Wahballa, O., Abdellatief, M., Xiong, H., & Qin, Z. (2015). Toward unified DevOps model. 2015 6th IEEE International Conference on Software Engineering and Service Science (ICSESS). https://doi.org/10.1109/icsess.2015.7339039