Stories
Slash Boxes
Comments

News for nerds, stuff that matters

The Life of a Software Engineer

Posted by ScuttleMonkey on Monday February 04, @01:54PM
from the code-as-an-art-form dept.
Jonathan Wise writes to share with us an interesting bit of prose describing life as a software engineer. "I am, in the States, known as a Software Engineer. In Canada we're not allowed to call ourselves engineers, although the discipline is no less rigorous than any other kind of engineering. But perhaps its for the best, because 'engineering' describes only a part of what I do. A software developer must be part writer and poet, part salesperson and public speaker, part artist and designer, and always equal parts logic and empathy."

Related Stories

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.

The Life of a Software Engineer 25 Comments More | Login | Reply /

 Full
 Abbreviated
 Hidden
More | Login | Reply
Keybindings Beta
Q W E
A S D
Loading ... Please wait.
  • Life of a software engineer? (Score:5, Funny)

    by Bob McCown (8411) on Monday February 04, @01:58PM (#22295088)
    Life? We don't have a life!
  • No less rigourous? (Score:5, Funny)

    by Chris_Jefferson (581445) on Monday February 04, @01:58PM (#22295104) Homepage
    although the discipline is no less rigourous than any other kind of engineering

    Oh? Your wall has fallen down? That just seems to happens sometimes. Well, just push it up, go outside your house and come back in. Hopefully it won't happen again.

    • Re:No less rigourous? (Score:5, Insightful)

      by nonsequitor (893813) on Monday February 04, @02:28PM (#22295722)
      Sure, make light of the industry. I've been writing safety critical software for the last 7 years. You can thank the software engineers that wrote the fuel injector firmware for the turboprop on your plane for properly engineering it to always work. And while you're at it the software engineers who wrote the code running the life support systems in the ICU also deserve some props.

      Not all of us work in a fault tolerant environment. Because we do our jobs well, you don't hear about the latest scandal on Slashdot. This would explain the lack of articles about software bugs causing airbags in Ford cars failing to deploy. I know you were just joking, but to some of us, software engineering is serious business.
      • Re:No less rigourous? (Score:5, Insightful)

        by kidgenius (704962) on Monday February 04, @02:23PM (#22295618)
        Interestingly enough, that first one sounds like something in the computer is messed up....hmm, software maybe?
      • Re:No less rigourous? (Score:5, Interesting)

        by dmatos (232892) on Monday February 04, @02:29PM (#22295738)
        And the Engineer who stamped the plans before construction began is now personally liable for all the damage caused. That is the difference (in Ontario) between someone who is an Engineer, and someone who just calls themselves one (illegally). That person has probably been stripped of their certification, and can never work as an Engineer again. There are responsibilities associated with being a Professional Engineer, and penalties should those responsibilities not be met.
        • Re:No less rigourous? (Score:5, Informative)

          by WGR (32993) on Monday February 04, @02:49PM (#22296038) Journal
          Dr. David Parnas actually succeeded in becoming a Professional Engineer (P.Eng) in Ontario as a "Software Engineer". He showed that there are rigorous ways of designing software so that the tenets of engineering safety can be upheld.

          So yes you can be a software engineer in Canada. But not by getting a cereal box certification from Microsoft. Perhaps graduating with a degree in Software Engineering from a University like Waterloo or Toronto, which do have software engineering courses.
          • Re:No less rigourous? (Score:5, Informative)

            by Beardo the Bearded (321478) on Monday February 04, @03:01PM (#22296330)
            That's what I came in here to say.

            You CAN be a Software Engineer in Canada. You just have to get a Bachelor's Degree in Engineering (or similar) with Software as your discipline. Then register with your appropriate body (APEG-BC in British Columbia) and there you go. The University of Victoria offers a B.Eng. in Software Engineering. For the first four years after graduation, you can call yourself an Engineer In Training. After that, you can get your seal and stamp as a Professional Software Engineer.

            In other words, yes, you can call yourself an Engineer. Just not after mailing in box-tops to MS.

            (I'm an EE. (in Training) )
      • Re:No less rigourous? (Score:5, Insightful)

        by mrchaotica (681592) * <mrchaotica.yahoo@com> on Monday February 04, @02:34PM (#22295794)

        Many millions of dollars later in court, it was verified that the Engineer f'ed up the plans and the construction crews were not at fault.

        You just proved his point! There was a huge court case, and it was verified as to which party was at fault. The Engineer might have lost his license over it, too, if the damages were that high. So yes, that's the difference: the Engineer was held accountable.

        But software is different, for some reason. For example, do you see that happen with Microsoft? Hell no! If Microsoft were held accountable for its software like Engineers are, the company would have been sued into oblivion and Bill Gates would be in jail for gross negligence. And so would the responsible parties of every other software company.

        • by Lost+Found (844289) on Monday February 04, @02:52PM (#22296090)
          But software is different, for some reason.

          Two reasons. 1: the warranty disclaimer. Like it or not, "NO WARRANTY" is stamped on to the licenses of commercial software because software consumers don't want to pay the higher cost that would be demanded if a warranty were provided. SLAs do exist, but SLAs cover services. The market is willing to pay for SLA on services, and the whole system works, even if it's not quite as perfect as we might dream.

          The other big reason is that a blue screen of death doesn't result in actual death. If you're building homes or highways, you have human life in your hands, and holding you accountable for negligence seems a bit more appropriate. If you're building door locks for the home and a burgular manages to pick it, holding you accountable for negligence is ridiculous because you never promised the lock couldn't be broken. If you're building the home's foundation and it cracks, you still aren't held liable unless you warranted that the foundation wouldn't break. And you wouldn't do that unless you could afford to fix it if it did.

          Simple economics. The market has supplied what the consumer has demanded. But some people get these ridiculous ideas about licensing software developers or enacting liability laws when there is NO risk to human life. They try to draw comparisons to disciplines where there are, then gloss over the details. Under even the most brief analysis, the argument doesn't hold water.
          • by AutopsyReport (856852) on Monday February 04, @03:18PM (#22296630)
            I would argue that software is different for other reasons. Most software developers/companies cannot be held accountable because changes in the industry are beyond their control.

            For example, when engineers design and build, they have to contend with a variety of concerns. Most of these concerns are calculable, limiting, and realistic. As a simple example of the forces of nature, wind power is calculable and only occurs within expected limits. Things are built to withstand extreme winds. But there is a threshold -- we don't build to withstand 5,000mph winds because we know it just won't happen. Wind is wind, it increases or decreases, nothing more.

            Software, on the other hand, has the problem of dealing (or not dealing) with unknown circumstances. Developers cannot know that in five years, the platform their product was built on will be obsolete and unusable. Products come and go daily, and support for these products fade just as quickly. Hardware also changes on a daily basis, making it impossible to stand behind your product, the same way an engineer does his. There is no professional obligation for software developers because there are so many unknown variables that come into play.

            Here's another way to look at it using the bridge example. If an engineer 50 years ago built a bridge to support the horse and buggy, not knowing that the invention of the modern-day car was on the horizon, he cannot be held accountable for the bridge's collapse under the weight of multiple vehicles.

            This is akin to software development. Developers cannot predict the future, consequently cannot plan for it, and ultimately therefore cannot be held accountable for it's failure. Also... The other big reason is that a blue screen of death doesn't result in actual death.

            Actually, depending on the context software is used in, it can quite quickly result in death. Planes and automobiles come to mind.
      • Re:Yeah, right! (Score:5, Insightful)

        by russotto (537200) on Monday February 04, @02:53PM (#22296116)

        Well, here's a clue: being an Engineer means that when you screw up, people die.


        Such drama. Lots of engineers work on non-life-critical things. That doesn't make them non-engineers.
        • Re:Yeah, right! (Score:5, Interesting)

          by Reverberant (303566) on Monday February 04, @03:28PM (#22296844) Homepage

          engineers take many forms [wikipedia.org], not all of which are necessarily directly responsible for hundreds of lives (Acoustic engineering for example)

          You'd be surprised what kind of dangers engineers from different disciplines have to face. Remember the ICE high-speed rail crash [wikipedia.org] from a few years back? That crash happened because a resilient wheel came apart, which derailed the train. Resilient wheels are used as a noise control measure for train wheel/rail noise - thet are designed and spec'd by acoustical engineers.

  • Huh? (Score:5, Interesting)

    by 4D6963 (933028) on Monday February 04, @02:02PM (#22295168) Homepage Journal

    I'm obviously going to be modded down for this, but what does this blog post do on the front page of Slashdot? I mean ti's not news, it's just a guy with a job like another telling us his life. Surely that may be relevant to some, but that's just a blog entry about someone's life among others, so what the hell is it doing here? Is that guy pals with ScuttleMonkey?

  • Summary (Score:4, Funny)

    by middlemen (765373) on Monday February 04, @02:03PM (#22295194) Homepage
    "I want to be an engineer, sex can wait !" -- and this sums up the life of an engineer...
  • Whoever tagged this (Score:4, Insightful)

    by techpawn (969834) on Monday February 04, @02:04PM (#22295222) Journal
    Who tagged this Pompous... Beat me to the punch. I write code, it's my job. No more, no less. To try to give it esoteric meaning beyond what it is reaches a level of loathing that even I am not going to try to comprehend. It's a job! We may want to make ourselves seem more important based on our position because of the tech around us and being able to tell people "no" but in the end we're just beating the next level of rocks together.
  • Professionalism versus rigor (Score:5, Interesting)

    by s20451 (410424) on Monday February 04, @02:05PM (#22295248) Journal
    You are not allowed to call yourself a "software engineer" in Canada, not because the discipline lacks rigor, but because it lacks professionalism.

    A profession is formed for the public good, in order for experts in the field to supervise, regulate, and discipline one another. In Canada this is carried out through non-governmental professional associations, and there is one engineering association per province. It serves public safety well and is an excellent alternative to both "buyer beware" and governmental intervention. Doctors, nurses, lawyers, and teachers are similarly regulated.

    I'm personally sympathetic to the professionalization of software engineering. Basically this would mean that you would need a license to practice, all your code would be signed by its author, and the association would discipline any software author who wrote bad software, either maliciously or accidentally. Although it means hobbyists could no longer tinker, we are at the point where that hobbyist tinkering could have significant implications for the international system of computing infrastructure. Why should unlicensed software authors be any different from unlicensed doctors? Both can cause harm; in the former case, potentially more harm.
  • Engineering in Canada (Score:5, Interesting)

    by RobinH (124750) on Monday February 04, @02:07PM (#22295284) Homepage
    To become an accredited engineering program in Canada, there has always been a strong requirement for a scientific background. This first created problems for computer engineering programs in Canada to become accredited, so they added courses on things like the physical properties of silicon, etc. to meet this requirement. Electrical engineering, of course, has thermodynamics, etc.

    Software engineering has this problem of needing to incorporate science courses into the curriculum. Also, the field of software engineering isn't considered to have matured *as much* as more traditional disciplines. I'm pretty sure that there are accredited programs and you can be a software engineer in some provinces now. These things don't happen overnight.

    I would like to have as much confidence in a piece of software as I do in a bridge, but we're not at that point yet. I do think we're getting closer. At this point, very little software is really "engineered" in the rigorous sense. Software that is tends to be much more expensive, and much more reliable. Go figure.

    Most software buyers don't want to pay the extra expense for the extra quality at this point. Of course, if you're purchasing a flight control system for an aircraft, you probably have deeper pockets and more stringent requirements.
  • A++ tags, would read again (Score:5, Funny)

    by Osurak (1013927) on Monday February 04, @02:25PM (#22295660)

    programming, douchebaggery, pompouswanker, whining, slashdotted
    How appropriate.
  • by Anonymous Coward on Monday February 04, @02:42PM (#22295906)
    - Sorry about the site being down. Its probably not a coincidence that I made Slashdot AND my host (which, to be fair, survived a Digg-rush awhile ago) is having troubles. I'm on the horn with them right now.

    - A few people, who likely didn't make it to the site, like to make broad generalizations about geeks of this sort not having sex. I'd like to point out for the record that I'm married, have one child and another on the way. This suggests that I've had sex at least twice. And my wife is very beautiful.

    - The intent was not to gripe about Canada's standards for the term "engineer." I only pointed that out the difference between my home country, and my current country of employ. I prefer the term "software developer" myself, but it doesn't really matter to me.

    - The intent was also not to be pompous or fuel my own ego, it was to describe, as eloquently as I knew how, what most of us here on Slashdot are. Although the stigma is going away, us geeky types tend to be considered only that: geeks. When really there is art and beauty to what we do. I'm not even as skilled a programmer as I imagine most are, but I wanted to lend my prose to our art because I believe it is valuable. But flame on, if you must!

    Thanks for reading, hopefully the site will be back up soon! I'd copy and paste the article text here, but I wasn't expecting this and don't have an offline copy!

    Jonathan Wise
    • by Anonymous Coward on Monday February 04, @04:33PM (#22298064)
      >> I'd like to point out for the record that I'm married, have one child and another on the way. This suggests that I've had sex at least twice. Actually, it suggests that your wife has had sex at least twice; it doesn't say anything about you.
    • by gnick (1211984) on Monday February 04, @02:17PM (#22295486)
      I've met software engineers that I'd be happy to refer to as "software engineers". I've also met code-monkeys that will happily claim "software engineer" status. Canada's upholding some standard for the term engineer is spot on. Get a degree and proper accreditation, and then you get your title. This may sound egotistical, but it's unfortunate that, here in the US, describing myself as an "electrical engineer" distinguishes me only slightly from the "sanitation engineer" that hauls off my recyclables once a week.