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?
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.
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.
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.
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.
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 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.
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.
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.
.
Don't fight it. Look at it as growing in a different direction.
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
> 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.
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
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.
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 mostly agree but I would say that a good engineer provides (and meets) a deadline of his own making. Good managers have clear business plans but they can't create them if software systems randomly pop out of the basement shouting "surprise". The most overlooked and underrated skill for a "professional" engineer is business administration skills (and vica-versa with PHB's). Someone who speaks both languages is far more useful than someone who speaks only his native tongue.
Yeah it's easy to become disillusioned, if you don't have the political clout to organise your own work and "lead by example" to meet their vague goals, then get it or get out. If you do have some influence then vague, numerous, and ever changing management goals are your best weapon against the idiocracy, simply pick the brain farts that give you license to do TheRightThing(tm) and politely deflect the others.
*you - the royal version.
And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
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.
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