Abstract
Background: Coordination is a crucial aspect of agile software development. Managing dependencies is important for efficient coordination. Understanding what activities and artifacts manage different dependencies can help companies coordinate better and choose the mechanisms best suited for their coordination needs. Aim: This thesis aims to investigate how an agile DevOps is managing dependencies to achieve effective coordination. This is examined by identifying dependencies and coordination mechanisms for managing these dependencies. Additionally, the aim is also to investigate which barriers for managing dependencies can be found in an agile DevOps context. Method: A qualitative case study was conducted. Data were collected by conducting 9 interviews, observing 32 workdays, and observing 49 meetings. Additionally, various documents and chat logs were collected. Results: The results revealed 38 coordination mechanisms and 95 pairs of dependencies present in the development team. These coordination mechanisms manage knowledge dependencies, process dependencies, and resource dependencies. Also, working remotely, role clarity, planning, and estimation, and implementing changes in the software development process was identified as barriers to managing dependencies. Conclusion: It is possible to use a dependency taxonomy to identify coordination mechanisms and dependencies in an agile DevOps company. The most crucial coordination mechanisms found in the company included the Zendesk planning meeting, the daily stand-up, ad hoc conversations, the sprint planning meeting, and communication tools because they managed four or more dependencies.
Background: Coordination is a crucial aspect of agile software development. Managing dependencies is important for efficient coordination. Understanding what activities and artifacts manage different dependencies can help companies coordinate better and choose the mechanisms best suited for their coordination needs. Aim: This thesis aims to investigate how an agile DevOps is managing dependencies to achieve effective coordination. This is examined by identifying dependencies and coordination mechanisms for managing these dependencies. Additionally, the aim is also to investigate which barriers for managing dependencies can be found in an agile DevOps context. Method: A qualitative case study was conducted. Data were collected by conducting 9 interviews, observing 32 workdays, and observing 49 meetings. Additionally, various documents and chat logs were collected. Results: The results revealed 38 coordination mechanisms and 95 pairs of dependencies present in the development team. These coordination mechanisms manage knowledge dependencies, process dependencies, and resource dependencies. Also, working remotely, role clarity, planning, and estimation, and implementing changes in the software development process was identified as barriers to managing dependencies. Conclusion: It is possible to use a dependency taxonomy to identify coordination mechanisms and dependencies in an agile DevOps company. The most crucial coordination mechanisms found in the company included the Zendesk planning meeting, the daily stand-up, ad hoc conversations, the sprint planning meeting, and communication tools because they managed four or more dependencies.