Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

This should probably be in a Dear Abby column, nevertheless...

I am the only engineer in my entire family (including extended family). Occasionally I hear family members say that being a Software Engineer is not as hard as say a UPS Driver. While both may work the same hours, intrinsically the SW Engineer job is rated as less difficult than the other. The general consensus is that we just sit in front of computers all day with some occasional meetings. I feel that being a Software Engineer is not physically demanding but mentally draining.

For those that have encountered this line of thinking before, what is the best way to convince your friends and family otherwise?

Edit: My Wife told her Mother... I am tired after work and don't want to be running errands... her Mother said that I am in an office all day on a computer, how can I be tired.

Side note: I am also an Army Reserve Officer, member of my city's planning commission, and a freelance blogger for my local newspaper. Plate is pretty full aside from being a SW Engineer - BUT, the notion still remains with the family that being a SW Engineer is nowhere as difficult as being an UPS Driver, which my brother-in-law is currently employed as.


locked by maple_shaft May 10 at 12:33

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

closed as not constructive by Mark Trapp Jan 27 '12 at 0:29

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Weird, most people I run into, including family tend to think that being a SE is incredibly complicated and difficult. I am not sure if they grasp the pressure I am usually under, but most tend to say something like 'wow, i am glad someone can do that kind of thing' ... I did work at a company that disrespected their engineering department for a bunch of childish political reasons, I'd bet something similar is going on with your in-laws. –  aceinthehole Jul 12 '11 at 20:48
Don't argue. Just agree. "Yeah it's waaayyy easy, and you should see what they pay me! I don't know why you would drive a truck for a living?" –  Ryan Jul 12 '11 at 21:25
The argument was that by that logic the President has an easy job too, since he just holds meetings and signs some papers. –  jhocking Jul 12 '11 at 22:06
Commenters: 0A0D opted not to incorporate any of the feedback received in comments back into his answer, and they were cleaned up. Comments are for getting questions clarified, not for extended discussion: if you want to discuss the topic of this post, please do it in chat, not here. If you have an answer, leave it as an answer, don't post it as a comment. –  user8 Jul 12 '11 at 22:19

29 Answers 29

up vote 196 down vote accepted

I hear family members say that being a Software Engineer is not as hard as say a UPS Driver... what is the best way to convince your friends and family otherwise?

Don't bother - you can't do it. People who make those kinds of comparisons usually are trying to make themselves feel better about something, like the fact that you make more money than they do. It's just an adult veneer over what induces one kid to punch another because the second kid gets better grades. And because you're striking at their self-esteem, the harder you try to prove them wrong, the more they'll dig in their heels.

If I were you, I'd try to turn the conversation in a better direction... for instance:

I don't know which is harder - I just figure anybody who does their best at a job that needs doing deserves respect. But say - I'll bet you run into a lot of crazy stuff on your UPS route, like naked ladies answering the door. You ever run into anything like that?

Pretty soon you'll be huddled over a couple beers and hearing really funny stories. And when somebody remarks about you to your UPS driver relative, they'll say, "Well, my cousin 0A0D may be a geek, but he's a damn fine geek."

A clarification by the OP: "[M]y Wife told her Mother... I am tired after work and don't want to be running errands... her Mother said that I am in an office all day on a computer, how can I be tired"

This is way, way outside of programming and into normal human family politics... anyway, I've seen this kind of thing happen so many times...

  • Mom: Honey, every time I call, you're not home.
  • Mrs. 0A0D: I'm sorry I missed you, but I had to do the shopping yesterday, and take the kids to camp today. These errands drive me crazy!
  • Mom: Aw, sweetie... why doesn't 0A0D run some of the errands?
  • Mrs. 0A0D: He'd love to, Mom, but he's really exhausted after work.
  • Mom: Exhausted? That lazy bum! All he does is sit in front of a computer all day!

Mom is worried her child is being taken advantage of - it's a normal primate reaction. And since you're the lazy bum husband, anything you say will automatically be seen as self-serving.

The only person who can change Mom's mind is her daughter, Mrs. 0A0D - which she can do by constantly repeating "It's okay, Mom. He does work really hard. I respect him enormously. He takes great care of our family." If she means it, eventually Mom will come to respect you, too, even if she doesn't really understand how sitting at a computer all day can be exhausting.

Yep, this is one for Dear Abby. :-)

I've realized there's yet another factor here. It's 0A0D's brother-in-law who's the UPS driver - e.g. presumably Mom's son.

So it's possible Mom is thinking, "My son works hard driving an carrying packages and is making squat." Of course she wants to think well of her son, and hears this 0A0D who makes way more money is too tired to run errands, so of course she's upset.

I'm not saying this is the case - it just might be.

What I am saying is that navigating human relationships is like making your way through a minefield where you have no way to know the location, triggering mechanism, or explosive power of the mines. If your algorithm for doing that doesn't include a lot of caution, finesse, and careful testing, you'll be lucky if you only get your foot blown off.

@0A0D well then the issue here isn't really about how hard your job is, but rather your mother-in-law suggesting he's a better husband than you are. You really should have spelled out all this context in your original question, because that makes it a completely different question. –  jhocking Jul 11 '11 at 23:14
@Surfer513: Right on the money. I actually do believe that anybody who does their best at a job that needs done deserves respect. I once talked with a mentally retarded guy who was busing tables at the Old South Pancake House in Fort Worth Texas. He was working really hard to make a good life for himself, earn his own living, have friends, stay in his apartment and not wind up back in the home as a burden on society, and do the best job of table cleaning he could do. Thirty years on, I still admire that man and wish him well. –  Bob Murphy Jul 12 '11 at 3:18
eeeeehhhhh, actually I'm going to argue against this one. It's dodging the issue. For the extended family you only see once in a while, sure, being non-confrontational is good solid advice. But for the mother in-law or other close family? That mentality is going to fester. If you love them, teach them. If you don't, then sure, let them languish in ignorance. –  Philip Jul 12 '11 at 15:27
@Philip: You're right that someone has to tackle the mother-in-law somehow or things will go south. But my experience is that until Mrs. 0A0D's family respects him, 0A0D won't be effective at dealing with them, and it has to be Mrs. 0A0D who defends 0A0D against her family members dumping on him. If they can work as partners on this, all will go well - but if she won't stand up for him when he isn't doing anything wrong, it bodes ill for the marriage. –  Bob Murphy Jul 12 '11 at 16:02
@Dunk: I'm all in favor of a balanced life and putting your family first, which is why I no longer will work for startups. But I'm assuming 0A0D is being honest in his assessment of the situation, and my experience is that otherwise-reasonable people can be really crazy around the folks their children partner with. I've seen several marriages break up when one partner was acting perfectly reasonably, but was unfairly attacked by in-laws with an agenda, and the other partner wouldn't defend them. –  Bob Murphy Jul 12 '11 at 18:44

Having worked physically demanding jobs and the more mentally draining software engineering job I can say with 100% certainty that software engineering is far more demanding. I only need 1 point to prove this fact. In the physically demanding job, you get worn out during the day, you come home forget about work, lie on the couch for an hour and you are good as new.

OTOH, spend a few months trying to get a product delivered under a very tight schedule, you can't go home and forget about work, you can't just lie down on the couch for an hour and be good as new. In fact, many times it might take a few months lying on the couch to get the same recuperative affects.

For those who cope poorly, it can take a few years lying on that couch. I've known many of those people who go back to those physically demanding jobs for years in order to recoup from being mentally burned out by the software engineering job.


Use a comparison.

Ask them to sit down and write a novel. It should be trivial since they only have to sit and type or scratch on a notepad while downing a Venti Mocha Frappuccino.

This. Asking them to write a program themselves (@Ryan's answer) won't really prove anything, since they don't have the years of training and experience you have. Writing a story is something everyone "knows" how to do. –  BlueRaja - Danny Pflughoeft Jul 11 '11 at 22:29
I think maths is a better analogy. When people ask me what working as a programmer is like, I say it's like doing maths all day long. To most people, who hated maths at school, that sounds like hell! :-D And immediately gives them a helluva lot more respect for programming work. –  TrojanName Jul 13 '11 at 11:03
@Aaron McIver The point isn't that its like math, just that the only thing comparable to the kind of applied abstract thinking developers do all day that the average person would have first-hand experience with would be doing math. –  Jeremy Jul 13 '11 at 14:28
I'm trying to imagine how you could do any sort of programming at all without abstract thought. Maybe we are thinking of different meanings of abstract, but in the common usage (and mine) pretty much all programming requires this. –  Jeremy Jul 14 '11 at 13:38

I would say that the best way is the "walk a mile in their shoes" approach.

  • Step 1: Sit them down at a computer and tell them to lay $20 of their money on the table and you lay $20 of your money on the table (or whatever you feel after you read the other steps).
  • Step 2: Open up two things for them - an IDE and a web browser (start at Google.com).
  • Step 3: Tell them to build you a desktop application that lets a user enter todo items in a list and delete them. Doesn't matter the order or reordering, just that you can add them, display them, and delete them. You don't even have to edit them!
  • Step 4: Tell them this needs to be done in 4 hours or they are fired. That should be plenty of time since this is an easy assignment in an easy field!
  • Step 5: If they complete it in half the time, they get the $40 (A raise! Great success!). If on time, everyone gets their money back (all in a day's work), and if late, you get the $40 (AKA tossed out on the street you lazy bum!). This should add a little fun and represent how hard you have to work and how tough it is to program under pressure sometimes.

Note: I'm only partially kidding, but letting them struggle and then adding to that the pressure of losing your job if it's not done will hopefully let them see the other stressing side of development, the one (of many aspects) that makes it hard.

Funny, your "walk a mile in their shoes" approach has nothing to do with walking a mile in their shoes and everything to do with them walking a mile on your shoes. How about spending a day loading the UPS truck, driving all over town, and unloading one box at a time. –  Justin C Jul 11 '11 at 20:12
@Justin C: There's no denyin' a UPS driver's job is demanding. I don't think anybody is saying a UPS driver's job isn't. The question is more to the fact that a software dev's job is easy. People who don't know what a developer does will think we don't do much because it doesn't "look" demanding. A UPS deliverer's job is "obviously" demanding because we can see them lifting super heavy packages and delivering them to us. This could easily be flipped like you're saying, though, and have the dev deliver huge weights to waypoints throughout the city. –  Ryan Hayes Jul 11 '11 at 20:26
This approach just seems to me like a good way to make them not want to spend time with you anymore. –  jhocking Jul 11 '11 at 20:37
@jhocking: Having someone tell me my job is easy all the time and making fun of my job by comparing it to a truck driver would make me not want to spend time with them either. :-/ –  Ryan Hayes Jul 11 '11 at 20:56
@Justin C According to the idiom, the one doing the criticising is normally the one to have to walk a mile in the other's shoes. In OP's situation, the Software Engineer is being criticised, therefore it is the software engineer's shoes that must be walked in by the critics. –  Paul Butcher Jul 15 '11 at 10:47

Print out all the code behind a program and toss it on the table when they say that and ask them what it does or to find a bug.

Or maybe just agreeing that their jobs are demanding too is all you need. They may be looking for respect for what they do and belittle you because they feel you demean them.

After further clarification by the OP: We are all tired after work. That doesn't exempt us from doing errands or housework. The burden of housework and errands falls disproportionally on women who work every bit as hard as men and who statistically work many, many more hours at home than their male partners.

Your Mother-in-law is saying that you aren't pulling your weight in the relationship not that your work isn't difficult and stressful. Ask yourself honestly how many errands your wife has to do after work when she is tired than you do. Ask yourself if you sit at the computer at night or watch tv while she does child care, makes dinner, cleans the house and does the cooking and dishes. Ask yourself if you really want her to leave you because you are expecting better treatment than you give her. Do you feel your time and energy are more valuable than hers?

+1 for your second paragraph about respect and acknowledging the value of others. –  jprete Jul 11 '11 at 21:27
@Brian Fenton, they aren't issues for children either. It's time for this guy to grow up and contribute something other than money to his family. Too tired to do an errand. That's about the stupidest excuse I have ever heard unless he is working til midnight every night (and not by choice). I'll bet he isn't too tired to play games on the computer or do personal programming projects or watch tv. –  HLGEM Jul 13 '11 at 14:00
@HLGEM well in fairness to the OP, I think you're making a lot of assumptions here. It could have an excuse his wife was giving her mother to avoid a social obligation. From his other comments, he seems like a hard working guy. –  TrojanName Jul 13 '11 at 14:17

"Thinking is the hardest work there is, which is probably the reason why so few engage in it." ~ Henry Ford

Software Engineering has few if any physical demands, however the mental aspect can be very demanding; How many times have you laid awake at night, trying to solve a particular problem? I doubt that UPS drivers have this type of problem.

(No disrespect to UPS drivers intended, they just deal with different types of problems)

Maybe they mull over their package lifting technique? –  TrojanName Jul 13 '11 at 11:09

...what is the best way to convince your friends and family otherwise?

Work hard and make your first $million. At that point, your family may be sufficiently impressed that they'll leave you alone. Or, they may not. Either way, you'll have a million bucks.


Occasionally I hear family members say that being a Software Engineer is not as hard as say a UPS Driver.

At this point I'd be tempted to ask them, "Who do you think gets paid better by UPS: The driver or the programmers that wrote the software that tells the driver where to drive on a given day." If they don't think it's hard to write software, just ask them to optimize the routes a fleet the size UPS has with all their daily traffic and watch the eyes roll or glaze at some point in going through all the details that one has to watch out in building something that most people wouldn't even consider a problem.

This reminds me of a joke where a surgeon and a car mechanic are discussing the big differences in their salaries. The mechanic says, "Hey, we both do basically the same thing of taking something out and putting in a new one, right? So why is there such a different in how much we are paid?" The surgeon replies, "Try fixing a car engine while it is still running."

I can relate to some degree as my family tends to think what I do is, "work with computers," that more than mildly irritates me. If I could just get them to say I develop software I'd have made some progress.

but the car mechanic needs to keep up with newer models, not so with the surgeon ;) –  aldrin Jul 12 '11 at 5:14
the surgeon only needs to keep up with the research and the latest techniques. –  Ferruccio Jul 12 '11 at 13:58
Not only that, but perform perfectly hours on end with a human life at stake. –  Nailer Jul 13 '11 at 10:15

I am the only engineer in my entire family (including extended family). Occasionally I hear family members say that being a Software Engineer is not as hard as say a UPS Driver

What does "hard" mean in that sentence?

  • if it means something like "fewer people can do it", then obviously programming is harder. I haven't met many programmers who can do it too well.
  • if it means "physically harder", then UPS driving is harder. There's no actual lifting in programming.
  • if it means something like "more intellectually challenging", ... well, that's probably not what they meant.
  • if it means something like "more exhausting", then it really depends on the person - some people might find "sitting in front of a computer" extremely boring and tiresome, and the other way round.

(I'm sure there are more possible meanings)

The point is: your argument is probably not about programming or UPS driving. It's about what you mean by the words "hard" or "difficult".


I think your question is fundamentally flawed, and I'll explain the reason.

Your family isn't jabbing you because they think fundamentally that UPS is harder than being a programmer. That's a side concern that came to their minds later to support their main idea. The main idea is that EVERYONE is tired after a long day, and that it seems unfair to them that you're not more helpful to your spouse, despite both of you being tired.

In that context, trying to "prove" to them that programming is just as hard (or harder) than what XYZ family member does, is utterly beside the point. Take it for the critical suggestion that it is, and decide what to do to answer their main concern. If you don't approach the situation this way, and simply react to the direct line that they're coming in on, you're only going to create friction, and the sense in their eyes that you're tone deaf.

I'm not going to tell you the "right" way to deal with that critique, but you should adopt a different way of thinking about criticism that doesn't look at the argument being made, but rather the motivation behind making it. Answer that critique instead of trying to prove that your job is hard.


Don't let it bother you. Opinions like that are just that - opinions.

One of the things I do for fun is the computer part of charity auctions, for which I wrote the software.

The other people who work on the auctions hold me in awesome respect, because I'm such a "guru".

The truth is, I feel the same way about them. They've spent many months calling people, knocking on doors, asking for donations, managing volunteers, orchestrating advertising, printing, mailing, decorating, getting food - on and on. I can't imagine doing what they do.

So if somebody thinks their job is harder than yours, maybe they're right, maybe not. In any case, there's nothing wrong with it; it's called self-respect.


Realize you aren't going to convince them. People rarely get convinced in arguments.

However, it depends on what you mean by "hard". More difficult to learn how to do a job? I'm pretty sure if you did a job swap for a week, you could drive a truck, lift, scan and deliver packages, but they couldn't write/maintain source code. One job takes hours to learn, one job takes years of advanced learning/on-the-job training.

Hell, even if they swapped into a job as a software engineer, its not until they're well into the job will they truly get how hard it is to do the job. When you fall behind, the amount of projects/maintenence starts piling up, deadlines rush towards you, you have to deal with shifting feature sets, and that intermittent bug keeps reappearing while three groups keep interrupting you about quick fixes on their project which is more pressing than all the others, etc.

Depending on your hours, you may be able to say argue about hours put in at work (e.g., I assume the UPS driver likely does a 40hr week (why would UPS pay overtime); its typical for software engineers do a 50-60 hour week).

But I think most would agree that UPS driver is "hard" in the sense that the job is tough, not a particularly cushy job, and doesn't have a lot of upside. Do you have an opportunity to excel? Frankly, no -- you're expected to easily do your job so all you can do is screw up. Do you have a higher chance of injuring yourself on the job (back injuries from lifting something incorrectly over the years), or losing your job when you get older, or just being bored shitless in the same old monotony at work? Yes. Can you tell a member of the opposite sex what you do with any sort of pride? (You're a programmer? Think: You must be smart; they'll be able to easily provide for a family; they're working in the field towards the future. You work at UPS? Thinks: Well at least they have a job at the moment.)

The other thing is that at low-end jobs, its much easier to overtly treat employees like shit. They'll have no problem firing someone on a whim or deducting your pay for being stuck in traffic, or any silly thing. Granted at high-end jobs your higher-ups can make your life even worse by ridiculous requirements that you'll have to overwork yourself to finish; but if you get your work done and are good at what you do, typically they'll value you and treat you very well. E.g., high pay, bonuses, travel stipends, let you work from home, freely browse the internet at work, work on side projects, freedom to set your own hours, get free food/coffee/snacks, good toys, nice desk, freedom to socialize with coworkers, etc.


Obtaining the skill set software engineering demands is much harder than the required skill set of a UPS driver. In addition, the ROI of employing a single software engineer is MUCH higher than a single UPS driver.

Everything was going along well until the ROI reference; not sure I can agree with that one. –  Aaron McIver Jul 11 '11 at 18:57
The ROI arg completely depends on if you need a driver or a programmer. –  Michael K Jul 11 '11 at 19:10

Sitting and thinking in front of computers isn't just mentally draining, it can be physically destructive in a less obvious way.

For software engineers, bad habits include the potential combination of bad posture (slouch and/or RSI), bad diet (pizza? catered meals? soda?), and lack of exercise from sitting in one place for more than a single shift of work in a day.

Most software engineers don't work in union shops where required breaks are timed and enforced, or where overtime is compensated at a guaranteed rate.


Given the context in your comment:

It arisen lately because my Wife told her Mother that, in relation to another situation, that I am tired after work and don't want to be running errands after work. Which her Mother said that I am in an office all day on a computer, how can I be tired.

...it is undeniable that a UPS driver has a physically more taxing job than any kind of knowledge worker at a desk. You mother-in-law is a beautiful woman who spent her best years raising her own family and is only thinking about the absolute best for her daughter. I.e. we all know you're right, but there's no need to complain back.


The goal is not to get the hardest job, the one that pays the most or the most prestigeous, but to get the one that is the most challenging, meaningful and ultimate makes you the happiest

For someone that's being an UPS driver, for you it's hopefully being a software engineer. No one can tell you what you want to do with your life and it's not your job to convenience them that your right. Just tell them it what makes you happy.


This is the classic problem of people trivializing something they don't understand. It happens all the time, from the demonization of rock music to the denigration of video games as "not art" to the belittling of the internet as a fad.

The best response is by analogy. Point out that software engineering is knowledge work that requires creativity, skill, and talent. Point out the similarities to physical architecture, physical engineering, writing, etc. People who engineer automobiles work in offices and sit at computers most of the time, but their jobs are nevertheless demanding. Every component of the car has to work together correctly, down to the tiniest detail. Software is no different. It takes a lot of effort to create a program that simultaneously matches customers' needs, is highly usable, is maintainable, has limited defects, has sufficient performance, etc.


Software engineer can't be tough. Craftsmen have a tough job!

Perhaps, I agree. But let me ask you: Do you remember when in school you had to take tests? Say, in maths?


Do you remember the length of the test? Was it not like 30 minutes up to 2 hours?


Was it exhausting to you?


Now imagine you have to write such tests not only 2 hours, but at least 8 hours a day, 5 days a week, roughly 48 weeks per year. (actual times depend on your locality)

That would be tough!

The basic difference between school tests and our job lies in the dimension of the exercises.

Upon hearing that, the craftsmen was enlightened.

Craftsmen have a job that is tough on their body. And software engineers and programmers have a job that is tough on their mind!


The appropriate response depends on why they're saying that. You need to tell that to us (or first figure that out). For example, are they curious why a software engineer makes more money when the UPS driver does more work? Are they UPS drivers and trying to prop themselves up by belittling you?

Or, well, what you explained in comments:

@jhocking: It arisen lately because my Wife told her Mother that, in relation to another situation, that I am tired after work and don't want to be running errands after work. Which her Mother said that I am in an office all day on a computer, how can I be tired

Thanks for the clarification. In that case I would suggest patrick's reducto ad absurdum about how easy the President's job is. That is, ask her "Do you think the President is too tired to run errands after a day of work? Because all he's doing is holding a bunch of meetings and signing papers."

However don't bother with mentioning ditch diggers or coal miners, because in the situation you describe that would just be bolstering her logic. By "harder" what you're talking about is how tired you feel after a day of work, so yeah coal miners and ditch diggers do go home pretty tired.


She's right. Our job is less difficult and more rewarding than manual work. Unless you've got a very crummy job, you've got better pay, better conditions and more respect. If you haven't got those things, there's nothing stopping you finding a job where you do have them, providing you're any good at what you do. It may be mentally draining sometimes but it is also creatively and intellectually stimulating. I'm a software engineer who's had lots of "UPS Driver" type jobs.

I'm a part-time solar installer, which, seeing as how most of the installations that I've done were performed in May-Aug in Texas, is a job that puts "UPS driver" to shame. As brutal as solar installation is (dealing with 150-160F surfaces, 115-130F air, etc.), it's still easier than having a programming job that requires you to learn and read a large amount of information on a daily basis. If all you do is make easy programs, sure, it's easy... but if you have to deal with complicated stuff that you don't understand, and you have to read 200 pages a day, it's rough. –  Michael Jul 13 '11 at 11:01

Ask if anyone would be willing to take part in a challenge -- all they have to do is play a video game all day.

Download an NES emulator and the Ghosts & Goblins ROM, and tell them to play it 8 hours straight. They'll be wanting to give up in 30 minutes. Tell them that they can talk to you about how "easy" your job is when they can play the game for 8 hours without crying.


Compared to a UPS Driver's job, most other jobs are "harder". For most of their day they sit in an air conditioned cabin turning a wheel and pressing peddles. Every so often they have to do some light, and occasionally heavy lifting. They occasionally have to deal with irate customers, but for the most part people are happy to see them. There are tons of jobs that involve considerably more physically intensive labor, more emotionally draining customer interactions, heavier mental effort, more danger to life and limb, or a combination of those. Your job may be physically easier, but I doubt the mental taxation is.


Explain that your getting paid for your knowledge and thinking ability, not how much physical effort your exerting in your daily tasks.

I worked at target and a golf course before I finished my Degree and became a Software Engineer and I'll admit those job were physically demanding 10 times over.

But not everyone can do what we do.

How do you prove that? Everyone wants a good Salary and Job security, but why isn't everyone becoming a Software Engineer? Same reason everyone isn't a Doctor, Lawyer or an Astronaut.



Everyone have what are called "Blind Spots" in their perception of the world. People are equipped with the talent to either create Google or even Waste Management. Both are not directly more difficult but are both very important and requires different set of skills.

Software engineering, in super simplified version, is responsible for creating software responsible to handle mental and computational task for people accurately with the least amount of resource. Good examples are Flight control systems in Airports to MRI 3D mapping to solve Medical problems in Hospitals or research institutions.

The responsibility in labor intensive roles like UPS Driver or even a Mechanic are just as important and respectfully difficult. Imagine you are the mechanic for the President of United State's vehicles or even the first-respond HUMVEE for troops over seas. But we need everyone to really make things work effectively, ie the SE who designed the navigation system on the HUMVEE or the encryption algorithm to protect the communication onboard Air Force One.

All these answers bring very good defense to software engineering, or any engineering or software related occupation. But I think the reason why you ask this question isnt to win a debate but rather reduce ignorance and present the integrated importance of Software Engineers.


Who cares whether any particular job is "harder" than another?

Companies pay good money for software engineers because there aren't enough people with the necessary ability, attitude, and knowledge to do that job well.

They pay less to get someone to man the checkout till at the supermarket because there are more people who can do that job at least "well enough".

As it happens, over the past 30 years I've rarely actually worked in an office. Mostly I've worked from home, starting and finishing when I feel like it. Some people think that means my working life has been 'easier' than theirs. But the fact of the matter is I have often worked far into the night, or been unable to stop thinking about a job even several days into a family holiday abroad. No-one ever really knows how hard (or easy) another's life is.


You are not a Software Engineer. You do not build skyscrapers. You do not build bridges.

You grow gardens.

You are a Software Gardener.

Do you try to plan your gardens in such detail that you know where each leaf will be positioned before you plant a single seed? Do people expect estimates (or are they promises in your organisation?) on exactly how many flowers will have bloomed in one years time? Do you have a bonus tied to that? Things that would be perfectly reasonable to plan for a skyscraper seem a little ridiculous when you are talking about a garden.

You probably have a good idea of what your garden should look like a week into the future. You might even have a rough idea of the shape you expect it to be in a year from now. But you have no idea of where each branch, leaf, stem and flower will be a year from now, and if you say you do then you’re really only guessing.

If you were building a bridge or a skyscraper and you told me, before you began, that you knew exactly how it would look when it was finished – I would believe you. If you told me that you knew to some insane degree of accuracy how long it would take to get to ‘finished’ – I would believe you again. That’s how Engineers roll. Tell me the same thing about your garden and I’m gonna call bullshit. Tell me you are going to make it grow faster by hiring more gardeners and I’m gonna laugh at you.

So why do so many gardens fail, yet so many skyscrapers succeed? With a few exceptions, the technique for building a skyscraper is similar whether you are in Europe or you are in Singapore. Gardens do not work that way. Every garden is different because the environment it is in is different. Even gardens that are within throwing distance of each other can have wildly different soil. That is why the lowest bidder can probably build the same bridge as the highest bidder, but your company can’t grow the calibre of gardens that Google can grow.

Remember that time when someone in your company unsuccessfully used an Agile gardening methodology, and then went around saying that it was horse shit that doesn’t work? Well horse shit does grow gardens, it just wasn’t enough to save your garden. Your garden was probably dead before it started – a victim of the climate of your organisation. Were you trying to grow a rainforest in the desert? You can’t just plant the same plants as Facebook, Flickr or Twitter and expect them to take root regardless of the quality of your gardeners or the climate of your organisation.

Unlike a skyscraper, your garden will grow weeds. It will never be ‘finished’. Just because you stop spending money on it doesn’t mean it is finished. If you stop weeding your garden the weeds will eventually smother it, and soon a re-plant will look easier than a pruning. The environment around your garden will also always be changing, and a neglected garden will become harder and harder to keep alive.

In most countries, Engineers need a license to build a bridge. Gardeners have no such government-mandated quality control. Unfortunately, the quality of your gardeners is going to have a bigger influence on your gardens success than any other factor – so you’d better be good at picking the wheat from the chaff. Only an experienced gardener really knows another good gardener when they see them. Someone who has merely managed gardening projects will have no idea what they should be looking for (though they won’t know this). So if you are not a gardener, but need to recruit good gardeners, then quickly find an experienced gardener you trust to vet your candidates. You can’t learn gardening in a classroom, so remember to focus on gardens your candidates have grown before, rather than how much gardening theory they learned at school (which nearly always won’t be applicable to the climate you are growing in anyway).

The engineering metaphor has had its time in the sun, and maybe it even used to be accurate, but now it really only serves to help non-technical people have unrealistic expectations about how software gets built.

I am a Software Gardener.

So are you.



Yes, this is a common notion among all people. Whether or not, it is true, always remember to respect what others do and thats a character. I'm a software engineer and I work hard everyday at office. When people say that they work harder in front of me, I do respect what they are doing and try to understand the difficulties in their job. I always place myself in their shoes and try to see if I can do their job very well like they do. Finally, remember this, being humble doesn't mean you are a loser.


If a driver screws up a few people don't get their packages on time. Company pays a few hundred dollars to customers.

If the programmer that wrote the software for the sorting system screws up, no in the world gets their packages. How much do you think this will cost the customer.

Now lets talk about chemical plants, nuclear power plants, air traffic control systems, 911, or worst of all, the company that does your paycheck each week.

-1, in at least a few ways. A: We're not all writing software for nuclear power plants - some of us are writing applications like "which Muppet are you?" - if that programmer screws up, maybe someone is told they're Miss Piggy when they should have been Rowlf, it's not the end of the world. B: people who write mission-critical software do screw up, but the consequences aren't always so severe. For every medical device that emits too much radiation due to programmer error, there's several programmer errors (in the same device) with the only consequence that a service needs to be restarted... –  Aidan Cully Jul 11 '11 at 21:06

The thing is, people in general don't like to think, use their heads, or check a problem from different viewpoints. That's why most of the "outsiders" think our job is a dream job. That's why a small minority of people (the herders aka oligarchs, scientists, etc.) drive our economy, R&D and politics. If people would want to use their heads this could have been a much better world, and the USA politicians couldn't amass a 110 percent deficit and we wouldn't be in an economic depression.


Not the answer you're looking for? Browse other questions tagged or ask your own question.