The Importance of Personal Growth for a Development Team

Books

Growth is all that matter these days, whether it’s about the number of users or the size of your team. Indeed, new hires usually bring fresh perspective, good energy, and solid momentum. On the other hand, people seem to overlook the growth of the existing team members. If we simplify the ability of a team to the average of those of individual members, increasing the “ability stats” among existing members is also a vital way to improve your team, besides adding new members of higher stats.

Importance of Growth as Developers

For developers, finishing the current project in a timely and quality manner is essential. Over time, however, we can fall trap to the day-to-day business logic programming. Let’s be honest, that’s what majority of the work is about in many tech startups nowadays: not writing fancy algorithms, not tackling complex systems, but repetitive yet necessary CURD operations. Make no mistake, lots of considerations can go into constructing business logic systems, but we don’t know what we don’t know: we might be practicing the same principles we know month over month without thinking twice about whether there is a better way.

From the company’s standpoint, it is best that the developers feel a sense of growth in themselves, since it’s part of every good developer’s self-actualization. Nothing kills the passion of talented developers more than a sense of stagnant growth, and that’s why they tend to seek challenging environments to work in. Besides the direct, work-related challenges, what can the company offer to keep the developers engaged and to continue personal growth?

A Simple Idea

Recognizing such significance of growth, we within the Epharmix development team started to implement the idea of a daily study session a month ago. The general idea is simple: we take some small amount of time from work and learn about topics that people have had interests in, but might not otherwise been able to dedicate time to. Topics are usually development related but individualized. After some experiments, we settled down on the first hour of the day for conducting it, because it’s a relatively unproductive time compared to the rest of the day (people are still settling in). To ensure the success of such study session, however, we have some rules to stick to:

Set Specific Goals of Learning

After picking topics, we will figure out the scope and objectives of the learning. Usually each topic covers 2-3 weeks worth of content, and specific goals are set to track the progress of learning. For example, one developer in the team decided to dive into linux management concepts, and he identified several key results, including process initialization and management, device mapping and the file system, and so on. At the end of the learning span, we check against the goals and key results and use them to inform the learning of next topic.

Setting goals is essential to the study session’s success: we are not trying to create a morning book club. Detailed and specific goals guide us through the process and ensure that we actually achieve what we want for the time we invest.

Teach What You Learned

One important aspect of the study session is teaching. At the end of each session, each member summarizes that key points he/she has learned that day and educate the other members about it, which usually takes 3-5 minutes max. It carries a simple checker: if you can successfully teach a piece of knowledge to someone else, you probably have a solid understanding of said knowledge. On the other hand, it helps to keep us on track, so we don’t slack through the session and simply proclaim that “I read this whole chapter and it was great.”

Pick Coherent Topics

The nice thing about being a software developer is that there are always so many cool and exciting things to learn about. On the other hand, we might place our interests in many different areas and jump around. Though it’s not a rule of the study session, I personally find that breaking down a big topic into several bite-size topics to learn about is better than picking many different topics, since a series of coherent topics can work to reinforce the knowledge over time.

Code

After a mere one month of study session, we are seeing good results. For the past month, we have covered topics ranging from functional programming to distributed system design, and everyone can start off the day knowing that growth is indeed active. Ultimately, learning about all these topics will let us start to understand what we don’t know and in turn make the team stronger than ever.