* The Business of Software

A former community discussing the business of software, from the smallest shareware operation to Microsoft. A part of Joel on Software.

We're closed, folks!

Links:

» Business of Software FAQ
» The Business of Software Conference (held every fall, usually in Boston)
» Forum guidelines (Please read before posting!)

Moderators:

Andy Brice
Successful Software

Doug Nebeker ("Doug")

Jonathan Matthews
Creator of DeepTrawl, CloudTrawl, and LeapDoc

Nicholas Hebb
BreezeTree Software

Bob Walsh
host, Startup Success Podcast author of The Web Startup Success Guide and Micro-ISV: From Vision To Reality

Patrick McKenzie
Bingo Card Creator

is a career as a software developer worth it?

I was flicking through a magazine on the programmable computer Raspberry Pi last week. The introduction said that the Computer Labs, University of Cambridge, United Kingdom stated that it found that its applicants lack the programming experience and good academic qualifications found in those who applied many years ago. The reason for this was thought to be computers are more complex now and lack the simple programming ability of those 1980s home computers the ZX Spectrum and BBC Micro.

Well when I was reading this, I thought maybe there might be another reason. Could it be word has got out that careers as a software developer just aren't worth it?

What makes me think this? I went to a pretty bad school in the academic sense up until the age of 18 years. Despite this I managed to get into the best university in my country of birth. Typically at university I got top marks for my project work and even for one project the examiners thought my work was particularly good.

For the past years, I've given up working for big companies and now sell my own software. I earn about the same kind of money. My software is used by the most famous technology companies in the world, big investment banks and important government departments. I am not saying this to "big" myself up, but rather just say I am competent and not a fool.

I started work as a software developer in the 1990s in London. Unfortunately my first job was at a company mean with money and I was lousy at negotiation - rather I worked hard and expected fairness in salary, but that didn't happen. I never learnt that you should ask for money, before you do the work, not after the fact. I had hoped to prove myself first and then get something without asking for it. But the world does not work like that.

To cut a long story short, I've worked long hours and had a series of low level and senior management congratulate me on my perfect work. Yet, I've never had a stable job or got anywhere near the level of money that my programming work bought in for the companies I've worked for.

I've written all the difficult and major parts of software products bringing in major amounts of money for companies, yet I end up losing my job because too many friends are hired or I get transferred from one manager to another and fired. The last time I got fired it was from a low level people manager, two days after a senior manager visited me and gave me a gift because the work I did for him was so good!

What I mean to say is that now I work for myself I have a stable income and decent working hours. Yet when I worked for software companies, I ended up working evenings, nights and weekends, but ended up with nothing long lasting for myself. I ended up with praise and notice from many managers, yet always managed to lose my job over some sillyness i.e. friends getting hired, being fired by some stupid new manager, who got fired two days after he fired me!

What do other people think?
AnonForNow Send private email
Sunday, June 01, 2014
 
 
I think most of the negative things you say above about a career in software, also apply to many other careers e.g. "you should ask for money, before you do the work, not after the fact".
Andy Brice Send private email
Sunday, June 01, 2014
 
 
My experience was quite the opposite. I spent 10+ years in same company and always got significant raises without asking. In the end my salary was cca 3.5 times bigger then when I started. But I was one of top performers there and they obviously didn't want to see me go. Now I'm not saying I'm best of the best world-wide, just that I was  above average in that particular company. Also, that company was not too big and was relatively flat management wise. If you're good there, more or less everyone knows it after some time.

So one way would be to find small-medium size mediocre company and be among the best there :) Or just run your own business, that's much better anyway if you can pull it off.

Realistically looking at your story, it seems that you never were that significant for these companies. I'm not saying you're not a good programmer. Maybe you're not a good coworker, have a bad temper, maybe you didn't have luck with bosses, or these were big companies where you couldn't get visibility outside of your small group. Or something else. If upper management thought that you were that important to them, I guarantee you'd get a call two days later after that boss was fired to get you back.
Suka Send private email
Monday, June 02, 2014
 
 
In my first job, I was working on the company's main software product, which although it bought in most of the company's money, it was a legacy product using legacy technology. The company already had teams for the new software product, which was still in the making after 4 years! I worked on external pieces of software that dealt with the legacy product's data. As such the people "valued" by the managers in the company would not be the software developers bringing in money now, but rather the newly hired software developers with skills in the newer technologies. So I had to leave that job, as it involved 60 hours weeks. The company was cutting down on the people in legacy support, leaving really just me and some new people that didn't understand the legacy software at all. I worked my guts out and then realized I hadn't done anything for me. I bought in much money for the company, but then wasn't valued as I hadn't experience in the technology for the next generation of products.

For my last job, the company transferred all the directors and vice-presidents every 2 - 3 years to new groups. So the management above you changes. The situation for me, was that I did small to medium amounts of work for managers in different divisions to my "people" manager. As such when I was fired, the people I actually wrote software for, might not even have been aware of it. The fact that I was given a gift from a senior manager 2 days before I was fired, suggests he didn't know I would be fired 2 days later! You wouldn't have a company having one part trying to say I was bad and then another part saying I was good. It does show a lack of communication. When I was fired the Vice-President that had previously commented I seemed to go all the work was heading up a different division as she had just been moved.

I would like to know how well my experience is shared. I guess it was just bad luck for me.

For another job, I left because I was working 55+ hour weeks and the rest of the staff I shared an office with were working 40 hour weeks. Yet over the course of a year, they were paid more than me. What made me leave was the company was given the equivalent of several million dollars to help them develop a new product. I was writing all the guts of this software, except the user interface. I was aware there were "wealthy" people in the company buying houses in a capital city with cash. I felt very poor in comparison as I could barely afford to live. One new guy joined in customer support and he commented to me how can people afford rents in this city given the salaries. That was the problem. The directors of the company bought houses outright after the company was given several million dollars to help them finance the project I was virtually writing on my own. They did put my salary up, but were slow about it because at the time they told me they were too busy and were going abroad. By the time they put my salary up, I couldn't wait and had interviewed at other companies. So I left for a small increment because they took so long to raise it! Silly really!
AnonForNow Send private email
Monday, June 02, 2014
 
 
What you describe is the typical problem of being employed.

The idea was that you trade in the possibility of earning inappropriately much for reduced risk.  You get a salary and don't have to worry about anything. The company takes all the risks and you can go home in the evening and not think about the business. But the people who take the risk of running the business will expect of course bigger rewards for they take the risk.

This was true up until the 90s of the last decade. People were overall happy with that bargain. Employees had a stable life and entrepreneurs could get crazy rich.

Now in the recent decades this did change. While most people still believe that a job will give them security it isn't so. There's no IBM, no Ford, no large company where you can start working at 18 years till you retire. Jobs are not much more safe nowadays than running your own business. You can get fired at the whim of management because all they care about is the bottom line for the quarter earnings.

And yet still the risk takers reap the rewards.

Now your question should be "is a career as an employee worth it"? Because if you give up the opportunity to earn big cash and yet get nothing in return for it - you still have the risk of uncertain income. Why should you then help make someone else rich?

And the other point you're making that you as the developer earned less than some honcho in marketing or sales ... well ... from running your own business you should know that writing the software is not the hard part. Selling is. And if I as a company owner had to decide if I keep my best developer or my best salesman ... even being myself a programmer ... I would choose the salesman. They simply add more to the bottom line.
Jeremy Morassi Send private email
Monday, June 02, 2014
 
 
@Jeremy Morassi 

As a programmer, your last two sentences were hard to take.  But I agree with them completely.

Software is worthless unless people know about it (and worthless to the creator unless paid for in some fashion).  On the other hand, look at how many people get rich selling crapware or even vaporware.
Doug Send private email
Monday, June 02, 2014
 
 
@Jeremy Morassi 

In my current business, I did some elementary SEO and pay about 5 - 10% of my revenue to Google Adwords and a tiny bit to a download site and bing.com.

I was lucky that in my niche about 9 years ago, the competition was nowhere near as good as mine.

So I have a profitable business and I didn't need to employ any salesmen. I am a one man outfit and I've managed to sell to government departments, major tech companies and investment banks. There is a proverb - "a good grape needs no bush". Sometimes it is true.

The trouble is that once the difficult software is written, the software developer that created it is expendable if the management is short-sighted or wishes to keep friends employed.

I wrote a substantial part of an application for one company. Everything I did worked well. It bought in a vast sum of money. But my part was done and my work stood by itself. The company didn't want anymore of that type of work done again. So I got fired. The two friends that were hired and did either no work or buggy work kept their jobs and got a packet of money when the company bought out by a large tech company.
AnonForNow Send private email
Monday, June 02, 2014
 
 
> is a career as a software developer worth it?

Absolutely not, UNLESS that is what you want to do.

Same as anything!

Toolkits and frameworks and hardware is SO nice these days that it is super easy for regular joes to do very cool stuff as a hobby. If you LIKE doing that then go for it and have fun, and don't screw it up by demanding it has to be some career bullshit.

Programming stuff is now part of ANY professional career. If you can't do basic logic, you're at a disadvantage.

But the "career" of being a guy who ONLY knows software is like the career of a guy who ONLY knows how to write english, and has absolutely no original thoughts. Useless except as a low paid scribe or transcriptionist.

You have a CS and are hoping some boss will tell you what to code? You are worth minimum wage AT MOST.

You are an expert in the hot field of interstellar ferret law AND you know how to code models of likely outcomes of court cases? You got a meal ticket!
Scott Send private email
Monday, June 02, 2014
 
 
"The reason for this was thought to be computers are more complex now and lack the simple programming ability of those 1980s home computers the ZX Spectrum and BBC Micro."

Without getting into details (unnecessary) permit me to state that the reality is pretty much the exact opposite. Therefore whatever said author made this claim should be totally disregarded regarding their tech claims in the future.
Scott Send private email
Monday, June 02, 2014
 
 
Friends and comrades, please watch this informative video presentation regarding whether modern computers are more complicated to use than those of days gone by.

https://www.youtube.com/watch?v=PF7EpEnglgk
Scott Send private email
Monday, June 02, 2014
 
 
@Scott: Haven't watched the video yet, but I think I know where you are coming from.

I started with the basics: raw machine code. Step forwards... Assembly code... Step forwards... C.. Step forwards... OO development (Pascal in my case). Step forwards.. .NET...

At each stage things got easier. But' I'd say that the basic fundamentals have not changed and shouldn't be forgotten. There may be nice wrappers so you don't have to think, but it ultimately comes down to zeros and ones...
Ewan McNab Send private email
Monday, June 02, 2014
 
 
@Scott: Thanks for that link. Kind of says it all :-)
Ewan McNab Send private email
Monday, June 02, 2014
 
 
Scott: "Without getting into details (unnecessary) permit me to state that the reality is pretty much the exact opposite."

+1 for that.

I started doing machine code on a ZX Spectrum (after a bit of time on a ZX80/81) and the first thing I wrote was an assembler. Programming that thing in assembler was at least an order of magnitude harder than what I do now, as the compiler/runtime do everything for you.

Bare-metal assembler is much harder on a platform like that, as you have no services to call on, you have to do everything yourself. Of course, I made it harder by hacking the hardware to do stuff that was "impossible", using software tricks. The Raspberry Pi platform is also likely to be trivial to work with, compared to those 1980's systems.

As for the original question, I'd say being a software developer is worth it. It has been good to me, although to be fair that is more to do with my attitude than any technical skills I have.

As Scott mentioned, everyone will be a programmer now, so as it becomes trivial for anyone to build even complex applications, it is harder to distinguish yourself, which is obviously why other, non-technical skills are so vital, as Jeremy pointed out so well above.

As always, IMHO, YMMV, etc.
Scorpio Send private email
Tuesday, June 03, 2014
 
 
@Ewan McNab
It looks like you took a similar path to me, although I went down the MFC/C++ route before C# and .NET, with a temporary diversion into VB.

I agree with you that things have got (much) easier. We're now at the stage that pretty much anyone can build complex applications, without developers, etc. However, I disagree with you when you say "...the basic fundamentals have not changed and shouldn't be forgotten"

On the contrary, I would say that things have changed so much that we should forget much of what we learned. In my case, I still find it hard to use memory space without worrying too much. This is because I developed habits when things had to fit into a few kilobytes, so saving a byte in a data structure was worthwhile and I had to count clock cycles to get timings correct. Now, for 99.9% of cases worrying about saving individual bytes and a couple of clock cycles is a massive waste of effort.

I agree that the "clarity of thought" remains crucial, but really most of what I used to worry about is so trivial now, that it is of no concern. Modern development and execution environments hold your hand so much, that you can concentrate on solving the immediate problems, yielding a huge increase in productivity.

Following this path to the logical conclusion is what lead me to create a system that allows business users to design, build and support their own applications. Of course, this isn't really the "conclusion". Rather, it is just an interesting stepping-stone on the way to something better. I wonder what that will be like...
Scorpio Send private email
Tuesday, June 03, 2014
 
 
I should have titled the piece as:

"Is a career as a ... worth it, if you are working for managers that can discard you on a whim or pay bad salaries WHEN INSTEAD you can write and sell your own software?"

Or perhaps "Career pitfalls".

However Jeremy Morassi did pick up on the fact my intentions were to discuss working for bad employers versus yourself.

I think my problem was that my first job was for a company particularly mean with money despite the fact their software was for investment banks. I got upset I was working 55 - 60+ weeks for a poor salary. I got the first job that came alone and then found out the pension contributions they promised was a carefully worded untruth and the job had the same hours and wasn't in the technology I wanted. So it is very easy for a career to go into the sand for years and you can chop and change jobs too often.

I do reasonably well (in fact very well considering the work I've done) working for myself.

I also had the misfortune for working for the major tech company that has quite a reputation for being "employee unfriendly".
AnonForNow Send private email
Tuesday, June 03, 2014
 
 
Sorry,

"can chop and"

should be

"can't chop and"
AnonForNow Send private email
Tuesday, June 03, 2014
 
 
"you should know that writing the software is not the hard part. Selling is."

I agree, but I disagree.

Selling is tough, in general.

The greatest software in the world is useless as a product if you can't sell it.

If you read any books on sales and marketing you quickly learn that one of the first and most important points is "Have a great product". Then everything is easy. It sells itself. So good software development is more important ?

You would hope a good salesman could sell a bad product. And they can. But they cheat: discounts, promotions, practically giving your product away for free, idle promises, half truths. Anyone can sell $100 for $10.

There are plenty of poor salesmen who fall back on only these techniques. And they get the glory when the product is successful.

There are a few salesmen who are very good; using the art of word, negotiation and presentation.

There are also great programmers who create mediocre products - you can't blame sales if they have to do more work to shift your product.

In summary, you need a symbiosis of good product and good sales.
koan Send private email
Tuesday, June 03, 2014
 
 
@Scorpio "I still find it hard to use memory space without worrying too much. This is because I developed habits when things had to fit into a few kilobytes"

Ditto, though you do still have to be careful. If it's IDisposable it's that for a reason.
Ewan McNab Send private email
Tuesday, June 03, 2014
 
 
My response is, "No. Not worth it."

When I was in college my economics professor rhetorically asked what exactly do I.T. people do to create value?  Back then I.T. was referred to as M.I.S.  (Management Information Systems).    I was studying for a business degree.  I never really understood how The Economist (magazine/newspaper) would routinely drop references about software becoming a commodity. 

Fast forward to the present, and I now get it.  This is while I work for a small software company.  They treat programming and programmers as a commodity.  The same was true for the very large corporation I worked immediately prior.  I'm now looking to transition into another career other than being a software developer.  Why?

Eventually you will experience this economic reality.  While you become more experienced, you will earn more $.  A Good Thing Indeed.  However, on the other side of the fence, employers will look to hire staff at a lower cost. 

That is why should I hire you, when I can hire a much younger worker,  at a lower salary, with the same skills needed for the job as you posses? 

It's a classic case of employees want as much money as possible and employers to pay as little as possible. (within reason) This is true of any employment market.    However, for software development there is not much value placed on experience.  It's about specific skills are fleeting/transient.  For instance, a "senior" position often entail no more than 5 -7 years experience.  For other professions, that's a 2 digit #.

Additionally, that same younger worker is less experienced and knowledgeable about business. For instance they are often willing to work long hours, not know how to negotiate hirer pay, etc.  - unaware (yet) of all of the many rules of business and employment.

If you are just starting out, sure, be a software developer, but have your aim at starting your own software company or eyes at becoming a manager.
Lucky Lisp Send private email
Tuesday, June 03, 2014
 
 
"when I can hire a much younger worker,  at a lower salary, with the same skills needed for the job as you posses?"

In life, you get what you pay for. Your risk...
Ewan McNab Send private email
Tuesday, June 03, 2014
 
 
I was told by my tutor to avoid programming.

I have a problem seeing what career/job is not a commodity - surgeon? writer/novelist? illustrator? I don't have anywhere near the experience and smarts of all of you. I'm always willing to learn!
John li Send private email
Wednesday, June 04, 2014
 
 
@John li
There are very few jobs that can't be replaced by software and/or robots. We really just have to accept that and plan our lives accordingly.

In the words of Richard Buckminster Fuller: "We must do away with the absolutely specious notion that everybody has to earn a living. It is a fact today that one in ten thousand of us can make a technological breakthrough capable of supporting all the rest. The youth of today are absolutely right in recognizing this nonsense of earning a living. We keep inventing jobs because of this false idea that everybody has to be employed at some kind of drudgery because, according to Malthusian-Darwinian theory, he must justify his right to exist. So we have inspectors of inspectors and people making instruments for inspectors to inspect inspectors. The true business of people should be to go back to school and think about whatever it was they were thinking about before somebody came along and told them they had to earn a living."

http://en.wikiquote.org/wiki/Buckminster_Fuller
Scorpio Send private email
Thursday, June 05, 2014
 
 
Corollary to previous post: You might also want to follow @pmarca (Marc Andreessen) on Twitter. He has a lot to say on this topic and is always fascinating.
Scorpio Send private email
Thursday, June 05, 2014
 
 
Sure, it's true we can have a society where one group has to work and another group just has a nice relaxing time being supported by the working group, whom the other non-working group doesn't pay.

It's been tried before too. It's called slavery.

I sure as hell don't plan to be in the group of people working. I'll be in the group of people relaxing and having a nice time.

Who will do the work? The slaves. Why? How will they be selected? Will it be by race?
Scott Send private email
Thursday, June 05, 2014
 
 
This was in response to the "this nonsense of earning a living" theory.
Scott Send private email
Thursday, June 05, 2014
 
 
I guess a software developer career is a good choice only if you always stay on top of modern technologies. Once you get stuck you're dumped. Competition is getting tougher because sw development becomes simpler every year and nowdays even a mediocre developer with great ideas and trendy skills worths more for a company than an experienced workaholic with oudated skills. I understand that you feel offended by the management on your past job but strategically they did the right thing.
However that experienced workaholic may feel happy with his position because he has a wife, 5 kids and a dog and he needs steady income and a job without surprises, that's why the answer for your question is "It depends".
Dmitri Popov Send private email
Thursday, June 05, 2014
 
 
@Scott
If you are referring to the Buckminster Fuller quote, I don't think he was talking about slavery, or modern-day serfs.
Scorpio Send private email
Thursday, June 05, 2014
 
 
"I guess a software developer career is a good choice only if you always stay on top of modern technologies."

It's not a matter of guessing, but rather economic reality.  You can be on top of modern technologies and so can someone with much less experience and earning less.  You can have even more modern skills. 

However, it does not matter to the prospective employer.  They will choose the less costly option - that is the less experienced worker if their skills match what is sought by the employer.
Lucky Lisp Send private email
Thursday, June 05, 2014
 
 
+1 Jeremy.  What he said.

There are 3 benefits of being an employee, as I see it: 1) Steady, secure income.  2) When you're off the clock you don't carry the burden of the business with you, 3) Camaraderie of seeing the same people every day.

But like Jeremy said - #1 is pretty much gone.  Nothing is secure anymore.  Which brings #2 into question.  You may not carry the stress of running the company with you, but you may be stressed about losing your job instead.

Also, as you age, should you get laid off, it gets much harder to get a new job, at least in the US.  I've had multiple HR people tell me "off record" they don't hire people over 40.  So if all you know how to do is be an employee, and you get fired mid life - you may be SCREWED.

If you have your own business you have some control.  At the peak of the recession things got very scary for me - but I still had the ability to target more markets, lower prices, shift what I do, etc.  If I had just been an employee and gotten fired and could not find another job?  Yikes.

I would say though for someone starting out, it might be nice to start as an employee and build up some skills and network and get to know the market before striking out on your own, 

Also, to sell software obviously you need an idea and the ability to market it.
Emily Jones Send private email
Thursday, June 05, 2014
 
 
"I guess a software developer career is a good choice only if you always stay on top of modern technologies."

I think that there is a segment of people who only follow the most fashionable technologies. They can use the cutting edge languages and tools as good as anyone but then change to the new thing when it becomes hot.

The above quote applies mostly to them. They never build a deep understanding of anything. Sort of jack-of-all-trades.

For everyone else, learning about a particular language or two, in depth and building expert knowledge means that a company can't easily equate a cheaper fresh graduate to an older worker.

But it's fashionable to only think about the first case...

In many companies, they probaby tell the older programmer that they have to take less money because otherwise they'll hire the younger programmer instead. And they tell the younger programmer that due to lack of experience and seniority they have to take a lower salary.
koan Send private email
Saturday, June 07, 2014
 
 
"The introduction said that ...  it found that its applicants lack the programming experience and good academic qualifications found in those who applied many years ago."

The sad truth is that today's students take more short cuts when learning and expect to be spoon fed all the information.

Several years ago I was working as a demonstrator in a laboratory exercise for MSc students. To help them, I got a relevant book from the library so they could look up some of the theory. Some of them asked me to show them in the book - I told them to look it up themselves.

There has always been the situation that the previous students were better.

This goes all the way back to primary school; I remember my teachers constantly telling us we were the worst class they had ever had ;)
koan Send private email
Saturday, June 07, 2014
 
 
People have been complaining about the next generation for thousands of years (at least):
http://www.goodreads.com/quotes/63219-our-youth-now-love-luxury-they-have-bad-manners-contempt
Andy Brice Send private email
Monday, June 09, 2014
 
 
I think Jeremy made some excellent points here...

Now your question should be "is a career as an employee worth it"? Because if you give up the opportunity to earn big cash and yet get nothing in return for it - you still have the risk of uncertain income. Why should you then help make someone else rich?


Look Anon dude - You've made it!!! You are working for yourself making as much money as working for some company.  Roll with it!!!

About a year and a half ago, I stopped programming for the  Big Bank where I worked. I have enough "battle scars" that I'm interested in Process Improvement, etc.
Patrick From An IBank Send private email
Tuesday, June 10, 2014
 
 
Respect and salary for software developers seems to vary significantly based on location.

I was interested in relocating to the UK a while ago, but I was SHOCKED to find out how little my skills were valued there, especially given what the cost of living is.

From what patio11 says on his podcasts its worse in Japan.  Basically that in some parts of the world, software developers are thought of as skilled labour, like a mechanic.

Thankfully I live in an area that values these skills.  I don't even understand how they couldn't be valued given the value that I've been able to create for other people (e.g. I can prove that I generated millions of dollars in incremental revenue).

Even if they aren't valued by local employers - as software developers we have the ability to create something using just our mind, and sell it as many times as we can with next to zero production costs.  Compared to the average person, I think we're _much_ better off.

Plus, writing software can be a lot of fun.
Kremental Send private email
Friday, June 13, 2014
 
 
"I was interested in relocating to the UK a while ago, but I was SHOCKED to find out how little my skills were valued there, especially given what the cost of living is."

Yes, the UK is one of the most expensive places to live, especially around London, where most of the IT jobs are, but the rates are low. I've seen contract developer jobs advertised for less than minimum wage, which seems ludicrous. Anyone doing those jobs would be much better off working in Starbucks or McDonalds.
Scorpio Send private email
Monday, June 16, 2014
 
 
well when you are working for someone else things can go wrong for silly reasons like you have mentioned. It is always best to be having your own thing going-on as you might be offering a better solution to clients than the firms you were working for due to their management of the processes. Plus you are the boss for yourself and you call the shots.
Designsolv Send private email
Wednesday, June 25, 2014
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz