It is hard to avoid stagnation. It requires pushing yourself and the people around you out of your comfort zone. As you get better at what you do it actually becomes even harder – you know the “right” way to do things and become even more set in your ways. So how do we keep growing ?
The Comfort Zone
When we start learning something new we don’t have much of a comfort zone. I’ve been teaching my son to play basketball and I’ve been realizing that simple things like not pushing your knees together when you jump are not yet simple to him. It’s a good reminder not to take things that seem obvious to me for granted. I have a very different comfort zone in basketball than he does, just as Andre Drummond has a comfort zone that dwarfs my own. But the thing all have in common is that in order to get better we have to push past what we know and feel we do well to work on the things that are difficult and uncomfortable.
At our company this can vary from working on writing better, more efficient database queries to learning new programming languages, to changing how we structure our code repository. Each change can feel hard and often triggers an emotional desire to push back to stay in the current comfort zone. There is a healthy amount of questioning to do before changing to something new or different to make sure you don’t change for change’s sake or make things worse instead of better. However, it’s important to push beyond the comfort zone in order to improve and make sure that fear or discomfort don’t hold us back.
We’ve found that it’s sometimes easier to have someone else around that can push you when you don’t really want to change. Brad and I are able to do this well and have added benefit of being brothers so we can pointedly call the other out when needed. Despite being brothers we’re actually different in many ways and our strengths and weaknesses tend to balance each other well. Surround yourself with others who have complementary personalities and skills to help push each other out of your comfort zones.
Intentional Structured Learning
Once you leave school you lose a lot of the clear learning paths that guided you for so many years. You no longer have a standardized curriculum to follow. We’re working on improving that at IWD by setting up clear standards for professional skills for everyone here and then providing the learning materials and guidance to develop those skills. Sometimes this is in the form of books, websites, or technical documents to read. Sometimes it is us sitting down as a group to discuss how something should be done.
The goal is to take more of the guess work out of ongoing professional development so that everyone on the team knows what skills they will need to do their job well and ensure that everyone continues to get better at what they do. We’d like to avoid being the guys using the dead programming language that everyone cracks jokes about because we were to afraid to learn something new or better.
One of the hardest parts about self improvement is letting go. We can build up an identity around what we do and how we do things. We internalize our skills or methods as a part of who we are. We say things like “I’m the server guy”, “I’m the finance guy”, etc. and we become emotionally invested in those skills and ways of working. To an extent this is a normal part of building a healthy pride in your work and the skills you’ve developed. However, as you get better at those things it can easily become an obstacle to difficult transitions to new, better skills and methods.
We are currently moving from Subversion to Git for our source code repositories and reworking our branching models to support a more efficient, flexible development process and deployment model. However, that transition resulted in a number of heated discussions about what to change, how to change it, and why. Part of that was fueled by fear of struggling with a new way of working when the current one was comfortable and working okay. But we pushed each other on many points and found our way to a better way of working that will help our company be better this coming year than we were last year. It’s a positive change, but not easy. We had to choose to let go of the emotions and inertia holding us back.
We also started working with Meteor and MongoDB last year. After many years of developing primarily in ColdFusion and MySQL this was a jarring change. We had to let go of deeply ingrained patterns and ideas for structuring code and databases in order to embrace the nature of Meteor and MongoDB. Our well established “right way” in Cf and MySQL is not the “right way” in Meteor and MondoDB. It’s just different. But different can be uncomfortable and it can make you suddenly feel unsure where before you felt like an expert. That’s disconcerting and off putting. We had to step back and stop saying “but what about …” and start saying “look at this!” to get past the reticence to change and focus on the new, exciting possibilities.