A couple of years ago me and my wife took dance lessons. I thought it was very challenging since I had no idea of how to get my body to move like the instructor showed us, in pace with the music and at the same time leading my partner and protecting her on the dance floor from getting hit by other dancers. After weeks and months of practice I managed to master dance after dance and it just got more and more of a joy. Why? Simple! I had learned to master the steps. Learned how to feel the music. Learned how to plan and create a choreography that was suitable for me and my partner – for our team.
As a software developer I have made many mistakes. I have been in scenarios where I have been to junior for the responsibility given to me. I have produced bugs and misinterpreted specifications. I have produces architectural solutions that didn’t make the cut. For every failure though, I have gone home, sat my self down, trying to evaluate and come up with other ideas. Studying other developers work to see alternative solutions. Everything for evolving my skills. And that’s a good start but still, no matter how smart solutions you produce, they mean nothing if the team isn’t on the same track. It doesn’t matter if you understand how every part works together. What matter is that everyone in the team feels comfortable with the solution and feel that they can be productive. It should also be easy to introduce new members in the team. That’s something I think is foreseen. To much focus is put on creating “hyped solutions” using the latest frameworks and “buzziest” patterns without looking at the maturity of the team. Without thinking about the developers that will administer the software when all consultants and/or initial staffing has left.
Balance. Yes, I know it’s a vague word, but you must try to balance the complexity of the solution seen to the team. That’s one of the most important thing I have learnt and used. Listen, back down and adapt and you will conquer. I know it’s tempting to be “cool”, but sometimes a step in another direction might be better. Keep this in mind and remember to be open minded.