As developers we constantly strive to solve problems of the masses. We also constantly look for new methodologies, languages and possibly organizations to help us further our ability to solve problems.

I feel as if I've always been one of the top members on my team. I also feel that I look for ways to improve my work in ways others often do not care to. I'm starting to feel a little burnout from ~6 years of supporting technology. I blame the fact that I do work so hard and hold myself to high expectations.

Some of the greatest devs on the planet do not even write code for a living any longer. Often, its burnout. Some have said they grow tired of "the game", but I wonder if the problem is a bit simpler. One of "carrying the weight of the world on our shoulders".

If you feel you are a strong developer and also feel that this is not a problem for you, please enlighten me with your approach. How do you stay up to date with tech, help others and solve problems quickly/accurately without getting all wound up?

  • 4
    Learn perspective. Though that is easier said than done unfortunately. – JB King Apr 5 '11 at 19:37
  • @JB King - got any links/details/books on perspective? – P.Brian.Mackey Apr 5 '11 at 19:38
  • 2
    +1 to @JB King. Keep your perspective. Feel like you have the weight of the world on your shoulders as a programmer? Imagine being a physician or a nurse in a remote region of a poor country: trying to save people with limited materials while feeding and housing your own family. – Charles E. Grant Apr 5 '11 at 21:01

If you are the strongest developer in your company/team, you might want to go for a "more major league". Good developers often "bubble up" to where they can be average. If you "carry the world" because your peers are not up to par, there may be no choice but to seek better peers.

I also think you get a burnout in every job. I'm sure that there are a lot of folks who "no longer code" who miss it quite a lot.

I think that if you're a really good developer, you can find a position that will have the right balance of coding, architecture, and leadership.

I know that here at Google, once you become an experienced developer, you can choose between a management and a technical track. Is it also very common to completely switch domains (not just projects) every couple of years. From what I know, the former is common in other companies (Intel, MS, IBM), but switching domains might not be as common.

| improve this answer | |
  • +1 - I was writing my reply when yours came up. Bubble up is exactly what I was going for, and you're 100% right. It's more about the team and how you fit. Being surrounded with smart folks like those at Google adds to that! :) – Mat Nadrofsky Apr 5 '11 at 19:37
  • +1 Uri. Great answer and yes I do believe its been that peers have not always been up to par. I try to be cautious regarding the weight of knowledge of just "new tech" to judge an experienced/Sr. Dev. At the same time, if its a .NET shop and they don't know .NET too well then thats not a good thing at all. I would love to be the "weak guy in the band", like I would be at Google. But finding a Google like place in Dallas is not easy. – P.Brian.Mackey Apr 5 '11 at 19:38
  • 1
    Sounds similar to the Peter Principle. – Michael Todd Apr 5 '11 at 19:47
  • It doesn't have to be a Google sized company - I've met great programmers in small companies and even in non-software companies. People "bubble up" in every market. For example, I work in Pittsburgh, and many of my fellow workers had worked for local companies. Dallas is probably smaller, though I guess that much tech goes to Austin. – Uri Apr 6 '11 at 4:01

The more pressure you put yourself under to do a good job, the better job you do. The better you do, the more work people give you.

Its a cycle that unless you step in and start saying "no" to a few things can lead to burnout fast.

| improve this answer | |

Here's my spin:

It's the effort and continual strive to self improve that you don't always see in everyone else around you.

It's the outlook that what you've just built can always be better, could always be improved.

It's humility in that even though a solution is elegant it could always be simplified.

To be honest, these are the qualities that make someone great, not just in programming, but in just about any career when viewed through a different lense.

It's one of the many reasons truly fantastic people start with a fantastic attitude and outlook first and foremost. They tend to rise above the norm and bubble up to the top of a team if they're not surrounded by like minded people.

Others, may or may not come with them. In the end, depending on the team surrounding you, certainly you can feel as if you're carrying the weight of more than one person on your shoulders because it's always easier for a team member who isn't as motivated as you are to simply coast alongside.

I've seen this at my current employer time and again. Now, I'm no longer a developer and instead a development manager. A huge part of what I do as a facilitator for my team is to help address situations like this one, to try and raise the bar unilaterally for the entire group. I can tell you, it's a massive challenge at times and a lot of it depends on the team you've got around you. I'm lucky, I've got a fantastic team and that makes my job a whole lot easier as a result.

So I guess what I'm trying to say is, how you feel might be more indicative of who you work with, rather than what you're actually doing. If you're feeling burnt out, maybe it's time for a career change and move to a small group of like-minded and very motivated smart people.

You'd be surprised at what a change in scenery can do!

| improve this answer | |
  • Carrying the technical weight of a team on one's shoulders, more often than not, usually leads to one's management doing everything in their power to keep one technical. Managers are easier to find than strong technical professionals who can be counted on to complete tough assignments. My father always used to say, "Do a good job, but not a great job. Doing great job will ensure that you continue to do that job." – bit-twiddler Apr 6 '11 at 0:29

Just to elaborate a bit by what I mean about perspective as I suspect what I thought was a somewhat snarky remark probably didn't quite go over like I had hoped. ;)

Mindfulness and Cognitive Behavior Therapy would be a couple of examples of subjects you could explore and see if these help with how you see the world, a book suggestion here being Mind Over Mood. Emotional Intelligence would be another idea in this arena in terms of self-awareness and self-management in particular though other areas are also useful. Getting Results would be an on-line book I'd recommend to help with more specific ideas. Of course there are various anxiety and depression strategies that may also come to mind here that aren't necessarily specific to programmers but I'd suspect some programmers can have this issues in their lives. Another technique is what I like to call the 4 "Re"s of Recognize, Reframe, Respond and Reflect. Recognize the problem. Reframe the problem to see this from other angles and points of view. Respond to the situation as best you can. Reflect on what was done, what worked and what didn't. Plan, Do, Check, and Act is a similar set of 4 steps in possibly a slightly different order though there is still the idea of looking at things, doing something and seeing how well did the results measure up to what was expected. Continual Service Improvement would be an ITIL component that may be of some help here should you want something more technical and not quite so touchy-feely.

While sometimes I may enjoy feeling like there is a great deal of pressure on me and it may help me reach some goals, there are other times where that same pressure can have somewhat disastrous consequences. Finding the right balance of what is good motivation for me to keep going and doing a good job versus what is too much for me to handle isn't an easy lesson to learn.

| improve this answer | |

For me this is what makes the job interesting and gets me up in the morning. I know that today I will likely have the opportunity to solve a problem for more than just me ( yes I am an optimist, with a short memory ).

I can only imagine that you are the same ( I can't see you doing it out of duty for the last 5 years ). My only guess is that you have hit a bit of a rut, and now you are in a reflecting mode. Which I believe is quite normal when you hit one of the inflection points on the many year long learning curve cycles.

I can only suggest at this point you change your focus a bit ( until your natural passion returns ) from technical solutions to re-enforcing your careerer learning by actively taking on some mentoring of younger developers.

| improve this answer | |
  • +1 Mentoring would be a nice change of pace. At my place of employment all developers are considered peers. There is no technical lead. This is actually one of the major problems. The old "too many cooks in the kitchen". – P.Brian.Mackey Apr 5 '11 at 20:02
  • 1
    Formal or informal, there are always leaders. Help make everyone else better and you're a leader. – JeffO Apr 5 '11 at 22:05

Not the answer you're looking for? Browse other questions tagged or ask your own question.