Is a long, technically challenging career in IT possible, or is burn-out inevitable?
Well, I know it is possible and there are tons of people who have done it, but there seem to be equally as many hitting a brick wall. I’m one of those developers who knew I was getting into information technology before I had my drivers license. I’ve heard some people say that lack of IT skills equals job burnout but I respectfully disagree, learning new things is one of my favorite things to do and I spend most of my spare time learning new technologies or ways to improve my productivity and quality. Development has been my career, hobby and bad habit since I was fifteen years old. My hobby is learning Amtel AVR micro-processor programming… sad huh?
Typical Sources of Burn-Out
Here are some of the most common causes of workplace burnout:
• Too many job demands.
• Unclear demands.
• Long hours.
• Lack of recognition.
• Unrealistic employer expectations.
• Lack of guidance.
• Frequently shifting directions (stopping and starting tasks).
• Aiming for perfection.
If you talk to just about any developer today, they are probably working in an environment where every single one of these is a problem. The bottom line is that money is tight and we are expected to do more with less. So I have a hard time accepting these as valid sources of burn-out. I guess the Boredom one is controllable but the others are out of our control. The last one is probably something that can be managed, but developers are perfectionists, were literal, it’s either right or wrong, one or zero.
Is staying on a technical career path destined to fail?
I’ve been in the field for about twenty years starting with Cobol, CICS and MVS JCL, some of you may not even know what they are, they are mainframe technologies. Structured programming, thin client, very regimented when it comes to programming, debugging, testing and deployment. Those were the days of control files and batch programs that would crash in the middle of the night with S0C4’s or S0C7’s caused from errors as simple as data type mismatches. Anyway I digress, the mainframe experience was useful and helped to drive home the importance of diligent testing and error handling.
I’ve always enjoyed being in the trenches doing development. Now that doesn’t mean I didn’t like leadership roles, any time I got the opportunity to work on framework’s or corporate class libraries, I was there. Early in my career I was blessed to be in the right place at the right time and was put on a team to evaluate some of the latest and greatest 4GL’s for client-server development. Sybase’s Powerbuilder won hands down and before I knew it I was developing client-server applications in PowerBuilder and Oracle. The early versions of PowerBuilder didn’t come with any class-libraries and the language supports object oriented programming, even visual inheritance which to this day I am not sure that the Microsoft .Net programming languages support. So I always focused on technical expertise, getting certified, writing base classes and helping other developers. My decision, or lack of interest in general management does make things more difficult as I get older.
It’s easy to second guess right now, should I have taken a management career path even though my heart is in development? Probably so.
Was I spoiled with the unmatched productivity of PowerBuilder?
Some days I wonder if my early experience with PowerBuilder spoiled me as a developer. In the hands of a developer who understands object oriented programming, PowerBuilder is still the best tool for building business applications… client-server applications that is. Supporting full object oriented programming and visual inheritance allowed developers to create powerful class libraries that made creating basic CRUD applications a breeze. Experience developers could focus on the class libraries, or frameworks removing some complexities from the less experienced developers. There is nothing more rewarding than designing good object oriented applications, you can deliver quickly, minimize problems by utilizing proven code, and make applications that are easier to maintain. Now that PowerBuilder is losing “critical mass” as far as new development goes, it’s only a matter of time before Sybase stops supporting and developing it. It doesn’t matter that no tool on the market matches the productivity, and the .Net tools have yet to support full object oriented programming, namely visual inheritance. WaveMaker is the first tool I’ve found that makes the transition to Java programming easy. In the few weeks I’ve experimented with WaveMaker I’ve become significantly more comfortable with Java.
Did I ride the PowerBuilder wave for too long?
This is a tough subject because of my strong loyalty to the tool but the writing was on the wall several years ago, and I chose to take the six figure income rather than move into Java or .Net. But it wasn’t just about money, it was about enjoying my work and I’m just now starting to appreciate Java because I’m forcing myself. But the answer to this question is most likely yes, now that I force myself to learn Java I have found some reasons to like it.
One developer’s humble suggestions to other younger programmers
If I could go back and do things differently I would have done a few important things differently. Keep in mind that my heart is in development and I probably would not have been happy in a purely management role.
1. Enjoyment, Challenge and Teamwork are far more rewarding than money in the long run
Choose a job that makes you happy, and keeps you challenged technically even if it pays a lot less money. Once I got used to the six figure income of PB development I was a prisoner to it. Looking back I should have been taking jobs that pay half as much but offer things that make me happy. This advice probably seems pretty obvious, but be careful of getting caught in the make more money trap. I should have been looking for jobs that give me flexibility, technical challenges and a team environment. Many developers like to work alone but in my experience working in a team provides necessary friendship and enjoyment and most importantly the ability to learn from each other. I like to use the analogy of lighting a camp-fire, have you ever tried lighting one with one log? It will not burn very good on it’s own. I would forget my six figure income for a 50k job that is technically challenging any day of the week now. Money is NOT happiness, if it is for you then I’m happy for you, it used to be for me.
2. Learn to say no if are over-loaded
Most developers get enjoyment helping others. There is nothing more rewarding than seeing your customers benefit from your well designed application. But if you cannot learn to say no when your plate becomes too full then you aren’t doing anyone favors including yourself. Your productivity will eventually decline, and you risk serious health-problems by taking on too much responsibility. This was the hardest thing for me, for one I am an optimist and will estimate a two week job in a week so I get the job. My last contract at a major fortune 500 company lasted eight years, starting with a dozen developers in my department. The economy worsened and before long I was the last contractor left, and I took everything that came my way. Eventually my health suffered, and things turned sour and my wonderful eight year contract ended on a sour note.
3. Take a permanent position
I’ve had so many opportunities to roll permanent over the years, but the salary always seemed to be half what I was making as a contractor. Permanent positions are not always the way to go, but in general the best way to be in a position to learn new things. Money is important, but you really need to take a hard look at the situation, do you really need that much money? What if your health should decline, what will you do? As you get older you may wish you had a place to hang your hat and the older you get the lower the chances (in general) permanent opportunities will present themselves.
4. Stay focused and become an expert in a few key areas rather than trying to learn everything.
Sadly learning new technologies still requires lots of time and effort and it doesn’t look like anyone is close to developing an API to the human brain (e.g. The Matrix – Plug in and learn Jujitsu instantly). If you try to learn everything then it’s easy to be overwhelmed. In my experiences choosing something that interests you and spending a little time each day learning is better than staying up all night learning new technologies because you don’t have the patience. Slow and steady usually wins the race there isn’t a substitute for time and experience.
Well, I hope that some of the things I’ve talked about help someone younger than me. I am always willing to answer any questions and sincerely hope that you have a long and happy career in the Information Technology area. I also would greatly appreciate to hear any of your experiences, or any suggestions you might have.
p.s. I am interested in selling this blog, or any of my sites for that matter. If anyone is wishing to start a technical blog, this is a good way to jump start the process by several months as I’ve already done lots of the dirty work and the blog is really taking off in the amount of traffic. I’m accepting any offers, need to raise cash for my daughters tuition at USF.