In a recent Stack Exchange post titled “Is there any way to get faster at solving bugs? I’ve just had a warning from my boss”, a guy who’s been a programmer for 10 years shared his concern about being labelled “slow” by his boss and colleagues. Perhaps because I have found myself in similar circumstances, I was able to compose an answer that the poster thought was helpful. Here was my advice:
Many answers have questioned your boss’ methods/tactics/metrics/etc. But that is beside the point. Maybe you ARE slow. Every room of developpers has to have ONE that’s slower than the rest, right? (That’s just straight set-theory.) So let’s assume that’s you. The answer is, WHY are you slow? (Clearly that is the question you have to answer before you can solve your stated question of how to get faster.)
There could be all sorts of reasons, but here are some possible explanations to consider:
- You are less intelligent than they are. It’s possible, right? (Studies have shown that we ALL are less-popular, less-interesting, and (it would follow) less intelligent than our friends.) So maybe you are just slow-brained. Then again, in your case I think this is unlikely. A quick glance of your StackOverflow profile shows that you have a history of asking intelligent questions on a wide range of topics. So you’re obviously a thinker and probably a good one at that.
- You’re spread too thin. That same SO profile of yours shows that your questions cover a very wide gamut of technologies over these past 2 years (graphics, web, python, c++, c, linux, embedded, threads, sockets etc). Personally, I know that when I have been put in the situation of having (or wanting) to delve into a multitude of different streams, I find myself swimming up-current really fast (or, rather, really slow). Perhaps what you really need here is FOCUS. And maybe a healthy dose of prioritization. Is there anyway you can relegate the less-important pots to the back burner and turn up the heat on the main dish?
- You’re not having fun. When the fire dies down, the steam engine is destined to decelerate. You admitted in your post that your morale has taken a severe hit lately. Unfortunately you’ve been swallowed into the sucking vortex of self-reinforcing negative harmonics — a force that can destroy bridges. It’s an all-too-familiar spiral: difficult task -> stress -> missed deadline -> more stress -> poor coping mechanism -> more stress -> procrastination -> more missed deadlines -> criticism/gossip (real or imagined) -> yet more stress. You get the picture. This rarely leads anywhere useful. Take a lesson from my days in white-water rafting: When you get sucked under-water by a circulating current on the back-side of a class-4 rapid, your life-jacket will NOT buoy you back to the surface. The best strategy (though non-intuitive) is to find the bottom of the river, and walk out of the riptide. So my advice to you is: find some ground, dude, (friends, church, healthy new habits, etc) and make use of it to ambulate yourself out of the whirlpool.
- You’re not in your zone. Michael Jordan made a pretty lame baseball player. (OK, he was still better than me, but definitely a minor-leaguer.) Maybe “multithreading embedded linux” just isn’t your gig. But Software Development is an exceedingly wide field (as you well know; cf #2 above). Is your company broad enough that your can find another niche? In my last job I was hired as an embedded SW dev. (I had no experience in that realm, but I told them I was a “quick learner.”) I quickly sank like a stone. But I kept working hard and kept looking for problems that I did know how to solve for them. As it turned out, I was gradually able to migrate into new responsibilities at which I could shine, and for which I eventually recieved considerable commendation. So maybe you need to re-brand yourself.
The point is: if you’re slow, there’s a reason. But, hey — you’re a software engineer, dude! Debug yourself!
I graduated from Washington State University in Computer Science (undergrad + masters). I've spent over 10 years in software development for a National Laboratory, a startup engineering company, and a nuclear processing plant. This has provided me with a diverse set of experiences and skills. I have worked extensively with C++ (w/ MFC, STL, & Boost), C#, Python, and Qt. I'm also comfortable with VB.Net, and HTML/XML, as well as tools like Visual Studio, JIRA, and Subversion. I have a strong background in mathematics & graphics and have delved into graph & network theory, information visualization, data analytics, SCADA/HMIs, and artificial intelligence.
Also, I'm not quite as old as I look.