Way of Working
Principles of quality software
The process relies on five teams to guide the project through different phases: Growth, Product, Delivery, Support and Customer. Each team will be involved during various phases depending on a project’s requirements.
While we recommend each role is carried out by a single person, the reality is that may not always be possible. Use your best judgement when assigning roles and responsibilities, taking into consideration a person’s expertise and capacity.
The Growth team is a part of all phases of the process. The team is made up of two roles, the Account Manager and the Customer Success Consultant. An Account Manager is an internal role that is the key intermediary between the internal teams and any relevant external stakeholders. Think of them as your customer advocate on the inside. The Customer Success Consultant is largely involved during the latter phases of Scope, Development and Support. Their key responsibility is ensuring the application is meeting the business objectives by consistently measuring an application’s performance against key metrics.
The Product team is highly involved in the Brief, Scoping and Development phases. Their mission is to identify the problems a customer is facing, find a creative solution to solve them and ensure future iterations continue to deliver value based on data-driven feedback loops. Typically, a Scoping team will feature a Product Designer and Software Developer to ensure projects are designed so that they deliver value and are feasible from a technical perspective.
The Delivery team are core to the Development phase and are responsible for delivering high-quality software. Teams should be structured with a Squad lead and a group of 2-9 developers for any particular build. Squad Leads are responsible for the facilitation of the Development process and ensuring developers are able to build software without external distractions. Developers write the code, tests and perform any quality assurance required to build and release an iteration of work. Depending on a project’s needs, squad leads have the ability to monitor and manage multiple Delivery teams at one time working on entirely different projects.
The Support team are a group of software developers which primarily handle the support and maintenance of a project after it has been released. Along with regular maintenance, a support team can also be used to make gradual improvements to an application. Allowing a Product Owner to quickly respond to feedback from users or product metrics to enhance their application.
The Customer team are generally an external team assisting all other teams to design and build a successful product that meets the goals and success criteria of a project. The team is typically comprised of a Product Owner, and all other external stakeholders impacted by the project. The Product Owner is a single person who deeply understands the domain, relevant customers and is the decision maker. It is the responsibility of the Product Owner to ensure relevant external stakeholders are either present for, or informed of, key decisions made during the applications development.
Internal delivery teams will liaise day-to-day with the Product Owner during development. Within this document, “customer” and “product owner” are both used. Customer is used when discussing estimations that will affect budgets or when referring to all stakeholders that are engaging in development. Product Owner will be used when discussing the development and direction of the application, and the single point of contact for key decision making.