Developers gravitate towards what they know and like, what's comfortable and feels good. This can be problematic in a team environment. Looking back at my career, I've made more than a few mistakes in this regard.
Consider that framework you enjoy now: is adding that extra dependency enabling anybody?
That design pattern you like: does it help to pile that on top of legacy code?
How about that wretched component you can’t bear to read: does it help to avoid it and cake hacks on top?
With questions like this in mind, I'd like to suggest three ways to be more effective in a team. This is for web developers working in a team. I'll draw from past experience and lessons learned along the way.
The Importance of Attitude
Your disposition towards certain tools says how you value the team’s work. This manifests itself in the way you approach code problems.
In previous roles, I've caught myself doing lone coding while undermining another’s work. It's this kind of attitude that wrecks your success within a team.
To begin this article, I'll explore one of my favorite characters from the Star Wars universe --- as I believe he has tidbits of wisdom to offer in this regard.
The Person of Kenobi
Obi-Wan is my favorite character in the Star Wars universe. As a general during the Clone Wars, he's a member of the Jedi Council and a threat to the Sith. Obi-Wan is a paragon of the light for several reasons:
- he hates flying, yet is one of the best pilots in the Republic fleet
- he hates blasters, yet is a sharpshooter
- he hates the Sith, yet becomes Darth Vader's best teacher.
I feel this hate vs mastery relationship is telling in our careers as web engineers. Teamwork is seldom found in what you think you are good at and feel good about. Stepping outside your comfort zone is the attitude that will challenge you and enable you to grow.
Where Ideas Come From
So, the first point I'd like to make starts with a question: Have you ever experienced a visceral reaction to a code solution? That pit in the stomach that says it sucks, but you don’t know why? The kind that says something is wrong with this, but you can’t quite put a finger on it?
In a team environment, you don’t always have the best idea. It's important to discern whether i's your brain talking or your ego.
Just because it wasn’t your idea, it doesn’t mean it's inferior. One suggestion is to run a quick examination and figure out where that gut reaction comes from. It may lead to opening up new ways of solving a problem. By being open and asking the right questions, you may yet learn something new. It's a real privilege to stand on the shoulders of giants and take solutions even further.
Granted, it may still be the case that there's a better way. You could be dealing with someone that doesn’t have the time or doesn't care. If that's the case, it might be a good time to look for another team --- especially if that someone is influential within the organization, such as a lead or manager. These organizations attract the wrong crowd anyway, and have issues growing and retaining talent. As this industry matures, I find that these cases are few and far between.
In an empty canvas, there are infinite ways to solve a problem. The beauty of building web solutions is that you get a real shot at this. The open web is a platform where any kind of radical idea can live --- as long as you're sending standard hypertext messages from a server. So it's fitting to approach this within a team setting.
The tooling and decisions the team makes often add value to the team. The key is to embrace those ideas and contribute by taking them to the next level.
Continue reading %3 Ways to Work More Effectively in a Web Development Team%
by Camilo Reyes via SitePoint