On a previous project I was acting as a team lead for a new application. Prior to taking over the team it had been led by someone else and I had been the primary
Java developer for the project, so thus most of the Java code had been written by me. Once I took over as team lead I was essentially overseeing the work of two other individuals who were much less familiar with the codebase or even what it was trying to do. Our requirements were extremely poor and sometimes changed by the day. Because of my heavy involvement early on I continued to do most of the Java development while I let the more experienced developer continue working with the interface we'd been given by another team and the junior developer handled most of the front-end scripting such as HTML, stylesheets, Javascript, and some of the easier dynamic content.
As the project progressed I simply could not do everything myself, so I gave a piece to the junior developer that I thought he could handle. Despite this, he completely bombed his assignment and I ended up rewriting everything he did. I was extremely frustrated by this and became even more convinced that I simply needed to keep most of the back-end coding for myself.
However, later on in the project the same junior developer caught an error in my code. He only caught the error because of his earlier involvement that gained him the familiarity he needed to find the error. It was not a showstopper but his change made a noticable improvement in the application.
One of my weaknesses as a senior developer is that I have a hard time passing anything on to anyone else. Anything that ever crosses my desk becomes easier for me to write myself than explain to someone else. Yet it looks like my next assignment will be even more hands off, with me writing specifications for the team and then reviewing and
unit testing the builds they will be sending back to me.
The lesson learned from before is that unless you give someone the opportunity to fail they will never succeed. Sure they might fall flat on their face, but if they are competent they will learn from it. No one grows without being challenged.
So for my fellow IT veterns please take this lesson to heart. Let some junior developer blow up your application this week and then help them recover from it. The experience might be of great benefit down the road. Even if you're one of those people that plans on being a coder until they die, there is always going to be a point where you have a good learning opportunity for a less experienced member of your team.
The only reason why I gave the guy a chance in the first place is because I remember no one giving me a chance when I got started. My first three years in IT were miserable and enough to make me want to quit the field altogether. I don't ever want someone working for me to feel the same way.