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.
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.
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.
.
Don't fight it. Look at it as growing in a different direction.
> 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.
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.