At Atomic, we expect every member of a project team to be a consultant. That means everyone should:
- Understand the big picture and how their work fits in.
- Collaborate with the client to help them make smart decisions.
- Feel personally responsible for helping the client succeed.
Our teams are structured to that end, with four intersecting roles: Delivery Lead, Design Lead, Tech Lead, and Developer.
Team Members & Roles
The Delivery Lead (DL) role combines product management, project management, and client relationship management. Delivery Leads make sure the team is unblocked, and they keep everyone in sync, working toward the same goal. They also act as the client’s proxy for the team when the client isn’t available.
Delivery Leads have a lot of responsibilities, including:
- Client Relationship Management – Make sure the client is well-informed and happy, line up any contract extensions or additional work, etc.
- Project Management – Track and communicate the budget/timeline/project status, manage the backlog of work, keep the team on track to meet milestones, evaluate and help address risks, etc.
- Product Management – Keep the team focused on the product’s high-level goals, bring the client’s perspective to day-to-day meetings, work with the client to answer product development questions, etc.
- Team Leadership – Run meetings, gather feedback, use feedback to help the team work more effectively, etc.
Some of Atomic’s DLs used to work as developers or designers. Others have a background in project management or product development. Jason, one of our Delivery Leads, explains more about the position here: How to Get the Most from your Delivery Lead at Atomic.
The Design Lead makes sure the software is useful and usable. They lead the efforts to:
- Get to know the client’s business, problems, goals, market, etc. during a Project Kickoff, and to frame the problem and outline a solution.
- Interview future users to better understand the problem and help the client revise the solution.
- Create a series of prototypes, starting with simple hand-drawn sketches and growing in complexity. Test each prototype with users and refine the user experience (UX).
- Create the brand and visual design for the application — color, typography, tone of voice, illustrations, etc.
- Design the user interfaces, and provide designs and artifacts to the development team.
Atomic’s designers use Human-Centered Design practices. They work with the developers to make sure the things they design can be built within the budget.
In addition to working as a developer (see below), the Tech Lead is expected to:
- Make sure important technical decisions are made thoughtfully and on time, gather input and feedback from other developers, and communicate decisions to the rest of the team.
- Identify technical risks and make sure the estimates for work in the backlog are accurate.
- Ensure that everyone on the team can share new ideas and technical approaches.
- Help all the developers on the team become comfortable working on any part of the project, help mentor junior developers.
Developers build, test, and ship working software. The code they create is delivered to the client at regular intervals (usually every two weeks). The client owns the code and has full access to it.
The development team works through a product backlog of tasks. This backlog is managed by the Delivery Lead and reviewed/revised at bi-weekly meetings with the client.
That’s what each role does. But who is ultimately responsible and accountable for what? We break it into four dimensions.
|Developer||Tech Lead||Design Lead||Delivery Lead|
Making sure each [feature, approach, etc.] is technically feasible and doesn’t cost too much to build, operate, or maintain
Making sure each [feature, approach, etc.] solves a problem for the users and is easy enough to use that they’ll make the effort
Making sure each [feature, approach, etc.] helps the client achieve their end goal and is a valuable use of their budget
Creating working software and delivering it to the client
Each Atomic team role has different responsibilities, but every person engages in every part of the project. That’s what allows us to see the big picture and make valuable software.
Responsibility matrix terms
The table above is a Responsibility Assignment Matrix. It describes four ways someone can participate:
- Accountable – The person who ultimately answers for the work completed or decision made. Most likely also Responsible or having delegated responsibility.
- Responsible – The person who does the work or makes the decision.
- Consulted – Someone who is engaged in two-way communication seeking their input.
- Informed – Someone who is kept up to date on the progress and outcome of the work, but does not get to provide input.