The world of software engineering is vast and constantly changing. Continuous learning is a requirement, and becoming proficient in every aspect of Android development is a goal that all of us have tried to pursue.
However, the complexity of the Android ecosystem is now so large that being on top of everything is rather a difficult task.
As our team gets bigger every year (we are six at the moment), decisions by consensus become a lot more time-consuming because it is increasingly hard to ensure everyone agrees on a specific solution.
Recently, it even became apparent that not all technical discussions are of interest to each engineer in a team. At one point, some of us were merely supporting someone else's solution just so that we could go back to work on what we had to do.
That's when we decided to follow what other teams at Cuvva do, and create working groups in the Android team.
Composed of an owner and an N amount of members, working groups are responsible for managing and driving all work related to a specific area in the whole application development lifecycle.
With that in mind, we created the following groups:
This new "internal" organisation for platform work is still relatively recent, but the results have been very promising:
If you decide to implement a similar solution in your team, pay attention to creating groups that are neither too broad nor too specific in scope. That could lead to an unbalanced set of working groups, with too many members or none at all.
But if, like us, you have a team with a diverse set of interests, you will notice that the groups will mostly be a 1:1 match between an engineer and an area of expertise and an extra member or two that are also interested in contributing to it.
How this structure will work out in the long term is not clear, especially in how engineers will feel motivated to keep working on the same area for a long time. But as we keep growing the android team in the upcoming years, many things are likely to change. Having engineers moving across different working groups each quarter, or even creating sub-working groups to accommodate a larger team, might be just a couple of changes we will have to make.
Whatever solutions we adopt, our goal is clear. We want to keep making our team stronger, happier, more collaborative, and radically better.
Follow us on...