Design an engineering organization structure—defining roles (CTO, engineers, devops), team organization, and reporting lines—that scales with growth.
Quarterly Company Stage: Pre-Revenue
A dev team consists of dedicated professionals who can develop, test, and deploy a Story, Feature, or component. The team typically includes software developers and testers, engineers, and other dedicated specialists required to complete a vertical slice of functionality.
The goal: Create a scalable, clear and accountable development organization that can hit cost and time targets and communicate clearly to the rest of the organization.
How can Golden Section Assist?
A development team is typically comprised of the following roles: Product Manager, Business Analyst (BA), Technical Team Lead (TTL), UX/UI Engineer, Business Logics Engineer, Web Services and Microservices Engineer, Database Engineer, Quality Assurance Engineer (QA), and Software Architect.
Product Manager: A Product Manager is responsible for guiding the success of a product and leading the cross-functional team that is responsible for improving it. It is an important organizational role --- especially in technology companies --- that sets the strategy, roadmap, and feature definition for a product or product line.
Generally, a Product Manager's responsibilities include:
Business Analyst: A BA is someone who analyzes user workflow, translates user needs into software user stories, and makes user stories ready for development. A BA's output is the engineer's' input. High-quality BA output is a prerequisite for efficient and effective development.
Generally a BA's responsibilities include:
A BA's job is to make sure you build the right thing, QA's job is to make sure you build the thing right!
Quality Assurance Engineer: A QA is someone who tests all aspects of product quality, including functionality, usability, performance and security. In DevOps, a QA is generally involved in the entire project development lifecycle so he can guide the product quality.
Generally, a QA's responsibilities include:
Technical Team Lead: A TTL is someone who manages the engineers to accomplish the product vision as outlined by the Product Manager to the specifications outlined in the user stories by the BA.
Generally, a TTL's responsibilities include:
UX/UI Engineer, Business Logics Engineer, Web Services and Microservices Engineer, and Database Engineer: The engineers on a development team will vary with the specifications of the product required. But they should always work for a technical team lead and be responsible to build what the BA has specified. This tight process ensures that the output can be verified by the QA and the product creation process smoothed out over time. Errors ought to be attributed to either: 1) faulty requirements that didn't meet customer objectives, 2) miscommunication from customer to BA, 3) miscommunication from BA to engineers on user story (i.e. bad user story), or 4) engineer not accomplishing user story, or 5) QA missing a non- conforming user story output.
Software Architect: A Software Architect designs and develops the software ecosystem.
Generally, a Software Architect's responsibilities include:
A note on outsourcing: Software outsourcing is an arrangement made by a business to hire a third party software contractor to do the software related work that could have been done in-house. But, developing a complete software application in-house demands both money as well as time. Once you start your outsourced software project with your provider, the last thing you want is for the outsourcing partnership to deteriorate into an order-taking relationship with developers who only do what they're told. When processes backslide, innovation is back-burned and continuous improvement is forgotten, you've officially arrived at low-performance outsourcing.
High-performance outsourcing requires consistent attention, assessment, and enhancement to remain optimized. Golden Section recommends using a partner like Golden Section to help navigate an engagement and find the right team for your company. Golden Section provides periodic engagement review with you and your development partner to manage expectations, ensure that milestones are achieved as scheduled and that your software is stable and scalable throughout the life of your software engagement. Potential issues should be identified and addressed before they become real problems that put your software at risk.
Different organizational structures:
This structure is meaningful when the product owner is technical and the product is technical by nature. It preserves the function of the engineering roles to execute what the product owner specifies and ensures accountability of what to build and whether it achieves goals within the product owner's purview. The weaknesses are that the TTL and product owner will need an extremely good working relationship to avoid downstream negative effects.
{width="6.531486220472441in" height="1.578124453193351in"}
This structure works for products that require rapid and meaningful customer engagement in the UI/UX of the product. It allows for better and more meaningful engineering tasks which will likely include UI with the user story. The QA is shown as its own vertical but could easily be within the TTL's organization for smaller teams. The weakness here is speed of communicating to the engineering group. This structure, despite providing flexibility to customers, needs to be monitored closely to ensure customer approvals occur quick enough to feed the engineering organization with input for productive work.
This structure works well for products that are relatively simple in specification. Product owners are required to submit vision to the TTL and work with the BA directly. However, the BA reports to the TTL. This matrix allows the entire engineering function to work under the guidance of the TTL and for the TTL to be responsible to execute the vision the product owner specifies. This can breakdown on complex products where the product owner's vision isn't clearly specified enough, leading to incorrect outputs from the TTL's process.
Note on organizational structure: product organizational structures can accommodate a lot of complexities. There isn't one right answer for a product or team, but it is worth considering the roles, inputs, and accountability structure to ensure that there are clear lines.
Design an engineering organization structure—defining roles (CTO, engineers, devops), team organization, and reporting lines—that scales with growth.
A dev team consists of dedicated professionals who can develop, test, and deploy a Story, Feature, or component. The team typically includes software developers and testers, engineers, and other dedicated specialists required to complete a vertical slice of functionality.
Technical Team Lead: A TTL is someone who manages the engineers to accomplish the product vision as outlined by the Product Manager to the specifications outlined in the user stories by the BA.
Quality Assurance Engineer: A QA is someone who tests all aspects of product quality, including functionality, usability, performance and security. In DevOps, a QA is generally involved in the entire project development lifecycle so he can guide the product quality.
This structure is meaningful when the product owner is technical and the product is technical by nature. It preserves the function of the engineering roles to execute what the product owner specifies and ensures accountability of what to build and whether it achieves goals within the product owner's purview. The weaknesses are that the TTL and product owner will need an extremely good working relationship to avoid downstream negative effects.