Wednesday, March 28, 2007

Why I hate software development (warning: non-aviation topic)

I hate software development. This is a weird thing for me to say because I love programming, I love creating software; I even enjoy solving bugs and fixing crappy code. However, more and more I’ve found myself getting increasingly depressed and frustrated with the business of software development.

My best friend is rapidly approaching burnout; he’s working in an extremely high stress environment, putting in long hours, striving to meet an impossible deadline, and gradually losing his health. Can you guess what industry the company he works for sells their software too? Must be pretty important right? I guess so, if you’re into eCommerce solutions for window and door manufacturers.

The company isn’t really doing well; the software they produced is usually so buggy and slow that a lot of their biggest customers have threatened to sue multiple times. This results in a heroic effort by the already overworked developers to fix the problems and save the company. I know because I used to work there to, and I left along with half of the development team because I kept seeing the same damn cyclical pattern.

FUZZY REQUIREMENTS + SCOPE CREEP + UNFLEXIBLE DEADLINES = CRUNCH TIME = BAD SOFTWARE

BAD SOFTWARE + ANGRY CUSTOMER = EVEN MORE CRUNCH TIME

HEROIC EFFORT = BARELY SATISFIYING THE CUSTOMER TO GET THEM TO AGREE TO A NEW VERSION

REPEAT

I left that company thinking that surely this was the exception, not the rule. How could you be smart enough to start a company, bring in brilliant people, and then just totally mismanage it to the point where your customers sue you, and you lose your brightest staff? Not only that, but keep repeating the same goddamn mistakes year after year?

Fast forward a year and I’m working for one of the largest banks in the world. This employer is one of the top three largest employers in Columbus, my team works with the Auto Finance division and this was our goal as described by our team lead.

Fix a failed offshore project (bad software) so we can limp it into production, so we can immediately start on a total rewrite/upgraded version (since the original only delivered a tenth of what was needed) of the software in house.

The internal team (us) made our goal; we got the project into production and totally exceeded everyone’s expectations. A handful of developers fixed a failed project that took sixty offshore developers to make. Considering our success you’d think the business we’re supporting would be jumping up and down to proceed to a new version.

You’d be wrong.

Over the past four months we’ve been mostly sitting on our hands, our team has tried and tried again stressing the case for getting a new version up and running quickly, only to be faced with collective silence and stone-walling from our business.

Today things changed; there were some new people in the office today, people in suits, meeting with our team lead and his boss. A VP for Auto Finance flew in from NY, something was up. I joked to a team member that they’re going to offshore PDS again for version 2; we had a pretty good laugh about that.

Until another team member came by and told us that’s exactly what the business is considering doing. The meetings are with another offshore company, the business wants them to look over the code for our project and come up with an evaluation of how long it would take them to come out with a rewrite.

See the pattern? Yup, despite the fact the internal team completely turned around the project, despite the fact they tried to offshore and failed, the business is hell bent on making the same mistake again.

Its all about cost, the original offshore company quoted a price $3 million below the competition, and they delivered a product that met a tenth of the requested functionality. The business wants to throw the dice again and hope that this time another low-bid offshore company will do better.

It’s this kind of insane thinking that has made me sick of software development. This isn’t atypical, what’s atypical in the field are companies like 37signals, Fog Creek, Source Gear, Microsoft, and Google. Everyday I read online at how awesome these places are for developers to work in, and how successful their products are, it makes me physically ill to think how rare those companies are in this field. It’s not like there are any secrets to creating a successful software company, Joel Splosky and Eric Sink's blog basically spell it out to everyone for free!

I’ve been feeling this way for a while, everyplace I’ve worked at as a developer so far has been met with huge disappointment. I hate this industry and my hatred of the stupidity the companies I work for grows with every passing day.

I’m desperate to escape; NOTAMAce.com is an attempt, at least with my own website I’m in control. I can craft my own ads on Google AdWords, I can come up with the design and the copy of the home page. I can decide on the hosting provider and I can control what features go into the site, and which features are cut.

Of course, I’ve thought about giving up software development all together, just change career paths completely. A friend of mine recently suggested building airplanes (laying down carbon fiber for composites), I was pretty surprised how tempting that sounded. Another option is to get my commercial and CFI, start taking up students, maybe ferry some airplanes for the flying club.

I apologize if this post deviates a little; I try to keep this blog aviation oriented, but this was something I had to get off my chest. Almost like last weeks “Designing for the Passenger” post/rant, by the way I was playing around with a new writing style, I don’t usually run around screaming at the top of my lungs about corporate jet jockeys.

Til next time, clear skies!

7 comments:

  1. BTW, I am putting a link-out to NOTAMAce in the next version of ForeFlight - hope that is OK!

    ReplyDelete
  2. Sure that'd be great! I checked out your site for ForeFlight, it looks like an awesome preflight tool. I was really impressed by the easy to understand weather graphics in the report.

    ReplyDelete
  3. I feel your pain brother!
    My advice is to not look to software development for personal satisfaction. View it as a job, a means to an end. That end should be what you look to for satisfaction and happiness.

    Another piece of advice is be careful about making your interests into your job. I used to love programming as well, until I started doing it for a living.

    Hang in there!
    -M Fitzpatrick

    ReplyDelete
  4. I did software development for a year, and hated it. I've never worked with so many arrogant, condescending people in one place, in my life. I'm glad I only worked there a year, otherwise my mental health would go bad, and I would have a lot of years of bad memories. Luckily 1 year is not too bad. I have a much better job now.

    ReplyDelete
  5. I'm right with you there. I have 16 years in IT and I'm fed up. Like you I enjoy writing code, designing systems and solving problems but the insanity and complete cluelessness of the business is too much. "The Mythical Man-month" should be required reading for anyone remotely involved in project management, I see the same stupid mistakes being made over and over again, every project, every company. Hmm, maybe being a pilot wouldn't be too bad!

    ReplyDelete
  6. Just came here.
    Probably a year too late :P
    But I agree. I graduated a few years ago and have worked for a few companies (even a big one touted as one of the best places to work).

    Every, it is mismanaged. Imagine me, a after 2 years of graduating, becoming team lead of a major core router product, because the idiots were stupid enough to piss off so many engineers, they left.

    I left and joined another company...now again...grossly mismanaged. Well I'm considering it a work in progress. I've developed a nice list of questions to ask at my next interview :P Hopefully I'll pick it right this time.

    The number one thing I'm going to do before accepting a new job = meet the development team and look at their code :)

    ReplyDelete
  7. Yo.

    I've been a software engineer for 10+ years and am sick to death of it. Sometimes working on a project makes you feel like you are on top of the world but the lack of inclusion in project decisions. Not being promoted year in year out and then having a team leader who doesn't run personal reviews. It just gets you down. You lose interest and day in day out you sit there wondering "What am I doing here".

    The pay is great but....perhaps I'm just growing out of it.

    You aint alone with your problems. The company I work for keeps making the same god damn stupid decisions each version. Frustrating.

    Good luck with whatever you decide to do.

    ReplyDelete