Ask Slashdot: How To Avoid Becoming a Complacent Software Developer?
An anonymous reader writes: Next year will be the start of my 10th year as a software developer. For the last nice years I've worked for a variety of companies, large and small, on projects of varying sizes. During my career, I have noticed that many of the older software developers are burnt out. They would rather do their 9-5, get paid, and go home. They have little, if any, passion left, and I constantly wonder how they became this way. This contradicts my way of thinking; I consider myself to have some level of passion for what I do, and I enjoy going home knowing I made some kind of difference.
Needless to say, I think I am starting to see the effects of complacency. In my current job, I have a development manager who is difficult to deal with on a technical level. He possesses little technical knowledge of basic JavaEE concepts, nor has kept up on any programming in the last 10 years. There is a push from the upper echelon of the business to develop a new, more scalable system, but they don't realize that my manager is the bottleneck. Our team is constantly trying to get him to agree on software industry standards/best practices, but he doesn't get it and often times won't budge. I'm starting to feel the effects of becoming complacent. What is your advice?
Needless to say, I think I am starting to see the effects of complacency. In my current job, I have a development manager who is difficult to deal with on a technical level. He possesses little technical knowledge of basic JavaEE concepts, nor has kept up on any programming in the last 10 years. There is a push from the upper echelon of the business to develop a new, more scalable system, but they don't realize that my manager is the bottleneck. Our team is constantly trying to get him to agree on software industry standards/best practices, but he doesn't get it and often times won't budge. I'm starting to feel the effects of becoming complacent. What is your advice?
Make money some other way, everyone else does. Or build software for your Company.
Design a system or an improvement to a system, argue that it should be used. Defend your ideas. Stop depending on your manager to put your ideas forward. That should solve the problem one way or another. You'll either be up to your eyeballs in responsibility for a project or out on the streets pretty rapidly I should think.
Nullius in verba
... just make sure you have an alibi. Ideally, make it look like an accident - but don't try anything too clever. Otherwise some cop will get a gut feeling or a hunch and the minute he's officially taken off the case you're toast.
It's true I tell you, feller at work's next door neighbour read it in the paper.
>Our team is constantly trying to get him to agree on software industry standards/best practices,
Maybe your team is full of snot-nosed upstarts trying to push the latest fad techniques on him, and he doesn't see things your way.
Maybe not. But I'm only hearing one side of the story.
If your way really is better, maybe it's better to have him replaced.
I find it just as likely that these workers never had passion in the first place. They were knowlegeable of the current trends right out of college because they spent the last four years learning them. But as soon as they left college the learning stopped. It wasn't noticeable for the first 5-10 years, but as the industry shifts it starts to become more obvious.
Everyone I know who was passionate about this industry in college has stayed passonate today (almost 15 years later). Some have switched to the business side and have become passionate there instead, but that internal drive is still there.
-- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
At its core, programming is about solving problems. But solving the same problem over and over is mind-numbing. Seek out interesting/challenging problems to solve and you'll stay engaged and passionate.
az0
To stay on top as a developer, you need to learn new things every single day. As one gets older, that becomes harder - and for many people it eventually becomes more work than its worth. At that point a clock starts ticking. Three years...five years...at some point somebody who doesn't learn something new about software every single day will get out of date. The other thing is something my dad warned me about decades ago - as one gets older, there's a good chance that people problems become more interesting that software problems. If that's the case, then lack of enthusiasm probably equates to boredom - and again, the clock starts ticking.
Use your passion to either:
A) Leave.
B) Or take over.
Well of course there's a third option: stay and have your soul crushed. But who would choose that?
-- Senior Software Engineer, Attorney appearance services, locallawyerapp.com.
"I'm young and enthusiastic, and can't understand how older people aren't as young and enthusiastic as me."
Accept the burnout with open arms. Embrace it. Know it and love it. Take your other 16 hours per day and do things that profit you instead of your task masters.
Cranky 9 to 5ers are what make the software industry go 'round! More seriously, management practice (among other things) are what generally cause the pessimism and cynicism to set in. IF you want to prevent this, the best way is to be your own manager; i.e. start your own business. But of course this comes with other personal costs.
f u cn rd ths, u r prbbly a lsy spllr.
I've got almost 20 years in IT, mostly in various aspects of security. I don't consider myself complacent at all, but at the same time I'd much rather work the 9-5 M-F then put in lots of hours. In my 20's I thought that the more hours you worked, the more it showed the company that you were valuable. Sure I got top ratings but I was only focused on my career. These days I consider it a source of pride that my overtime for last year was less than 10%. I'd rather spend time with my wife, with my friends, doing things that are fun. I stopped working to work and now work to enjoy life. I'm so much happier and the hours I put in our more productive, after about 10 hours pretty much everyone is better off calling it a day.
-- Slashdot, making the Left look conservative since 1997.
Speaking from my personal experience (which is my only qualification to speak at all), keeping a steady stream of new and different jobs does the trick. I've been programming professionally for thirty-five years. I've never had a gig that lasted more than three. Some are "permanent", some contracts, some on-site, some remote. Many of them have great promise at the start ("I could retire with this job"), but something always changes. The project is finished, or cancelled, the company goes broke, or sees a major shift in direction, management changes and has different priorities than before. Some times it just doesn't work out.
But the end result is that I'm in no danger of becoming complacent. There's always new stuff to learn, new projects to pursue. I'm still having fun.
Lemmings are silly; dinosaurs are extinct.
Nuke it from orbit (quit and find a more promising job.) Its the only way to be sure (escape the cubicle before the concrete hardens.)
You obviously write software with a lot of bugs. There's a bug in your second sentence.
I do like to work 9-5. Try to avoid overtime as much as possible. But the time I do work. I will be as productive as possible. Which often means spend as much time on coding / bug fixing / helping others on the way, because at the end of the day that brings money in the bank. And as little possible on non-productive crap like useless meetings, filling spreadsheets no one cares about, etc. etc.
At the end of the day I probably have a bigger impact on the company's bottom line than many others who do 50, 60, or longer work weeks on a regular basis.
Is that complacent? At least I am not burned out and can easily do this for another 10 more years until retirement
I have a very interesting programming job and I work extra hours a lot, but I get paid for them. Your company is not a charity and you should not be donating your time without getting something in return.
Those "burnt out" developers you don't want to become have learnt not to be exploited. Simply continue to do the best job you can in the time you have WITHOUT sacrificing all your personal time and WITHOUT becoming embroiled in some petty power play because there's no reward for working yourself to death.
What's it like to be a sucker who lets his bosses exploit his passion for computing for profit? You see, I'm one of those older programmers who keeps up in order to stay "employable", but has no passion for the work. I only do it because it pays better than cleaning toilets, and I'm good at it.
I write sci-fi for metalheads
I constantly wonder how they became this way.
Someday, you will get a project with physically (or at least, mathematically) impossible requirements. You will, rightly, point this out. You will end up needing to doing it anyway.
This won't happen just once. Over the course of your career, you will literally lose count of the number of such requests.
You therefore have two choices - Stop caring, or have an aneurysm from frustration and rage.
Note, however, that you don't need to lose your love of coding. You just need to learn to accept, with a calm and detached indifference, that your paycheck requires you to write defective-by-design code. If it helps, you can make little games out of it - As one of my personal favorites, I write the code to function correctly and then, as the last step before showing something to the user, I throw it all away and replace the results with the requested garbage.
I 100% agree. It should take all of five minutes to find a new job, and jumping jobs is a great way to get more money.
I think I am starting to see the effects of complacency.
Aren't you confusing complacency with fatigue? Passion with commitment? There is a price to be paid for the adrenalin high.
Go contracting, keep learning, and be philosophical about the things you can't change.
I'm 41, been a software engineer for 15 years, contracting for 10 of those, and I'm currently taking a year off work to do a masters degree in High Performance Computing. IT is a field where there's always something new to do and something new to learn - but to some extent you have to go out and find these things; they aren't going to just come to you.
Managers can be idiots, and co-workers can be infuriating, but you can't change either, so why waste effort and happiness by stressing out about them? Do what you enjoy doing, and do it to the best of your ability, get the good reference, get the next contract, take your pay and go home and live your life with the people you care about.
Chuck Norris: Socialism == a thousand years of darkness.
I have a few thoughts on burnout:
1) Are you sure they ever burning to begin with?
Lots of people didn't start programming because they loved it. Lots of them started because it was a profitable field. They didn't go home and code til 3am in the first place.
2) Make sure you don't confuse burnout with shifting life priorities. I used to go home, grab some Taco Bell, then write code, compete, hack, etc. But now I go home, kiss my wife, eat dinner, and play with my kids. I'd love to code, but I had to cut a lot of that out. Don't think it was an easy realization, as I could write a novel on the topic. But I didn't burnout, I just shifted my priorities. Next step might be taking care of my parents, which will also cut into coding time. :-(
Totally agree.
If you've got 10 years experience, that puts you in your prime. You've got the experience to be valuable, but are still affordable. I assume you're also at a point in your life where you can afford a little financial risk. It's time to use this to get into a job that you will enjoy and has the kind of work culture you want.
A lot of people out of school take the first gig that's willing to hire them. Some by random chance end up loving the job, others learn to accept it but gradually burn out. You sound like the second type. Time for a change.
Only from loss of passion can there be that stale state that you call 'being complacent'. All complacency is, is passion bottled up. If you really do have a passion to do something, then do it for yourself - open a business, or just do it as a hobby (or both?). If that passion is real, then you'll be successful - this is not just some theory. If you really like to do something, then give yourself an unlimited arena by which to act that passion out. If you're just stuck paying the bills at some job (many of us have been there), then look at that job for what it is, a paycheck, leave passion out of it. Then when you get home, do what you love. If people followed this concept, they'd be worth more to their employer, and themselves.
Politics; n. : A religion whereby man is god.
You are a sucker if you are a wage slave and have no significant equity in the company you are working for, and still spend your extra time working for free. Take actual control of your life instead of showing blind passion and loyalty to an institution that doesn't give a fuck about you. The programmers leaving at 5 are smarter than you because unlike you, they know they are slaves.
* Drink heavily and often.
* Shove a raw potato up his tailpipe. (do the car first)
* Begin implementing endless "for->next" loops in random code sections.
* See who can bounce random objects into a wastebasket at the far hall; style counts.
* Wear warpaint made from broken dry erase markers and ambush a co-worker while they are changing the water bottle in the office water dispenser.
Hell, man, you are in the same boat as the rest of us. Get creative.elsewhere and let old fussy pants stew in his own juices.
Give him all the rope he wants...
"Moogs! Would YOU buy that for a quarter?" CMK
You do have passion. Complacency isn't the root of your current malaise, however. You've found yourself in a place that doesn't allow you to find flow/engagement in your work, and/or that isn't passionate about its own mission (probably a departmental more than organizational issue). You may eventually burn out if you stay in this situation. The major source of stress in this model is the dissonance between your passion and their obstructions to progress. Recommendations - 1. Change the way you approach/think about the situation; find new ways to utilize your strengths and exercise your passion that fit better with the pace and goals of your co-workers. 2. Change the situation. Enter/create a role of influence for yourself. Use it to spread your passion to others. Be careful to ensure you're doing the right thing ethically, morally, and economically. 3. Leave for another project/employer that better matches your style, passion, and goals,
I'm 32. I didn't really get a "real job" as a developer until I was 27. I've been coding for fun since I was 13. Now I daydream about doing anything other than writing code.
I don't know how it happened. All I know is that I went from having fun coding for free to hating coding for money. Perhaps the moral of the story is to never get a job doing what you love, because it will turn your love into hate. Or maybe the moral of the story is that Java kinda sucks, but Spring causes suicidal tendencies.
My job consists of figuring out a way to solve problems with Spring MVC. It doesn't matter what the problem is, Spring MVC is the answer. It doesn't matter if you can produce a solution using 5 lines of perl, Spring MVC is the only answer. If this is what development has become, I weep tears of nostalgia for the days of assembly language.
Recently purchased Kerrisk's "The Linux Programming Interface", Bovet's "Understanding the Linux Kernel", and Corbet's "Linux Device Drivers" hoping that delving into the guts of awesomeness will counteract some of the stupid that I've had to endure. Let's hope.
Chuuch. Preach. Tabernacle.
If you feel you are being complacent and it bugs you, then don't be complacent.
Start looking for an engaging job which will expand your skillset.
She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
I had a recent job interview where I bumped into an old coworker from nine years ago. We compared notes. He still has the same job and makes the same amount of money from nine years ago. Since Fortune 500 companies have this unfortunate habit of laying me off every so often, I've worked multiple jobs and make 80% more money. All those new people and company cultures had broaden my horizons -- and fatten my wallet.
More like they realized that the gerbil wheel that is your job shouldn't define you. It's an means to the end, not end to the means.
.
Don't fight it. Look at it as growing in a different direction.
Next year, it'll be 35 years that I've been developing software. I have never been dissatisfied with my job. I have never felt lack of energy or lack of enthusiasm to develop new software. I work for customers, as a freelancer, I work on my own projects. And I change the area I work in every five years or so. I may be the oldest Android programmer in the world, but keeping up with state of the art technology keeps me alive. I don't feel old. Nor complacent.
So what's your point?
no, I don't have a sig
In the old days, developers who got burned out often became project managers. There's a lot fewer project managers and other forms of middle management these days. I know people who have become dedicated scrum masters, but they often don't get paid well.
The true trick to keep this from happening is for you to remain a geek, don't get a wife kids or a life. Just wrap your world around computers, processors and the love of programming. You will always find your career rewarding! BWAAAHAAAHAAA!
-- Many men would appreciate a woman's mind more if they could fondle it
People develop lives and other interests. If you'd like to dedicate yourself to one thing, great. But you have an odd idea about the nature of liking what you do. Liking what you do is very different from wanting to do it all the time. The world is an interesting place with a lot of different things in it. Don't assume people that have other interests (Family, hobbies, houses, travel, leisure) aren't passionate about what they do, they've just realized that there's more to life than computers.
In fact, a good way to get burned out is to do exactly what I suspect you're doing. Working really long hours, and dedicating lots of your free time to software. Cut it out, and maybe you won't get burned out.
AccountKiller
Here are the things to watch out for when scouting a new company
1. Do they have an extended set of job classifications that do NOT require that you become a manager?
2. Is the HR department adversarial to the development staff?
3. Are development managers allowed to continue with technical skill development?
4. Are Human Resources and paper-pushing provided as a service, or are they your masters?
I have worked for companies that are designed to support the retention and successful use of technical staff
These companies work to either allow people to continue their careers through an extended set of technical positions, or allow you to remain technical as a manager
Some companies wanted to have their management come from the technical team, if they are smart, they provide HR and paper-pushing as a service to those managers to keep them from becoming stale and worthless
Most companies do not do this, they force people into management, then strangle their skill set by forcing them to become jibber-jabbering paper pushers who are more centered on sucking up to some exec to get their budget passed than learning the new set of tools their team should be using
Look out for the warning signs and avoid those companies like a plague
During my career, I have noticed that many of the older software developers are burnt out. They would rather do their 9-5, get paid, and go home.
Maybe they have friends, families, interests and possibly even lives outside of their jobs. Perhaps they are even passionate about things that don't take place within the confines of their day jobs.
If this is a state which you are whole-heartedly trying to avoid and you use phrases like "90 Hours A Week And Loving It" in an entirely serious manner, then just keep doing that for about five to ten more years and you will start to understand exactly how people get burned out.
As said earlier, always learn. Never stop.
..." If you can make the case, support will follow. Avoid technical reasons in that explanation.
Learn to make a business case for best practices. "Best practices will save this company money/time/liability because
MOM: Why should we implement that?
YOU: We can get trainees up to speed quicker, which saves us money. We produce fewer bugs, which saves us money. Instead of wasting time squashing bugs, this lets us implement new features, which we can sell. That makes us money.
> I think I am starting to see the effects of complacency. In my current job, I have a development manager
Why do you think the Peter Principle and Dilbert Principle got coined? :-)
Programmers become 9-to-5'ers because of cynicism and pessimism. Why do your best effort when your project is just cancelled in one year because management doesn't understand "what business solution it provides" ??
Companies constantly fail to learn that it not only important to motivate people, it is extremely important to NOT de-motivate people.
There are 2 really insightful comments from last year which perfectly explain why older programmers become cynical:
http://apple.slashdot.org/stor...
and
Having kids can eat up a lot of your spare time. While I realize this isn't a problem for that many slashdotters, it has been known to happen to the occasional software developer. Suddenly coping with family can look a lot like burnout, especially in the early years.
The utter crap that passes for "software engineering" in the commercial world is enough to make any professional with real integrity disillusioned.
And by "professional" I don't mean someone who merely does the work as requested, but someone who produces solidly engineered systems instead of churning out rubbish to meet a deadline, and someone who rejects requirements that don't make engineering sense, and someone who evaluates software product numerically for test coverage and fault rates and insists on no regressions, and so on. In other words, someone who is a complete pain in the neck to the PHBs and sometimes to his or her workmates. but is working with professional integrity.
If that describes you, you may understand how easy it is to get disillusioned in a workplace that's populated by cowboys who have no clue about how to engineer a product professionally and certainly don't appreciate someone who is trying to keep the company out of the ranks of utter amateurism.
Some people misinterpret that disillusion as burnout, because they both result in a sort of lonely sadness.
I would if I had the points.
Yeah.. Find a company who will pay you small dollars for long hours and leverage your passion for work into profit for the owners. Most excellent.
Got any hobbies? It's not a hobby if you don't average 15 hours per week. The more hobbies you have, the more time you want to spend on the hobbies. It's not that the work passion is gone, it's just that you already do 40 hours a week of that passion.
Really; they probably got married, had kids, and got a life. Or developed some sort of interest outside of work. Or they just got their job and technology worked out to the point they don't have to work 60 hours a week to keep up. In short, they got a life. Assuming they are burnt out may be incorrect. You should also get a life.
putting the 'B' in LGBTQ+
As the dad of two young kids, just finding time to work, spend a reasonable amount of time being there for them, doing the daily chores around the house and (maybe) sleeping is a miracle some days. Older people who work 9-5 and have families want to keep them. Especially if their spouse/partner also works, there's _never_ enough time to do anything. I used to be able to do whatever crazy crunch project (I'm in systems engineering, not development, but it's not that dissimilar.) Now, I'm finding that there really has to be a justification for spending the extra effort. It is a trade off - even if I wanted to, which I don't, I couldn't go work for a startup and pull back to back 90 hour weeks. Being a dad and doing it right is a massive time commitment. Whenever I hear about anyone who is having a kid soon, I frankly tell them that they need to go and do everything they wanted to do in the next few months...because sometimes it seems like there's zero free time. And when you do have downtime, you're so wiped out that you can't do anything other than crash.
That said, as one gets older and more experienced, they're less likely to make the mistakes that require the constant 90 hour weeks. And what you may see as burnout may just be people getting wise to the fact that it's not worth slaving over a job. You owe it to the company to work hard while you're there, I grant you that. But people who have lives outside of work really need that work/life split that everyone keeps trying to get rid of. My strategy for dealing with this is as follows -- I know I have to keep my skills at least somewhat fresh in case I'm unexpectedly unemployed. So I try to add myself to just about anything new at work (and usually succeed.) That covers a lot of the skill building. And yes, I do have to spend a fair amount of time reading and tinkering outside of work, but that's been severely curtailed. I think it'll get better once the kiddies can do more things for themselves, but for now it's a real challenge.
Next year will be the start of my 10th year as a software developer. For the last nice years I've worked for a variety of companies, large and small, on projects of varying sizes. During my career, I have noticed that many of the older software developers are burnt out. They would rather do their 9-5, get paid, and go home.
Family does that. Specially kids. I need to be home early to be with them, read to them, help them eat, clean themselves, let them see me (and feel and understand I actually give a shit). When I was single I would work at any hour. Not anymore. That does not mean, however, that my work is strictly 9-5. I wake up at 5AM to get myself ready, log in, do some work, then get ready (and help my wife get my kids ready). Then I log back to work via VPN from 9 to 10, sometimes going to bed till midnight... with just 5 hours to go sleep to start again.
I easily make 55a week just like that. More if I do work on weekends. But 9-5 is the strict window I use to be in the office.
A lot of 9-5'ers are like that, and in addition to all that, we see the same shit repeating itself again and again, from one employer to the next. So what you call "lack of passion" might actually be work-related pragmatism combined with some physical exhaustion and simply the necessary notgiveashitis gene kicking off to save your brain from dying after witnessing the same inane shit rendering itself at work for the millionth time.
The passion is there, is just that we move it out of work and into other things, like family and career (which is distinct from work.)
They have little, if any, passion left, and I constantly wonder how they became this way.
Life. Life will happen and will change your perspective and priorities. YOU. WILL. SEE.
This contradicts my way of thinking; I consider myself to have some level of passion for what I do, and I enjoy going home knowing I made some kind of difference.
But that is the thing. You are projecting. How do you know that other people are not made some kind of difference? They are likely making a difference *somewhere else*.
Also, as we get older we become more efficient with our time. I can do a lot more know with less time than what I could do when I had 10 years of experience (and certainly much more when I started my career.) We burn a lot of hours thinking it is necessary, we do not know how to prioritize or say no to crazy demands. We freak out, and we go into a professional-related frenzy, willing to burn the midnight oil to compensate for a lot of things.
We have a lot of energy when we start. But energy is not necessarily passion. And not all forms of professional passions are constructive. As we get older, family or not, we learn to pick our battles and seek out the lowest hanging fruits, the 20% that make up the 80%. It is then when we begin to be true engineers, not just berserker hackers.
Needless to say, I think I am starting to see the effects of complacency. In my current job,
Unless you are developing the ultimate shit, or have a wonderful work experience with your managers, or are developing your own business, never, ever, be passionate about your job. Be passionate about your career, but not your job. Your job is the conduct by which you make money using your career. Display work ethics, and be willing to go the extra mile when needed. But don't confuse that with passion. That's just work ethics, which we should all display.
I have a development manager who is difficult to deal with on a technical level. He possesses little technical knowledge of basic JavaEE concepts, nor has kept up on any programming in the la
They're not burned out. They have lives now. Wives. Families. Something to do other than be a slave to the corporation.
I do not fail; I succeed at finding out what does not work.
Umm...80% or more of code running businesses today is not hosted on a webserver.
All the things he mentions, including the web, are a thin veneer of cool on a core of mundane.
Things like your paycheck, 401k, benefits, scheduling, purchasing, sales, repair, shipping, renting, inventory, routing, tracking, etc. etc. etc. are all done on fairly large computers running dull code like COBOL and even FORTRAN. They may have Web interfaces built with all these wizbang thingies, but the real work happens in legacy systems that are solid as a rock because they don't change technologies every three years to something cooler than what they have now.
When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
Working 9-5 does not necessarily mean a developer is a burnout. As other posters indicated, they may have other priorities in their lives. A technical manager to be a good manager needs to have some working knowledge of newer technologies and methodologies. More importantly the manager needs to have the wisdom on when and when not to use it.
Research is what I doing when I don't know what I am doing - Werner von Braun
And this is exactly what you don't want.
First, the managers don't need to know a lot of the technical details beyond an overview, and they need to be able to trust their developers to give them good information, and listen when they give advice. Any company that tries to have their managers both retain top notch technical skills using the latest technologies AND be a competent manager is doing it WRONG.
A bit older, I feared having to work year round, and not get summer vacation.
Or look at all those commercials (e.g. 1, 2) for middle-age people reassuring themselves they'll never get old, never look old or slow down. (Or, heaven forbid, die.)
Personally, yes, I have become less into my job and more into my family and hobbies over time. I think that is common. But don't worry, nobody will force you to follow that pattern if you don't want to!
It is not people "refusing to act their age" that bothers me, if that's genuinely how they feel and what they want to do. Decide each day what you want to do and do it - and this should include goals and plans for accomplishing things in the future. But I am convinced that idle worry about who you will be, or what you will want in the future is just a waste of the present.
My advice?
1. Try to have some perspective. It's not "complacency" when someone wants to spend time with his family instead of working overtime without pay.
2. Recognize that your manager's problem isn't so much complacency as it is an exaggerated opinion of his own technical competency. He thinks he knows and understands more than he actually does, hence his steadfast refusal to consider the possibility that his team's ideas are actually better than his own.
3. Consider the possibility, however remote, that you may be the one with an exaggerated opinion of your own technical competency and that, just maybe, your manager's vision for the project actually has some advantages. You may end up concluding that this possibility is extremely unlikely; if so, that's fine.
4. Since your manager sounds like kind of a jerk starting looking for another job. If your skills and/or credentials are such that finding another job is difficult then start the process of acquiring new skills and/or credentials so you won't have that problem in the future.
If the only obstacle is a bad boss, go to his boss and see if you can get out from under them, perhaps in your own unit, or under someone else. If the company itself fosters the bad environment, it's time to move on.
(If at first you don't succeed, do it different next time!)
"I have noticed that many of the older software developers are burnt out. They would rather do their 9-5, get paid, and go home. They have little, if any, passion left, and I constantly wonder how they became this way."
The reason you are seeing this is that the good creative developers left to start their own companies leaving behind the people like you describe. Fairly classic.
Scour listings for jobs listed by head hunters. Send them his name. Build him up. I've done this a couple times to get rid of bosses and peers that were a pain in the ass. It used to be easier before the job market went to hell, but it might still work.
Especially in the U.S., marriage + mortgage = monotone wage drone existence. Don't step into that if you can possibly help it. Just the choice of building a life around GF/partner, two mature and independent adults, will work wonders for your spirit, physical health, and the energy level you bring to work and after work, every day. Wife = downward spiral for you. Look around if you don't believe me.
When you're in your 20s, you feel like you have time to play with fun stuff like code.
When you're in your late 50s, and the cancer has come and gone, and your parents have died, and getting up and moving is a daily exercise in pain, and your wife has started having strokes and you're both in fear of the next one, and your cat/dog of 20 years is going to die of old age soon and so are you, probably in the next 20-30 years, believe you me, new software falls WAY down the list of important things to think about. Try mortality. Try meaning. Try the poignancy of life.
Code can be fun, sure, but it's not *important* at all.
Please do not read this sig. Thank you.
I have found that asking the following about a potential workplace is a remarkably good predictor of the entire work culture and acceptability for devs:
* What version control tool is used
* What bug tracking system is used
* What technological measures are in place to prevent anyone breaking the build, with no need to back out changes
* What automated testing infrastructure is in place, and are new check-ins automatically sanity-checked immediately
You can really learn a lot from the tools used. Are the tools in place those that devs would choose, or some horrible crap sold to management by a good sales guy? Did projects to make dev life better by automating the programmer workflow get funded, or get blocked? How short-sighted is management when it comes to productivity?
Software dev as an industry is out of the downturn. Demand is way ahead of supply right now, mostly because devs still think there's no point in looking. Well, times have changed, and a dev has a lot of "pricing power" right now. E.g., my team has quite a few open positions, no one with experience seems to be looking, and we're definitely not going to lose anyone qualified we actually manage to find due to being cheap!
Most companies do not do this, they force people into management,
Sign of an engineering field that hasn't matured yet. Most big companies do have engineering promotion paths all the way up to VP-equivalent now, so that's something, but you still don't see as many devs in paygrades equivalent to senior management as you see senior dev managers. They're not really taking that career path as seriously as high-tech "real engineering" jobs yet. But, yeah, at least find a place that has a non-management paygrade above the one you're applying for!
Socialism: a lie told by totalitarians and believed by fools.
I work 9-5 and then go home. When I get there I spend time with my family for a few hours and then work on games in Unity or misc arduino projects or whatever else I'm in to at the moment. Diversity keeps my passion alive so when I'm at work, toiling away with the same code base I've been using for the past 15 years it doesn't feel boring.
I agree with changing jobs.
At a certain point, you have to realize that you are in a no win situation and move on. The only way to affect change in your current organization is to leave. If enough people follow your lead, senior management will realize that your manager is a problem and deal with them. That will be too little, too late in your specific case, but the company will be better in the long run.
If you really are a good programmer, you can go to work anywhere. There is a serious shortage of good programmers in the world. By good programmers I mean people who inherently get programming. I do not mean people who happen to be able to develop apps in a single language.
Once you get burnt out with programming, aspire to be the manager or executive that you always wished that you could work for. Cultivate an environment in which other programmers can thrive and succeed. Find a company that needs good programmers and reap the rewards of being the person, or the team leader who builds the product that generates the revenue.
Advice:
1. Have your job sent to southeast Asia.
2. Go on unemployment so the relatives and neighbors can say "I knew he'd never amount to much".
3. Get a new job on the other side of the country for 60% of your former salary. Make sure you pick a location where the cost of living is double where you live now.
4. Stay at that job for a year or two until the entire department is replaced by off-shore workers in India.
5. Have your Significant Other get really sick. Experience the joy of no income and enormous "out of network" medical bills.
6. Back on unemployment. Get a dozen emails a day from (surprise!) Indian consulting firms for jobs that are completely and totally unrelated to your skill set.
7. Watch as your former employers lose customers, market share and respect, declare the "outsourcing project" a disaster, then turn around and hire inexperienced college interns to do your old job.
8. Try to get your original job back, only to discover they're only hiring people 10 years younger than you. Not that they're discriminating against "older workers"; they're being "cost effective".
That is IMHO a much more realistic view. Conflating management with technical leadership is a sure path to bad things happening. Certainly some people can do both, but for any given project at any given time, everyone should know what their current role is.
To answer the original question, I think you can sum up the cause of a lot of programmer fatigue very easily: they got into programming out of a desire to create things, and they found themselves surrounded by a (bad) organisational culture where they instead spend their work time doing anything but create things.
It's not the need for a degree of administration and management that is the problem. Most programmers understand this, and will happily go along with it when it's helpful for the project as a whole. Nor is it the need to create something that serves the needs of the project, even if that isn't the most fun job to do right now. Again, I think most programmers understand that if you're working as a professional then you're being hired to make something that is useful/valuable for someone else, and as long as what they're making is in that category it can be satisfying.
But most programmers are also acutely sensitive to overheads that are unhelpful and requirements that are unnecessary -- not that they really need to be if they're at the kind of shop where those overheads take up most of their time. Geeks will rapidly lose enthusiasm in the face of uninspiring leadership, lack of project progress, and generally incompetent management, and often I suspect it really is as simple as that.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
What is your advice?
Save as much as you possibly can in your 401k/IRA/retirement account so that you can retire as early as possible.
Obviously, I don't know everything you observed, but 9-5 does not even hint lack of passion.
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
This might not be good advice at all, but why not try and get the development manager's job? That would probably inspire me a ton if I saw a weakness like that and ways to do a better. You've got some good experience under your belt and seem to understand the problem the company is facing. Hopefully, some people here who know more than I do can give you some more specific advice.
What's wrong with complacency? You get really used to it after a while even.
Table-ized A.I.
Eventually the upper management will realize your manager is a fool. Keep good documentation on design decisions. Let the manager destroy himself or herself. Did you ever see the movie office space or TV show office space ?
Kids get all excited about things. When you grow up, have a family and realise the world is made of more than bits dressed-up as glossy pixels, then you'll understand that software is a craft to involve your inner programmer not a ski-slope for the sparkle-headed. Complacency is the wrong word. Look at people. Graduate, by study and research, into management. There are many disappointments to be had there but also many opportunities to use experience to pour oil on the waters of desperation and panic. Grow up.
They would rather do their 9-5, get paid, and go home.
That's not burnout; that's sanity.
(Try saying it in the same tone as "that's no moon ... that's a space station!")
Solving coding problems the fun part. The work part is getting the solution to the customer, ironically few engineers are willing to tackle the work problem, or accept other people's solutions to it. So what you generally end up with is an imposed solution from above that doesn't work because the people who wrote the process haven't got a clue how the engineers are currently keeping it together. Rather than tackling the problem by demonstrating a superior answer, the engineers do their best to pretend the work problem doesn't exist.
BTW: If you're solving the "same [coding?] problem over and over again", you're doing it wrong
And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
Physicists, and other hard math scientists still prefer fortran. It's more efficient at math than anything else. Sometimes old, simple, and purpose built still wins.
There is some movement in the C++ standards to include these fortran features.
I've been programming for over 30 years. Moving to new technologies and industries is a way to keep things fresh and challenging. I've lost track of the times I've submitted support requests and the first response was "No one has ever asked that before", or something like that.
To avoid burnout do exactly this: 9 to 5, plus gym after work. Work hard, but avoid overtime by all means. Stay focused, but don't think about work after 9. Balance is the secret to productive lifestyle. If you feel burnout its better to go to a gym than force yourself to work. Never check emails during weekends or vacation. However 9 to 5 is time when every minute counts. No stupid websites. No distractions. Work hard, but stop at 5 pm as 19-century factory. If you value your time you will organize your work better. You will design your code better. You will focus on results, not play. Dont compromise family, personal, social life for work.
That's the great danger. There are some companies that have a policy of "we always put our brightest graduates onto something other than the position we advertised for the first six months". For the first person, that was no problem, it was a blue sky project, for the second person it became harder because certain constraints were already imposed in terms of logic and memory space. That person escaped to a startup company. By the third person, it had become a nightmare, since nine months of development work had been put in, and the constraints had now been built around and over, so there was no wriggle room. And the tasks were still coming.
It really depends on management style.
In democratic management styles, then what you said is correct. The manager is just a conduit for information.
But in authoritarian management or top down management, which is having an alpha male (or female) with a lot of talent and ego calling the shots and making the big decisions really works well when it works (and fails catastrophically when it fails). In this style of management, professional skills in whatever it is that the team is doing, which means technical skills in development teams, towers above management or interpersonal skills in important towards the success or failure of the team. Someone with good technical skills tends to make good decisions and someone with bad technical skills makes bad decisions. You cannot build success around bad decisions. Beyond that, the only thing really useful is a bit of charisma to keep the team happy and the ability to get most of one's meaning across. Mostly one just has to be 70% understood anyway, since a bit more latitude in interpreting orders is only going to be a good thing in giving workers room to move.
I've found, especially in Asia where a more paternalistic style is favoured, the outcome of a project is especially determined by the technical skills of a manager and little else. Guys who get into little fights, throw temper tantrums and rarely get their meaning across, but make good decisions tend to have better success than good communicators who don't quite understand the problem at hand.
When Argumentum ad Hominem falls short, try Argumentum ad Matrem
Maintenance programming is an example. Large development projects under the "waterfall" method (often) is an example. Custom-building standard systems is another. In such cases you're better off with predictable but competent standardised performance from a team of 9-5 programmers that with mob of empassioned risk-takers.
This "passion" thing is needed when individual performance counts. As in: when the "old" way of doing things no longer suffices (the old machinery has bogged down and needs to be replaced by something new), or when clear efficiency improvements can be realised (this is common engineering practice), or when there is room to experiment (e.g. in Open Source Software), or when your task is to see how far the envelope can be pushed and to come up with something new (e.g. research).
Of course there's a difference between not keeping up with mainstream engineering (as the opening post suggests) and spending your time "innovating" when there are adequate standard methods available.
... and get a new job ...
I took a different route: I got senior enough to not be outsourced.
It means I'm not developing any more, but I don't miss those project crunch periods anyway.
That's a fine attitude if you're either very young, haven't found a good match, or simply have good old fashioned "issues" like commitment-phobia. It doesn't work so well if -- like the vast majority of people out there -- the person grows to dislike the drama of new/failing relationships and starts to desire the emotional stability of having a partner that is publicly committed to making the relationship work long-term.
I'm sorry that you were in anemotionally draining marriage (or that somebody you're close to has been) but that doesn't mean that's what most successful marriages are like. If things are "going strong" now, that's because you/they are with someone that they're far more compatible with, not because they've avoided committing to somebody. Your belief is essentially no different from some people's belief that they'd excel on one subject's exam because they were wearing their week-old red underwear and (all else being equal) perform poorly on a different subject's test because they were wearing a regular freshly-laundered pair.
I take the opposite view - when I see version control, bug tracking, and automated testing, it sets off alarm bells that a company is in the compartmentalization downslide. An IT group that is stretched too thin, asked to do too many things, or held accountable for things beyond its control, and has therefore devised methods to insulate itself from complaints ... and accountability.
"Thank goodness for quality control; without it, who knows what heights quality could soar to!"
Take HPQC (please!) ... the overwhelming majority of people who use it are challenged by anything more than drag-n-drop. Worse, management of these groups goes for the easy metrics it can provide (e.g. # of typos), rather than anything meaningful. One project I was part of had nearly thirty testers checking on such important things as 'Did Field A make it from Database 1 to Database 2?'. Checking the financial totals matched? 1.5 people, not using HPQC, which simply couldn't do that testing. Needless to say, the HPQC team put out lots of reports showing how the number of defects was rapidly decreasing ... and the entire project went down in flames.
(I have a theory that Mercury, the company that originally devised this product, simply hit upon something that appealed to management; the reality was that it did more to destroy quality than improve it was part of their scam. And the company, and subsequently HP, ended up paying tens of millions in fines when all their other scam-like behaviour came out. It's hard to imagine something useful ever evolving out of a criminal origin)
"When people start to value process over product, it's time to kick them to the curb."
The use of these tools _can_ have value. But, more often, it results in people who take refuge in the cry "But I did what was required of me!" Yep, 'The patient died, but the operation was a success!' mentality.
Good points. I'd also add: management/companies can fail developers many ways.
1) Too cost sensitive so forcing developers to work with out dated tools/restrictive computers. I worked in healthcare and you needed middle manager approval for a monitor larger than 19" (not your boss but your bosses boss). So you got a single 19" screen and windows XP (because IT didn't want to bother trying to support anything but the standard that all the secretaries already knew how to use).
2) Similar to 1) but a lack of bravery. In this case there is money around your boss is just too shy to step up and say: "hey our development staff could use a couple new people, or a week off to do training, or a new CI server". Another one is culture: not fighting for a culture that is supportive of creative people/professionals. Requiring a 9-5 day in suits and ties from developers when the team would rather work 10:30-6:30 in shorts. Your free to require that and developers are free to go somewhere that doesn't make them dress up like they are front desk clerks dealing with customers face to face all day. They manage by keeping their department of senior managements TODO list.
3) Giving detailed technical specs when they no longer have the technical knowledge to understand the tools that are currently being used. Manage towards maintainable business outcomes not lines of code on a screen.
Part of the problem is as others have pointed out already too: most engineering isn't innovative. How much of everyone's day is adding/making more a new page to list a customers address and order information? But is more than that too it is inertia a lot of which we do to ourselves. Things were done a certain way because the projects senior dev at the time code reviewed it into that standard. Now you have 1M+ lines of code all structured a particular way. Guess which way you'll be expected to code your new module? Guess how far a request to change that still and refactor the existing code base this month rather than pound out a few more features will go? You can get lucky and have management that understands and is good enough to say: we aren't going to do it that way anymore but it becomes the culture. You can go to a newer project, perhaps even in the same company, where the culture is still forming and either it is the way you like our perhaps you can help steer it that way: but guess what? You've just become that senior developer that people 10 years from know will likely be wishing it wasn't done that way. Change is the way developers like it: standardization is the way process management and product lines like it.
My passion is as high as always, only the world has changed and I've become wiser. Mind you, I've still broken my personal record in job-switching in the last 2 years, despite being in my mid-40ies. If anything, with age I've become *more* nimble but less anoyingly eager - at least on the outside.
Here's some advice:
1.) Switch your job. Don't worry, you'll live. And if only it is to find out that you had the best job in the world. Ok them, *now* you know. Look for the next one like that. Sometimes a bit of jobhopping is required to find out what you want and what you don't want. Pratice job-hopping and interviewing. Not to make it a habit, but to get used to looking until you've found a place where you are valued. Going freelance is a variant to that. If you're scared of going freelance even though you'd like to: Go freelance! Again: You'll live. And you'll never look back at your old life with anything other than pitty.
2.) More experienced people in our field - like me - would rather do nothing than work with a shitty team unwilling to learn or toil away on something that can't work or only will work with extreme stress and effort, because someone in sales or PM wasn't listening and didn't do his homework. Contrary to my younger colleagues, I, like most other experienced in our field, smell a projekt doomed to fail from 10 miles away. They might think I'm not passionate or that I'm complacent. Until three weeks later they've wasted 50hrs trying to get something to work that simply can't under the given circumstances. When the project finally runs against the wall and the crew and the problem has everyones attention, the boss turns to me. I say: "We need A,B and C. Otherwise this won't work. End of Story." Optionally, depending on the situation, I add in ".... As I said 3 months ago.". Sidenote: I allways *did* say it 3 months ago, but sometimes it's wiser not to rub it in. Also a thing experieced devs have learned.
Then we get what we need - which usually is simply a phone number of someone who we need to talk to and the mandate to do freely as we will, as long it stays within budget and solves the problem. Then I fix the problem by working a few hours of overtime - which I do gladly, because I, at this point, don't have to deal with any bullshit and I feel like getting something done. Just happened again yesterday, btw. Stayed till half past eight and did all the scaffolding and on monday morning finally everybody is going to hush and listen how we're going to do the last fixes.
3.) There's life beyond computers. I ditched my internet connection at home. Capped mobile data and Inet caffees are enough for regular E-Mail or getting your surfing fix inbetween. I've got enough of that at work, and I try not to spend 12 hours at the keyboard each day as I used to. It's lost its exitement. Mind you, I still pick up new stuff each day and make technology decisions 5 times a week at a minimum - but I've gotten way better and faster at dropping ideas. I try not to run in circles on the web anymore. I'm slowly building my Idea Immune System, and try to avoid getting all worked up within minutes about every new tech-fad that comes along. I've also got other things to do before I grow old. When my joints start aching, then I can go back to surfing and trying new web-toolkits 24/7, until then I want to get better at things I'm not that good at yet. Meeting women, cooking (moving away from fast-food), martial arts, exercising, traveling, dancing and perhaps even going back to playing guitar.
You should think about stuff like that too.
My general advice on this is:
You should at least have one regular thing in your life that fulfills you with deep inner satisfaction that has nothing to do with your job or other parts of your life. That can be a religion, any form or art or some outdoor activity or something along those lines. It should be that you can say to yourself: OK, even if I lose my job tomorrow, go broke, have my wife running away and my house burn to the ground, there's still that thing I can do that is fun and gives my life true meaning.
Hope I could help.
Good luck.
We suffer more in our imagination than in reality. - Seneca
As an older programmer, I can't say my enthusiasm for programming has decreased. Instead, other interests and obligations build up and take their priorities. You can't hope to have a family and raise your kids properly if you work the same number of hours you did in your 20s. While it's great to get a large project completed at work, watching your kids play sports or teaching them about life is at least as rewarding. Another thing is that after you've been around for a while in engineering, you've pretty much seen it all as far as dealing with bosses, schedules, faceless corporations, etc. It does jade you. And I have to say that while I can still pick up new ideas, it takes longer and requires more concentration than it used to.
Any company that tries to have their managers both retain top notch technical skills using the latest technologies AND be a competent manager is doing it WRONG.
Every manager should fully understand and be able to fully perform any job that they are overseeing someone else perform. Anything less will allow all sorts of nasty and inefficient things to occur.
This is NOT an argument about good leadership vs technical skills. I am saying if you do not have BOTH, then you should not be a manager.
Being placed in a management position should not be a handout after so many years of toiling in the trenches. There is a purpose and reason for management and each appointment to management ranks should ensure that the purpose and reason are fully justified.
"Someone needs to talk to the tree of liberty about its ghoulish drinking problem." by ohnocitizen
I take the opposite view - when I see version control, bug tracking, and automated testing, it sets off alarm bells that a company is in the compartmentalization downslide.
I'd be interested to hear what kind of company you'd work for that doesn't use any of these tools. I'm sure that would make for an interesting story, especially where not even version control is used.
If a train station is a place where a train stops, what's a workstation?
. An IT group that is stretched too thin, asked to do too many things, or held accountable for things beyond its control, and has therefore devised methods to insulate itself from complaints ... and accountability.
Who's talking about "IT"? I'm talking about software development. If you don't have those things I listed, you're doing it wrong - this is an engineering field now, the days of "seat of your pants" are past us.
But process that gets in your way is a sure sign of bad management. With the right tools, everything conspires to let teams work together faster, with no "who broke the build?" and no integration explosion at the end of large projects (a.k.a, the second 90% of the schedule).
Accountability is orthogonal to all of this.
Socialism: a lie told by totalitarians and believed by fools.
So every manager at a hospital should be able to conduct all surgeries? What you're saying is something similar to "all software programmer should be able to design their own CPUs."
At my job it was noticed I was getting increasingly conservative about the systems. Some of that was justified but eventually I found I had a medical problem that made learning new things hard; it had been gradually messing with memory....very very slowly so as to be hard to notice until it became obvious something was very wrong indeed and being fired became likely.
Learning new stuff when you can't reliably remember what you learned the day before will rapidly decrease ones enthusiasm, even if one recognizes change as necessary.
Before losing insurance, I started insisting on checking out possible causes. If you're lucky (I was) there might be a simple fix: diet change, CPAP, whatever. That's the good news. Not so good: the longer a problem goes on, the longer it may take to recover and one may never get back to 100%. Very scary but it's better to get back 90% than to continue to degrade.
I'm convinced that for some significant fraction of older workers, this kind of thing can be some or all of their problem and I urge people reading this who have memory and learning problems they didn't use to have: check out stuff like sleep apnea, vitamin deficiency and the like.