Team
Our teams are composed of skilled and motivated Designers, Developers, and Product Managers who are capable of being successful on a project. Delivery Leads are there to support the team, including the client.
Everyone is T-shaped, deep in some area of expertise with the ability to collaborate across disciplines.
We are people, not "resources", and avoid calling each other such because we understand we are working with each other as people.
Designers
The designers are responsible for designing the interactions between users and the product. They conduct experiments and do research. They interview users, potential users, and stakeholders. They create user interfaces that not only work great, they are also pleasing to look at.
Designers not only figure out how it should work, they also make it work by writing user interface code using HTML, CSS, JavaScript.
Developers
The developers write the mobile and server code that makes the app function. They aim to make the product error-free. They monitor performance because speed is a feature of every application. They set and meet development standards, keep the Continuous Integration build passing, and review each others' code.
Developers also keep it running. They make architectural decisions and interact with modern-day hosting companies like Heroku, whose employees double as our outsourced operations team.
Product Managers
The product manager collaborates with clients and the designers and developers to define and clarify product vision. They conduct and provide insights from customer and stakeholder interviews, and define customer-centric key performance indicators that then inform and change the product roadmap.
Not every project we do has one of our Product Managers on it. For projects that do have a Product Manager, the Project Manager also fills the Delivery Lead role.
Delivery Management
Our Delivery Leads are what others might call Project Managers, Advisors and Account Managers rolled into one. We use a different term because we want to reinforce the idea that the designers and developers work directly with clients and everyone is responsible for project success.
Delivery Leads are there to support our teams, not to get in between them and the client. Delivery Leads are there to support our clients, by acting as a trusted peer throughout the partnership and collaboration.
Delivery Leads run weekly meetings so the rest of the team can fully contribute to the meeting without having to facilitate it. They keep an eye on the high-level goals of the project. They express enthusiasm when the team is in a groove and help problem-solve when things get off track.
Delivery Leads keep an eye on overall business goals of our clients both within the existing project and outside of the existing project. They highlight opportunities for continued collaboration. When appropriate, they work with the client to either reduce or increase team size to meet the needs of the current project. The Delivery Lead is ideally plugged into the project enough to be able to assess future and ongoing needs. The Delivery Lead collaborates with the Account Manager to finalize these opportunities.
Time spent on a particular project as a Delivery Lead can vary depending on the project needs and team makeup. In general, a Delivery Lead can spend anywhere from 1 hour to 2 days a week on a project.
If the primary salesperson is not also the Delivery Lead, the salesperson should onboard and introduce the Delivery Lead to the client when the sale is in the final stages. There should be a detailed handoff from one to the other so that details are not lost as the team starts the project.
Account Managers
There may also be a separate Account Manager for a client. This may happen if the Account Manager led the initial sale, but is not the Delivery Lead, or if a client has multiple projects with multiple Delivery Leads. In these cases, the Account Manager is responsible for maintaining a lifetime relationship with the client. They understand the client's needs and budgets, and how thoughtbot can meet those needs. They identify opportunities for working with a client, they coordinate scheduling, and manage invoices for the client's projects.
Handling distractions
Delivery Leads take on some tasks that would distract the team from their day-to-day priorities and are not completable by the client. These tasks can vary from team to team with one team feeling something is a distraction and a different team feeling something similar is not. Either may be true depending on the context.
Some of the examples of these tasks include forming an initial backlog, negotiating extensions, rotations, and rate changes, and scheduling dinner around project wrap-up or rotations.
Maintaining a safer space
Delivery Leads create the right environment for a team, and that includes the client, to effectively self organize. That might mean standing up to the client if they constantly push the team or change their mind three times a day. It often means teaching the client how to interact with an agile team. It might mean asking the team tough questions if they are continually shipping bugs, or starting lots of different tasks and finishing none. Most challenging of all it might mean prompting the team to talk about issues like a lack of communication between the team members if that's causing problems. All these actions are collectively called "holding the space", a reference to creating a safer space in which these tough subjects can be talked about without any feeling of blame or aggression, which tend to prevent everyone being able to engage properly.
Retrospectives are one tool that can be used to hold the space, but they tend to be insufficient on difficult projects if they are the only tool being used.
Coaching
Delivery Leads help the team when there is a lack of skill within the team in one area or another. The most common example here is with "consultancy skills." These are the skills like talking about technical details to a client, saying "no" to them when necessary, and helping them to understand why something is impossible or a bad idea. These skills take time to develop and if there is no one on a team with them it can cause problems. The best solution isn't to put someone with these skills between the client and the team but to help the team learn these skills. Either by directly coaching these skills, or arranging for the team to spend time with someone who can coach them.
They might also provide coaching to clients. For example, running a training session for the client on the finer details of working with us, e.g.: what makes a good story, how to bring concerns to the team, walking through complexity vs. value, and how we would advise dealing with it.
Resources for Delivery Management
- Running a Retrospective on The Weekly Iteration
- Getting Real
- Agile Retrospectives