The ContextThe project was an application integrating different parts of the client's environment. A lot of technology was involved and of course, the schedule planned for it was really tight. We were a small team with different levels of experience.
The fallAs a team, we thought that splitting the job was the best option. Every member took a piece of the puzzle and started working on his side.
The juniors got themselves overwhelmed in complex patterns and best practices. They forgot the client's needs and tried to stubbornly use new technologies. The more experienced were pushed in this swirl of queries and technological challenges, lost their landmark, their concentration and the big picture.
The solution we were building was looking like an ugly patchwork that was not even functional. Continuing this way was a guarantee of failure.
The recoveryOf course, I wouldn't be writing this post if we did continue, instead we met and looked at what we could do better. Hopefully, for us, most of what we did was not a loss. If we re-focused, with a bit of a ramp-up and some extra hours put in, everything was still possible.
We did some lunch-and-learn to share the knowledge. We wrote templates to get all on the same base when we were starting new sections. We also produced short documents that explained how to get started with the concepts and technologies present in the project. The goal was to keep it short and simple so it will be readable at a glimpse.
However, all this would have been lost without code-review for everyone. Often code-reviews are perceived negatively. A review is the chance to improve not only "your" code but to standardize variable names, namespace structures, code patterns and to get to know the functions/ tools available.
Another valuable thing was our daily scrum meetings. That way, as soon as one team member had issues the best resources could jump-in to resolve the problems, or share his previous experience on how to solve this kind of complication.
With all these efforts we not only did we deliver a great solution, but we built something better: a team. Not only that people worked with each other, yet they were team-members that worked in synergy and that, is a great accomplishment.
The LessonI discovered something that I already know! A chain is only as strong as its weakest link. It sounds so simple but is it not always like that with the truth? Feel free to share what you did to improve your teamwork in the comment section.