Life comes at you fast in a digital agency. How can developers keep flowing?
We are a digital consultancy with a number of clients. Some are actively under development, some are not. We have far fewer team members than clients. Sometimes clients come back to us after months or years of website/webapp inactivity and want to spin up a new project or refresh.
This means that we need to split time between clients. Sometimes we get only a day to focus on a client. Sometimes we get only a few hours. This can be frustrating for developers, because flow is hard to maintain. How do we combat this?
- Good documentation, kept up to date. We have two types of documentation. High level, flyover documentation (what are the big pieces of this project, kept in Google docs) and specific developer documentatation (more nuts and bolts, kept in a readme.md). Having this kind of documentation means that when you do have to pick up a new project, you can do so quickly. More about documentation.
- Minimizing switching costs. Utilize patterns across different systems. Have the same kind of workflow in terms of how a change progresses from idea to deployment. This is aspirational because it’s hard to keep everything in sync across tens of clients, and when we learn something about a framework or technology, we can’t immediately implement it across all our clients. But we try to standardize on tooling and databases at the least.
- When onboarding someone new, let them focus. When you are starting a new position, that’s sometimes the hardest time to switch between projects, because you are still learning the norms of the company as well as the intricacies of a project. That’s why we limit newly onboarded employees to two projects for the first six weeks of their time at Culture Foundry. It also helps them dig in and accomplish more, because they can gain expertise in specific projects.
- Write good requirements. We break work up into trello cards (more about our workflow) and the ideal card is entirely self contained. This means that when a developer picks it up, they have all the information needed to execute on it without breaking their concentration to ask any questions. (This again is aspirational.)
- Training time. We are big believers in self directed training because it allows autonomy. This non client focused learning has many benefits, among which it allows us to get in the flow for some of the day, even if we’ve been bouncing between clients.
Working in a digital agency is great for getting broad experience across clients, problem domains and technologies. It can be frustrating to switch between clients as needs arise, but these techniques help mitigate some of the issues.