If you want to progress and grow in your career, you have to confront new challenges. When I started as a developer, the challenges were straightforward; write code at the direction of my technical lead. The scope of my decision making power was small. I could choose how to implement an algorithm, but the larger decisions were out of my hands.
As I grew, I wanted to make more of a difference in the bigger picture, but still at the technical level. I moved up to the role of technical lead. The biggest challenge was no longer the technical, it started to be people. What did the customer want? Not what did they say, but what did they need. Learning that people are not computers was hard. I couldn’t assume that my audience would understand what I understood. I had to learn people. And people are messy, illogical, emotional, greedy, and unpredictable, the antithesis of computers. It took time, but I got good at it.
This brings me to today. As a manager of technical staff, I mostly deal with people. While understanding the technology is important, understanding the problem is more important, and most important is knowing who to apply to the problems to achieve the best results. This has its easy side when you are acting in the positive direction; applying the right person to the right task. The much harder part is when you make a mistake and have the wrong person in a role. You have to be willing to make a switch. I may know it is the right thing to do, but it is hard. Seeing what is best overall may not be percieved to be best by all the individuals involved.
These challenges have forced me to grow in my job and as a person. I do hope I am making the right choices. I’ve had great teachers so I feel confident. I think if I ever stop worrying it is time to quit.
So much for my musings at 38,000 feet.