Developing a software engineering team structure at a SaaS company
Bhorkar, Gaurav (2023)
Bhorkar, Gaurav
2023
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2023120434010
https://urn.fi/URN:NBN:fi:amk-2023120434010
Tiivistelmä
When software grows, companies need to create multiple high-performing engineering teams to keep up with software development and enable fast delivery of value to the customers. Often teams are unable to perform due to how they are structured. This thesis is a case study of establishing an effective software engineering team structure at a software as a service (SaaS) company. The product is an intranet service used by customers for internal communications and knowledge management. The main goal of this thesis was to study the company’s current problems and attempt to solve them with a new team structure that enables high performance. The study incorporated a broad literature review of modern software engineering practices, team dynamics, organisation design, and organisational factors that affect team performance such as dependencies, cognitive load, clarity, psychological safety, size, and software architecture and communication structures. The methodology used incorporated group interviews as a primary data collection method. Other secondary data sources such as company documentation, HR system data, among others were also explored. The study utilised the 5-step design thinking process by empathising with the case, defining the main problems, ideating solutions to solve the problems, prototyping a new team structure, and proposing evaluation for the new structure. The results of the study are structured as the design thinking process progressed. The empathize and define steps reveal the strategic areas, current structure, focus areas of current teams and their complexity, and dependencies. The problems to solve included low autonomy, low motivation, dependencies, too large focus areas, slow delivery, common code ownership, etc. The ideate and prototype steps focus on refining communication, collaboration, and dependency resolution by defining teams that are focused on different value streams. The author proposes five stream aligned teams to the primary value streams of the SaaS product namely, pages (content), channels (content), discovery (search and notifications), governance (identity and administration), and growth. For a solid foundation, a platform team with two sub-teams is proposed, one focusing on the cloud platform while another focusing on the software platform. To execute the strategic area of artificial intelligence (AI), a separate AI team is proposed to provide services to other teams to leverage AI and reduce their complexity. Lastly, a quality engineering team focusing on enabling all teams to incorporate quality in their work is proposed. This proposed structure solves the main problems by focusing on high team autonomy, well-defined focus areas, lowering cognitive load, and reducing silos. The thesis adds to the knowledge of organisation design by demonstrating a process of analysing and structuring software engineering teams thus addressing one of the major challenges in the ever-evolving landscape of modern software development.