Hacker News new | ask | show | jobs
by clentaminator 3507 days ago
I think about leaving programming every day. I love programming, but I'm not sure I enjoy software development as a career.

I enjoy coding and understanding how computer systems work, but I don't care for the constant changes in tools and techniques in certain domains of development. I'd rather practise with and improve my existing knowledge of a subject, instead of constantly playing catch-up with someone else's tools and workflow. I also don't care about waterfall, agile, scrum, kanban, scrumban or any other development methodology that I've missed. I hate that my job has me chained to a desk (sitting or standing) instead of being able to use my body. All of this makes me think that real-world software development doesn't really suit me.

I'm about six weeks into a new job after leaving a company I worked at for just over five years. Amongst many other reasons for leaving, I thought that a new environment would change how I felt about continuing a career in software development, but I'm not sure that it has. I'm aware of how lucky programmers have it, but I can't help feeling like I just want something else. Grass is always greener, etc.

What are the career options that allow one to work mostly by oneself in one-to-two week stretches without having to play the development workflow game with the daily standups and so on?

Sadly I'm not sure what I'd do if not programming, but music is a big interest and I'd considered teaching music.

tl;dr Woe is me ;)

7 comments

> without having to play the development workflow game with the daily standups and so on?

It never used to be like this. I think management has reacted to the traits they perceive in programmers - get distracted too easily, work on things that don't need doing, take too long, cannot provide work-time estimates, etc - by putting in place this micro-managing approach: "only do it if it's on the kanban and tell us each and every day what you have done and will be doing". I know agile, etc, weren't designed to do that, but that's what they've been used for whenever I've been subjected to them.

Programming and dev-ops used to be fun, self-directed, creative work which kept me interested for a couple of decades. Now the pace of change (much of it unnecessary or over-sold) and the constant micro-management have me looking for other things to do.

I believe Agile (at least as thought of by management) is designed to make programmers interchangeable. If programmers are interchangeable, they are easily replaceable.

We just started doing "by the book" Agile with daily stand ups. Now that you mention it, it does feel like I'm being micro managed. Put in your time every day so we can email everyone the burn down chart. Lets add some more pressure to the job if you are behind a day. There are no milestones, just an endless grind. I don't know why programmers don't push back against that stuff.

Push back and you'll just be replaced by someone younger or more naive or willing.

At the end of the day programmers are mostly just factory workers of the 21st century. The best ones are perhaps closer to the mechanics of the industrial revolution.

Except with amazing pay, serious benefits, and better working conditions.
Compared to factory workers of 50+ years ago? Certainly.

Compared to programmers 25 years ago? Absolutely not. The pay is worse (inflation-adjusted), and the working conditions are far, far worse (see: open-plan offices).

(My apologies for crappy formatting. All I wanted was a bulleted list. Wasn't that doc'ed in the FAQ or something?)

Let's see what I was doing 25 years ago:

    * Private office with a door that closed.

    * Status updates mail to $SOMEONE once a week that were mostly auto-generated from the tools we used. Took 30 seconds.

    * Sat down to a chunk of work uninterrupted for long periods of time because no one was micro-managing me or bugging me on Fashionable-Chat-App-of-the-Week.

    * Used development tools that had a half-life measured in years, not months.

    * Got to really, *really* know my tools because they weren't swapped out for the new hotness every six months. Man, the ways I used to abuse FoxPro bordered on criminal. I can't do that these days since the tools get swapped from under me so often.

    * Was paid well, and treated with professional respect. Sometimes a collared shirt was required, but I didn't mind when everyone else had to wear ties.

    * Was provided with good equipment, often without asking. "I have a quad-core server box with an assload of RAM for a...mikestew?" "That's me, but I didn't order it." Boss: "oh, thought you might need that for multithreaded testing." Thanks, boss!

    * Went in at 9:00, went home at 5:00. Every day.
Today:

    * Today I'm sitting in a retasked storage room because I refuse to sit at the "hotel desks" (note that I'm currently a consultant, so it's not *as* egregious. But 20 years ago, clients that wanted me on-site provided a desk or sometimes an office.) My last full-time position was in an open office plan sitting next to people that literally (and I use that word literally) spent more time talking about the fucking Seahawks than they did working.

    * Daily stand-ups to justify my existence.

    * Treated like an interchangeable line worker.

    * Working on the cheapest Macbook Pro that Apple would sell the client. With a 120Gb drive, I spend at least a billable hour a week trying to free up space what with Android/iOS dev environments and the multi-gig simulator images. But, hey, at least they saved $100 on the cost of the machine!
So much this. And the biggest fools are the programmers that believe that they are unique wizards working magic and being special. They are simply factory workers working under an illusion.
It is probably also about managers protecting their positions and removing power from those below them.
> work on things that don't need doing, take too long

These are also traits of junior developers, who now get boosted into non-junior roles due to demand for developers.

Hiring cheaper juniors and trying to micro-manage them into intermediates... The same approach suffocates eventually when "unaccounted for" tech debt creeps in.

That said, there is also something to certain devs wanting to play with shiny tech (and build their cvs) rather than the best tools for the job. This, along with " cannot provide work-time estimates" point to the need for some senior role who can management overall project development, including goals, estimates, planning and tech stack choices; and this has to be a senior technical role, not a MBA-ed middle manager with a list of methodology-derived rules carved into stone tablets.

Yeah Agile is the assembly-line version of software development. You're reduced to optimizing effort for your very local problem space. And its a grind. The 'sprint' is well-named though - you constantly race toward another crappy feature done with minimum effort.
I think it's just that the business wants to know where their money is actually going (and they have every right to, it's effectively their money, or managed under their auspices). and unfortunately agile is one way they can accomplish that. It's unfortunate because it costs a lot of developer time to go through the motions, and we are the closest witnesses to this overhead/waste.

I think using/not using agile is like doing business with a contract vs a handshake. When there are few enough people who trust each other, you can get by on a handshake. When you get into larger dollar amounts (like paying an office full of developers), sometimes its better to use a contract so you have some perception and promises about where your money is going.

Now, agile is of course not a contract, but if teams meet their deliverables, the business can at least see where their money went, which they are entitled to do.

Look for older development companies, where the developer staff is all over 40. The work tends to be in C/C++, you'll find none of the modern programming fashions (Agile, whatnot...) and they expect you to be a mature adult capable of self managing. They don't care how one works, as long as you own your work, can fix if issues or bugs are found, and can generally operate as a respectful peer to the other developers. The work you'll be given will be significant, you won't be able to slack off, but if you're an individual that appreciates honest, hard work that includes machine learning, advanced math and stats, 3D and GPU programming, plus responsibility for the entire UI, software documentation, and support of your development - its a dream situation. But ya gotta be capable of deep self directed research plus the entire development cycle yourself, as these older development companies tend to have deep libraries of past projects you'll need to learn for the core of whatever they task you to create.
Do you have any examples of this type of company? I'm a sophomore CS student looking to work in Aerospace, and this type of company, where the work is done in a self driven manner and where the work matters, that I'd love to work for.
Academia has some of these qualities (and more). Depending on the school and or department you could be doing anything from basic full stack web dev on down to lower level comp sci work. Deliver good results and move around (big university) every now and then and your pay will go up pretty quick.

Just don't expect the big software firms to be knocking on your door if you need those bullets on your resume (unless you have a PHD).

make sure you have a github or some sort of portfolio of personal projects you've done. Write your own kerbal, or wind-tunnel simulator, drone autopilot, something that shows you are captivated by the field and took matters into your own hands to work with it.

Also, prepare to work in a formal-verification development environment. Some aerospace jobs are like this, which basically means code moves as slow as molasses. If it's flight control software, you may find yourself writing 20 pages of documentation/paperwork for every one page of code. (Think about it, if your code could destroy a $12 million jet engine, you should be pretty confident your code actually works, right ?). So research CMMI [1] and if that is a dealbreaker for you, make sure you avoid those kinds of jobs.

[1] https://en.wikipedia.org/wiki/Capability_Maturity_Model_Inte...

Look around in the EDA field.
> honest, hard work that includes machine learning, advanced math and stats, 3D and GPU programming, plus responsibility for the entire UI, software documentation, and support of your development

What kind of company is this?

Sounds like GIS, maybe custom computer vision work?
I'm in an eerily similar situation. Been doing software development for about 5 years (though at different places, doing primarily Android development), am just over 6 weeks at a new job and I'm beginning to feel that software development's just not for me anymore. I don't feel passionate about most aspects of it - constantly playing catchup with the latest frameworks, the development/management methodologies/processes, wrestling with the Android framework, pushing pixels, UI/UX...

There are still elements that I enjoy. I still love the creative, mathematical problem-solving aspects, but those moments feel few and far between.

I also feel at times I'm taking my position for granted - I'm not sure what else I'd do besides programming. I've always had a casual interest in security, so I'm thinking I might look into that. Being a "bug bounty-hunter" seems like a dream, though I'm not entirely sure how realistic that would be!

I also love music, but I think that's even less feasible. I'm not proficient enough to be able to teach it. But I would like to be able to dedicate more time to learning/producing it.

Good luck - here's hoping we find something more fulfilling :).

I'm a freelance programmer without much self-worth, and currently no work. Given the right environment, people and projects (for me), I know I'd be happier and wealthier, and may even thrive. Rather than the abandonment that I've felt on many freelance gigs. With age, I find it increasingly difficult to sit in front of a computer for long stretches of time (more than 4 hours). I've been in a rut, where I've barely earned enough to get by for the last 15 years, and have nothing to show for it, other than a bust shoulder. No landmark projects or piles of cash. Cash would help! My other half frequently tries to talk me out of the profession. I work occasionally with impassioned newcomers, who assume with my depth of knowledge and skill-set I'd be earning shed loads and taking the best gigs. But they have the needed drive and zeal that I feel I could do with a shot of. Or rather, I can program, but I'm not a successful programmer/worker. I still like problem solving, but also appreciate some donkey work. I often think what else can I do, but my imagination and confidence fails me. And I'm too shy to ask for help (UK).
Could you pick up a project, say on coursera, and move into a slightly different field? ML, cv etc?

London appears to have a lot of jobs atm...

Have you checked this out before http://www.bountysource.com
I stay away from web and mobile. They change too much, have too many layers of technology to potentially fail.

Also, web tech isn't nice to work with...

I agree that the layers are insane and change frequently. Bigger companies go with stacks that don't change as much (C# or Java) vs. JavaScript but that's all relative and that may be too much change still.

Going the graphics programmer route (OpenGL, DirectX, Vulkan) would make for some fun work in a stack that changes in a different way and not as fast.

Bottom line though, technology is the business of change and we enable change for those that we work for.

The money is hard to pass up, regardless of area.

As I've mentioned before I own a gym business (multiple locations) with my wife and some other business partners. Part of the purchase process was financial disclosures of everyone so we all know what each other makes on paper, what we actually take home, household wealth and assets, etc.

I'm 30, younger than my business partners by multiple decades, and am the only one not in a strictly management position. Two of the partners are PEs and I make more than anyone else.

I say this not to brag but only to point out that it takes a lot to leave programming simply because the money isn't there is a lot of other professions. I almost went into civil engineering and I'm glad I didn't, because apparently I would've had to bust my ass to make it into management only to be 20 years older and making less money to boot.

I did see some data on US News Best Jobs on salaries for various positions. It's a roundup of BLS data, and provides data based on location.

I find the data a whisker suspicious, but this is BLS data. Supposedly, the media salary for a software developer in SF is $118k a year. Keep in mind, in San Jose, it is $142k, which sounds more like it.

http://money.usnews.com/careers/best-jobs/software-developer...

But now look at salaries for other fields. A registered nurse in SF earns a median salary of $123k. Every time I point this out, I always make sure to emphasize that I am not complaining that registered nurses earn a lot of money in SF - they should! And yes, it is a hard job, but perhaps a rewarding one as well. Would you rather do a hard job that is important and pays well, or log into JIRA to fix bugs and report on them in your daily "standup"?

Dental Hygienists, according to this roundup of BLS data, earn about $102k a year. Ok, that's less than developers, but do 45 year old dental hygienists get run out of the field because they are too old, or because they withdrew for a few years with kids and family responsibilities?

And keep in mind, salaries for lawyers, nurse practitioners, physicians, physician assistants, and other professionals or para-professionals often substantially exceed what software developers get paid. If you want a relatively low stress job, there are better options. If you're ambitious, there are better options as well. In short, you'd better really like code if you ant to do this, and you may find you don't, once you discover what that means on an "agile" team. Great for hobby, sure, so is music, dance, and painting. Do you like it more than music, dance and painting?

The unspoken truth is that Software development isn't really that great a job for the pay, career prospects, and working conditions. It's not horrible, either, but there's no need to scratch our heads about an alleged "shortage". I know the industry has a bunch of reasons they promote for the "shortage", but in the end, it's a market response to pay and working conditions. People with the skill to do this have realized they're better off in a different field.

Thanks, that's very interesting. I often think of doing something else with my life, but the money's good, and the work is easy. Makes it very hard to walk away. Plus over time you (and your family) get used to a certain lifestyle. Golden handcuffs as they say.
I'm aiming for Quant development since I read quantjob.blogspot.com/2011/12/how-to-avoid-quantdeveloper-black-hole.html

Software dev is less about enjoyable hacking, and more about "housekeeping", or a million yak-shaving data management tasks that you are paid to care about.

I'd sooner do something else that merely involves software, but has some other domain of knowledge, and keep the majority of my coding as off-work hobbying.

I think it depends what kinda code you write. Also, what kinda management structure you find yourself in.

Sounds like you're writing code with hard specs (enterprise company?) where you just feel like a cog in this vast code outputting machine. In that case, it's totally natural to feel like you're dying inside. That's natural. We're creative beings, and you either need to find a different job or calibrate other dimensions of your life to meet that need (physical fitness, start a family, serious hobbies, be part of a community).

Surprisingly no, it's not an enterprise place.

The actual company feels more on the other side of the spectrum, and has a fairly 'young' culture, along with an overwhelming amount of 'social coding', for want of a better phrase, including various guilds for different technologies, tech meetings, demos, meetups, ad nauseum.

I feel pretty out of place, but I can't help feeling like I just can't cope with this much day-to-day interaction. I just want something quieter, more low key, if that makes sense?

You might consider digging deeper into other professions where programming experience/systems knowledge would be essential.

You might also dig deeper into discovering what you like and don't like about the programming profession: Do you prefer going to meetings? Do you like solving new problems constantly? What drives your satisfaction? What do you not like about programming? What do you like about programming?

What one person considers to be a lucky profession may not be the same view shared by another :)

I've considered this quite a bit.

When I picture someone with a strong background in programming and CS going into another field I always imagine there's a lot of potential for really understanding problems in that field and applying computing to solve them. Essentially, using computing to really support work in another field rather than just computing for it's own sake.