If a client has developers from their company involved in an Atomic project, it’s usually for one of three reasons:
- They want an internal employee to gain context about the projects’ development history.
- They’ve decided to switch from a consulting company to in-house development.
- They’re looking to upgrade their development team and want to learn how we do things.
These projects are my favorite because they allow me to exercise our Teach and Learn value mantra with developers outside of Atomic! It’s also satisfying knowing that the project is less susceptible to software rot since it will be maintained by internal developers after we disengage.
To ensure the project’s success after Atomic disengages, we need to build the client developers’ comfort with the project. That means anything from typical development responsibilities (like making changes to code and deploying) to project management responsibilities (like handling sprints and managing a backlog).
Here are a few things that I like to do when collaborating with client developers to ensure the success of a project after Atomic is out of the picture.
1. Create One Big Team
Humans are a tribal species, so an “us vs. them” mentality can easily arise in this situation. Tribalism is not helpful to the success of a project, since it can lead to a lack of trust and communication.
Coming together as one big team accomplishes three things:
- It allows the client to learn better by being more involved in the process.
- It builds a better relationship with the client by having more interaction with each other.
- It allows the client to have context about the decisions we make.
When working with client developers, it’s our goal to gradually shift responsibilities from the consultants to the client. By doing this, we are allowing the client to handle the difficult tasks while we watch for any pitfalls. This could mean allowing the client to manage deployments, approve and merge PRs, or make large architectural decisions.
3. Become Redundant
The end goal of empowering the client developers should be to phase the consultants out. By the end of the project, there should be no responsibilities that only the consultants handle. By becoming redundant, you are reducing the risk of the clients encountering a situation that they cannot handle.
All these tasks require constant effort throughout the project. They may be difficult at the start of a project, but they pay off dividends at the end.