Forgot your password?
typodupeerror
Programming

Ask Slashdot: Developer Or Software Engineer? Can It Influence Your Work? 333

Posted by Soulskill
from the it's-harder-to-chant-software-engineer dept.
ctrahey writes "Many of us disregard the impact of our titles on various aspects of our lives, both professional and otherwise. Perhaps it's appropriate to ask two questions about the difference between a couple titles familiar to the Slashdot community: Developer vs Software Engineer. What are the factors to consider in the appropriate use of the titles? And (more interesting to me), what influence might the use of these titles have on the written code? Have you observed a difference in attitudes, priorities, or outlooks in talent as a corollary to their titles?"
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Developer Or Software Engineer? Can It Influence Your Work?

Comments Filter:
  • by Anonymous Coward on Saturday November 10, 2012 @06:52PM (#41945867)

    Unless you have a degree in Software Engineering, it's both misleading and might be illegal to use the "Software Engineer" title in your country.

    • by Anonymous Coward on Saturday November 10, 2012 @07:05PM (#41946007)

      It would only be illegal if there was a public certification. There is no legislative authority in college program accreditation, or in determining titles. As long as someone is not misrepresenting their resume, there is nothing illegal with any title. I could call an employee "King of England" if I wanted to.

      • by Tridus (79566) on Saturday November 10, 2012 @07:21PM (#41946083) Homepage

        Not true in Canada. Calling yourself an "engineer" without the appropriate blessing is in fact illegal.

        • by thetoadwarrior (1268702) on Saturday November 10, 2012 @07:56PM (#41946307) Homepage
          Wrong. http://en.wikipedia.org/wiki/Regulation_and_licensure_in_engineering#Canada_2 [wikipedia.org]

          an Alberta court dismissed the lawsuit filed by The Association of Professional Engineers, Geologists, and Geophysicists of Alberta (APEGGA) against Raymond Merhej for using the title "System Engineer", claiming that, "The Respondent's situation is such that it cannot be contended that the public is likely to be deceived, confused or jeopardized by his use of the term

          If you read further in that link, they're working on compromise. The associations obviously want to protect themselves and keep the membership fees rolling in but they're fighting a losing battle. No one in software cares about titles like they do.

          Also, as I believe it's actually the specific title of "Professional Engineer" (P.Eng) that is protected in Canada. Not just any old engineering title.

          • Re: (Score:2, Interesting)

            Professional Engineer is protected in the US too. But you don't see it much outside of government. A PE isn't very useful in private industries, it's too broad and to mgmt sounds like a union.

            • I would agree. It is effectively a union but, as far as can tell, no striking ability or anything else really that may protect your job.
    • by Concerned Onlooker (473481) on Saturday November 10, 2012 @07:31PM (#41946165) Homepage Journal

      I think I agree with you, but what if you have a degree in computer science? Is your title "Developer with a degree in Computer Science?" I don't think I could really call myself a computer scientist with a straight face, yet that is my degree.

      • I personally dislike the use of the term engineer with regards to *most* software development... unless said development is interacting with real world objects, it is more often a matter of craft as a discipline not engineering. This isn't always the case, and hasn't always been the case.. in early computing when you had to really think long and hard about how to put things together, with days or months of rework on the line for the smallest mistake, it was much more like an engineering discipline. Today,
      • by Martin S. (98249)

        In the UK, BSc in Computer Science from a University can be accredited qualification for a Chartered Engineer status.

    • The only thing I'm aware of is the Engineering associations in Canada get more protective over the title but that doesn't mean it's illegal as they haven't won all their court cases and there's, afaik, a couple states in the US that require title but for the most part the western nations at least haven't changed anything about the title software engineer which is used more freely than other egineering titles. But that has more to do with the associations not wanting to give up the membership fees and who c
    • by fluffy99 (870997)

      Definitely. Just like the janitor who calls himself a sanitation engineer, you've got lots of code monkeys wanting to sound more prestigious by calling themselves software engineers. It demeans the guy who really is a sanitation engineer with a civil engineering degree designing the city's sewer and water treatment system.

      • While it may be demeaning to the Civil Engineer, it does make the management of the janitor feel like they are not demeaning the janitor. "sanitation Engineer" in the sense of janitors is just to make others feel good, not the janitor.
    • by fm6 (162816) on Saturday November 10, 2012 @08:27PM (#41946539) Homepage Journal

      Even if you have the hat [starcostumes.com]?

    • by mdf356 (774923)

      Unless you have a degree in Software Engineering

      Now I find this alone fascinating. When I was in college, "Software Engineering" was one class in the CS major. There was no Software Engineering degree available at my school, and I suspect at no college or university.

      • by Curate (783077)
        When I was in college, "Software Engineering" was one class in the CS major. There was no Software Engineering degree available at my school, and I suspect at no college or university.

        You know, you could have just done a simple web search. There are university degrees in Software Engineering. Example: http://uwaterloo.ca/software-engineering/home [uwaterloo.ca]

        • by mdf356 (774923)

          Can I do a web search in 1994 for this? Because I don't think there was a Software Engineering degree in 1994, or 1998.

        • by mdf356 (774923)

          Sorry; rereading what I said I realize what was confusing.

          How do I, as a person who already has an MS in CSE, get to call myself a Software Engineer? I'm not going back to college for another, extremely similar degree. There wasn't a SE major when I was in college. So I assume there must be some other mechanism for people to be allowed to call themselves "Software Engineers" whenever the law that started limiting this was passed.

    • by Darinbob (1142669)

      I have two degrees, in both Computer Science and Computer Engineering. So I can call myself both a scientist and an engineer.

      Everyone and their uncle is now a "programmer" so it's not worth using the title anymore. Anyone who uses XML or has created a web page decides to be called a programmer. "Developer" is ok, but it doesn't mean much to me, it's sort of like a person that Steve Ballmer is shouting at. Once I started having to read schematics and use an oscilloscope at work I started calling myself

  • by jayveekay (735967) on Saturday November 10, 2012 @06:53PM (#41945879)

    A programmer (developer?) writes code that hopefully works. A software engineer writes code that is designed to work.

    • by ph1ll (587130)

      Nice. But how about:

      A software engineer writes tests.

    • That's a stupid explanation given that the vast majority of code written by anyone for their job both works and has bugs in it. Given that Google used to (probably still does) have more engineers and intelligent people than perhaps any other company and Chrome is still overly sensitive and tabs just die and never recover and as far as I can see has the worst rendering of malformed HTML then that means your assertation is flawed.
      • Re: (Score:2, Insightful)

        by drinkypoo (153816)

        The stupidity is your shitty English parser. He said designed to work, not "that works"

        • No, if it doesn't handle a common use case then it's not designed to work.
        • The problem is simply that creation of software has much more in common to a craft than any other engineering discipline. Very rarely does software creation involve a lot of engineering... and that is *usually* when interacting with real world objects. I would say a lot of database (dbms software) design is closer to an engineering discipline at its core than what most development is (codifying loosely defined business rules into a computer construct with what often turns out to be a poor interface).
  • by Anonymous Coward on Saturday November 10, 2012 @06:53PM (#41945883)

    I like to just say programmer.

    Programmer.

    Programmer.

    Programmer.

    • by Arancaytar (966377) <arancaytar.ilyaran@gmail.com> on Saturday November 10, 2012 @07:44PM (#41946243) Homepage

      Programmers programmers programmers PROGRAMMERS PROGRAMMERS PROGRAMMERS. *chairtoss*

      Nah, doesn't flow off the tongue.

      I'll stick with "developers".

    • Exactly. I'd really like to know where the terms developer and software engineer come from. They seem to be obfuscating the situation.

      Of course Ballmer ruined the term developer for me. I can never call myself that again.
    • by robbo (4388)

      From an immigration perspective, USCIS cares a lot about the distinction between engineer and programmer. Ask anyone who's entered the US in TN status what it's like answering the question 'how much programming do you do?' It's a trap! Programmer is not a NAFTA-qualified occupation, whereas Software Engineer is... NAFTA considers that you can obtain programming credentials from a community college, versus requiring a B.Sc or B.Eng to become a Software Engineer. The occupational description hinges on 'analys

  • by DuncanE (35734) on Saturday November 10, 2012 @06:58PM (#41945923) Homepage

    Easy.... Use software engineer. It sounds richer so gets more babes ;)

  • by mhh91 (1784516) on Saturday November 10, 2012 @06:59PM (#41945935)

    Do you speak it? [programmin...fucker.com]

  • I am looking forward to seeing how /. parses this question...I'm sure the answers will be beneficial.

    As the for question itself, it is posed in a very superficial context. They use a lot of marketing buzzwords and quasi-coder jargon.

    They also assume that everyone agrees that those two titles are the only two titles the people who write code have. I know of journalists, animators, artists, scientists and accountants who code **regularly** on a myriad of languages.

    Coding is what is in question here. I *love*

  • Well... (Score:4, Insightful)

    by PhrostyMcByte (589271) <phrosty@gmail.com> on Saturday November 10, 2012 @06:59PM (#41945955) Homepage

    Software Engineer: can build a flexible, properly designed application architecture and has grown past the schooled "everything fits within some methodology X" phase (i.e. can think outside the box).

    Developer: will usually be able to make something that works, and even write quite nice code when given good direction, but can create a mess when given a chance to be a cowboy coder.

    • I think the biggest difference is in the design and planning phases... In practice, an engineer doesn't typically also build the car.. as an architect doesn't build the structure. Software, in general the further you get away from large up front designs is much more of a craft than an engineering discipline.

      I don't like the term Software Engineer so long as you are not writing code that interfaces with physical devices, and even then not always. When you are designing for interacting with physical ha
  • Are you a hacker? (Score:5, Insightful)

    by betterunixthanunix (980855) on Saturday November 10, 2012 @07:02PM (#41945967)
    Here is a rough guide for deciding what to call yourself:
    1. Do you have a set of well-defined methods for designing, documenting, and implementing the software you write? Then you might be a software engineer.
    2. Do you sit down and bang out code a few hours before the deadline, without adhering to a well-defined method of designing the system? If so, you might be a developer.

    Of course, many programmers are somewhere in the middle, usually leaning more towards "engineering" when the deadline is months away and "developing" when the deadline is days away.

    • "Do you sit down and bang out code a few hours before the deadline..."

      Your argument was saved by:

      "without adhering to a well-defined method of designing the system"

      because Agile Development definitely includes the first half as (a non-ideal) part of its paradigm, but not the second.

    • It's a meaningless as "guru" or "architect" since it really has as little to do as engineering as building houses or running a cult.

      I've had endless arguments here with "software engineers" that can't even grasp the high school level concept of polar co-ordinates (among other things expected of someone before they even enrol in a course), so whatever it is there is a million miles between it and any sort of engineering.
  • IMO None. (Score:5, Insightful)

    by eagee (1308589) on Saturday November 10, 2012 @07:04PM (#41945987)
    I was a "Senior Software Engineer" before I got a promotion, now I'm a "Lead Developer". Aside from providing guidance to other engineers I still do the same job. Personally, I wanted my new title to be "Mr. Manager" instead, but no one seemed to like that idea :(. Seriously, I've worked in states where it's illegal to give someone without an engineering degree the title "Engineer", but I've worked with engineers who didn't finish college and found them every bit as good (sometimes much better) than the ones who didn't.
    • Mod up.

      I've also worked under both the title Software Engineer and Developer (and not even in that order). It depends largely on who you are working for, and sometimes how they are organized.

      "Seriously, I've worked in states where it's illegal to give someone without an engineering degree the title "Engineer", but I've worked with engineers who didn't finish college and found them every bit as good (sometimes much better) than the ones who didn't."

      Personally, I might be more comfortable in a state where it was illegal to call some people who DO have engineering degrees "Engineers".

  • by Ichijo (607641) on Saturday November 10, 2012 @07:05PM (#41945995) Homepage Journal

    It doesn't make sense that a software engineer would need a degree in computer science. They are two different domains [stevemcconnell.com].

    Maybe software tends to be so buggy because it isn't always engineered to be reliable. It's cobbled together in the lab, and if it works in the lab, the assumption is that it will work in the field.

    • "It doesn't make sense that a software engineer would need a degree in computer science. They are two different domains."

      It seems to me that the page referenced is little more than a very long and half-baked attempt to explain the difference between science and technology.

    • by Anubis IV (1279820) on Saturday November 10, 2012 @10:15PM (#41947003)

      You've made two different arguments, one of which is patently incorrect. The other, however, while possible, sounds like a recipe for disaster.

      First off, they are hardly separate domains. Software Engineering is merely one field within Computer Science, which is itself a rather broad field covering a number of different disciplines (e.g. artificial intelligence, interface design, networking, graphics, formal language development, etc.). You only need to read a handful of research papers in the field of Software Engineering before you'd be convinced of the same. It's just as science-based as the rest of Computer Science, just as theoretical, and just as full of lab ideas that don't actually work in the field. Plus, it's inseparable from other Computer Science fields such as programming language design, which dictate just which ideas are even possible. Granted, it's a bit of a misnomer to call it "Software Engineering", since it's actually more like "Software Design Science", but I didn't choose the name.

      Moving on, your core idea was that Software Engineers do not need a degree in Computer Science, but I just can't see how that would work. Playing my own Devil's Advocate for a bit, most "Computer Scientists" are actually engaging in applied Computer Science (i.e. programming/developing) rather than the pursuit of Computer Science (i.e. working in academia or an industry R&D lab). Similarly, most Software Engineers are engaging in applied Software Engineering, rather than pursuing the science of the field. Again, playing Devil's Advocate, I could see an argument for providing a curriculum more focused on the "what" and "how" (i.e. "here are what the tools are and how you use them") to the exclusion of the "why", somewhat analogous to what a two-year programming degree might offer. It teaches the tools but not the reasoning behind them.

      That said, I just can't imagine what cuts you would make so that it's no longer a Computer Science degree. You can't cut out programming from the Software Engineer's curriculum. If you did, you'd be effectively putting someone with no experience in a design position where experience REALLY counts. That works in traditional engineering fields where they can be shepherded by someone more experienced for several years. But software projects tend not to be large enough to justify paying for someone who can't pull their own weight once the programming needs to get done, let alone an experienced one and a newcomer. So unless you want to force them to program despite their lack of training in it, you will have to move them on before they get in the trenches to make the thing they've designed. As a result, they'll be entirely divorced from the feedback process that would influence future design ideas. As I said at the top, that sounds like a recipe for disaster to me.

      So if you're going to be leaving in programming, what else would you cut from a typical Computer Science degree? At the time I was in grad school, our undergrad Computer Science department curriculum was revamped to have students choose a "branch" once they reached their upper level courses (i.e. the ones after intro programming, data structures, algorithms, etc.). One of those branches was Software Engineering, and, as you can guess, students who chose that branch would be taking a number of classes oriented around that topic. Even if there were a dedicated Software Engineering degree, I'm not sure how it would be functionally different from a Software Engineering oriented degree in Computer Science, like what my university already offers.

    • by aralin (107264)

      Actually, where I come from, software engineering technical universities are inferior to computer science which is taught in proper universities along with math and physics as science. Not as a practical engineering discipline. So for me, based on my educational background being called engineer is sort of an insult. Engineers are guys who learn how stuff works, but not why. They are capable of executing, but not of complex individual effort.

      Clearly different countries view the term differently. But since I

  • by Amigan (25469) on Saturday November 10, 2012 @07:06PM (#41946015) Homepage
    I would argue that a Software Engineer's role encompasses that of a Developer, as they are generally can also be expected to handle design (high and low level), testing (functional, unit, system), along with the writing of code. A Developer tends to fit the image of the guy with the keyboard cranking out code - software engineering is so much more than that. In fact, it is estimated that a Software Engineer will only spend 20% of the time actually writing code - due to the other responsibilities.
  • by tdelaney (458893) on Saturday November 10, 2012 @07:12PM (#41946035)

    Having been officially both a (senior) software developer and software engineer (at the same time) I prefer a different term entirely: Software Development Craftmaster (and the related Software Development Journey(wo)man and Software Development Apprentice).

    I feel it more accurately reflects what I do. There are elements of engineering (in particular the discipline which takes years to develop) combined with high levels of creativity.

    Just wish I could claim it legally, but there's no Software Development guild here.

  • Depends on the law. (Score:3, Informative)

    by Dzimas (547818) on Saturday November 10, 2012 @07:12PM (#41946041)
    Here in Canada, you have to be a licensed P.Eng to call yourself a software engineer. Even though I have an MSc from an EECS program, I would have to satisfy all the academic requirements of an undergrad engineer, work as a supervised engineer-in-training for between 2-4 years and pass a professional practice exam to qualify.
    • "I would have to satisfy all the academic requirements of an undergrad engineer, work as a supervised engineer-in-training for between 2-4 years and pass a professional practice exam to qualify."

      I have nothing against the experience, but personally I am against certification of programmers (your "practice exam"). Of course maybe it's still a question of terminology, because what you think of as a Software Engineer may be somewhat different than what the average person in the U.S. thinks.

      Still: I know developers who lean more to the artistic side, and do well in that niche designing and coding interfaces, etc. even though they might have trouble passing such an exam. I know some who are more on t

    • That's not true. You can't use P.Eng but that is seperate to software engineer and an engineering association has lost a battle in court to stop someone from using the title software engineer. The judge says he's not causing confusion and has basically said software is different and acted differently from the beginning so the engineering association can get bent.
  • Seinfeld (Score:5, Insightful)

    by afgam28 (48611) on Saturday November 10, 2012 @07:19PM (#41946075)

    Women need to like the job of the guy they’re with. If they don’t like the job, they don’t like the guy. Men know this. Which is why we make up the phony, bogus names for the jobs that we have. “Well, right now, I’m the regional management supervisor. I’m in development, research, consulting...”

    Men on the other hand – if they are physically attracted to a woman – are not that concerned with her job. Are we? Men don’t really care. Men’ll just go, “Really? Slaughterhouse? Is that where you work? That sounds interesting. So whaddaya got a big cleaver there? You’re just lopping their heads off? That sounds great! Listen, why don’t you shower up, and we’ll get some burgers and catch a movie.”

  • Are you licensed by the state? Does your profession have a code of conduct? Are there standardized tests for entering the profession? Is there an accepted body of knowledge?

    Sadly, the answer is no to all of these. The person who cuts your hair has more certification than the person who writes pacemaker software.

    • Re:Engineer? (Score:5, Interesting)

      by Jane Q. Public (1010737) on Saturday November 10, 2012 @07:51PM (#41946291)

      "Sadly, the answer is no to all of these. The person who cuts your hair has more certification than the person who writes pacemaker software."

      Yes, I have read about issues with pacemakers... but I've also had bad haircuts. Certification by the State is no guarantee that you will be good at your job.

    • If that's true that will only be due to useless group that managed to build in a level of protectionism to milk people in the trade of cutting hair for money. Because basically just about anyone can cut hair and many parents cut their children's hair for them to save money. Certification certainly isn't required.
  • by Tridus (79566) on Saturday November 10, 2012 @07:26PM (#41946115) Homepage

    Outside of the countries where "Software Engineer" actually has a legal meaning and requirements to claim it (while "Developer", "Programmer", or whatever doesn't), the difference is largely that one sounds better than the other. People like to use "Software Engineer" even if they're in fact nothing of the sort, due to the connotation that comes with it.

    It's not hard to find people calling themselves Software Engineers that aren't doing anything resembling engineering, just like it's not hard to find people calling themselves Developers that are really doing software engineering. In the end if you're able to do the job well, nobody gives a damn what you're calling yourself.

  • by Anonymous Coward

    A (Chartered) Engineer is someone trusted by society and the law to get things right using state-of-the-art scientific knowledge. If their solution fails due to not using the "best practise" known at the time then the Engineer responsible is liable for a charge of professional negligence. Eg, A bridge collapses killing people, and it is found that the welding technique chosen by the engineer responsible for the design is outdated and known to be dangerous. That engineer faces a prison sentence for negligenc

    • by Mr Z (6791)

      Somehow I doubt it means you must always use the absolute latest methods. It just means you need to use an appropriate method taking into account current knowledge. Dirt berms are as old as the hills, so to speak, but it can be entirely appropriate for a civil engineer to specify one as part of a road's right-of-way to control drainage, for example. Likewise, I don't have to write my code in the latest, greatest language de jure if plain old C is appropriate to the task.

      Shouldn't a certain number of cras

  • by mdf356 (774923) <mdf356@gmBOYSENail.com minus berry> on Saturday November 10, 2012 @07:38PM (#41946215) Homepage

    Both places I've worked in my 11 years as a professional didn't really distinguish. I have a Computer Science and Engineering degree. I write and design software. I'm in the research and development arm (or the Engineering arm) of the company. It's several ways to say one thing.

    Yes, some distinctions can be drawn, like whether you interface with customers, who does the architecture or design, etc., but in general the people I work with are all over the software life cycle, from beginning to end. We do development (of software) and the official job title has always had "Engineer" and sometimes "Development" or "Software" in it.

  • Just titles... (Score:5, Insightful)

    by Valtor (34080) on Saturday November 10, 2012 @07:46PM (#41946257) Homepage

    In my opinion, those are just titles my friend and I see no reasons why we should ever consider them anything more.

  • Wizard (Score:2, Funny)

    by Anonymous Coward

    You could just call yourself "wizard". Like 90% of the population treats either title differently than "wizard" anyway.

  • by stretch0611 (603238) on Saturday November 10, 2012 @07:50PM (#41946289) Journal

    Whether I call myself a developer or software engineer will not affect my income. I'm old school (over 40) and I think that people building systems as long as I have tend not to care about titles. I'm not even sure there was a "software engineer" title when I started programming.

    What I can say is that people that are coming out of college today calling themselves either tend to not have a clue what they are doing. (Of course there are exceptions, but the truly good people are hard to find.) And don't forget the recent title of "Software (or Data) Architect..." This idiots conceptualize a system, charge a ton of money, and have others build it. When it fails, they blame the developers and/or run to another job.

    Then there are "Front End Developers," which are nothing more than a graphic/web designer that knows how to add some horribly written jQuery to a site and changed their name to developer in order to get paid more.

    Essentially this whole debate is really about one huge issue: Large Companies are trying to turn the entire development process into something that can be done like an assembly line. They are chopping it up into little pieces so that anyone can perform the same monotonous task. The smaller your piece is, the more people that can focus on that specific area, the more people that can do it, the less you are worth. The less the companies pay, the happier they become. The more pieces there are, the more titles.

    Unfortunately, (or fortunately if you really know what you are doing) the development process is not easy to break down into pieces. While certain pieces can be farmed out, the overall system will work best when one person knows how to build the system as a whole and can take the project from the requirements to a working application. (And companies rarely want to pay for these good people.)

  • by heretic108 (454817) on Saturday November 10, 2012 @07:56PM (#41946313)
    From my R&D experience across many companies, it's clear to me that a "software engineer" is a proper superset of "developer".
    1. A 'developer' is paid to create code that works within the company's contrived runtime environment and passes a few stages of testing, while a 'software engineer' is also paid to ensure the code actually works reliably in this nebulous abstract construct called the "real world" - customer/client installations where there are innumerable environmental variables and things that can go wrong.
    2. A "developer" nods timidly and reluctantly to Murphy while passing in the corridor. But the software engineer says "Thanks for another great night. What would you like for breakfast?"
    3. A "developer" goes whining to her/his team leader when the tools or OS play up. A software engineer cracks out the machine-code debugger, logic analyser and oscilloscope, traces all the API calls, and spits out working patches for the bugs in the libraries, drivers and kernel.

    If I had some plant that was failing at 3:15am and costing me a fortune, I know which I would prefer to have on site.

  • by Gothmolly (148874) on Saturday November 10, 2012 @07:57PM (#41946315)

    What if you just ramble on about .Net and quibble over which IDE is better, all the while saying words like "Scrum" and "Agile"?

    Sure you'll get a job, but you won't ever actually produce anything.

  • Terminology (Score:5, Informative)

    by jmcvetta (153563) on Saturday November 10, 2012 @08:10PM (#41946407)

    Here's how I've observed some terms used:

    - Coder: a person who knows how to bang out some software code; often used disparragingly. cf "Code Monkey"
    - Programmer: Any person who makes software for a living. Used mostly when speaking with non-technical people, because they immediately understand what it means.
    - Developer: Neutral term for a person who makes software.
    - Software Engineer: A developer who favors a heavily-planned approach to making software.
    - Software Architect: Someone who designs applications or systems. May be "hands on" and themselves write significant parts of the application; or maybe more of a management role.

  • Most of the positions I've held had the official title of "Software Engineer" or "Senior Software Engineer". It implies a certain "rigor" relative to "Software Developer". That said, the implication is frequently extremely illusory. I've never done anything approaching "engineering" in these positions and often I'm not even that "senior" with respect to the technologies I'm working with. If you can write your own title, though, I'd go with "Software Engineer" if only because it sounds better and might g
  • I am a developer when telling other developers what I do.

    I am a Software Engineer when giving my role to other non-developers.

    Realistically, the two are interchangeable, and snobbish people tend to use "Software Engineer" when talking with other developers (or when on interviews).

    Software Development as an industry is not really in a place you can really have "Software Engineers", at least not in ways that any real company besides NASA would use them as engineers.

  • Because it pisses off the stick-up-their-ass Professional Engineers who think they own the word, which existed long before their little guilds got formed. The original engineers were military engineers. Next came the general meaning of the term, then the train drivers and the steam engine operators. The PEs are johnny come latelies from the 20th century -- and where Professional Engineering starts, innovation ends.

    I believe the only state in the US which demands a P.E. from a Software Engineer is Texas.

  • by tyrione (134248) on Saturday November 10, 2012 @09:09PM (#41946725) Homepage

    There is a reason people laugh and mock people who call themselves Software Engineers outside of the IT World. They are fluff titles. Even at its best, Computers Engineering is just a subset of Electrical Engineering focused on the designs of hardware from the CPU/GPU/DSP, etc., and their interaction with Software.

    Whether it is Mechanical, Electrical, Chemical, Biomechanical [Applied ME with Biology], Civil, Structural, Materials Science Engineering disciplines are grounded in mutable laws of engineering extended from the laws of Physics, Chemistry, Biology, through all applicable languages of Mathematics Disciplines.

    Bill Joy has long wished for Software Engineering to become factual by taking cues from Mechanical Engineering [though since he never has been a Mechanical Engineer I doubt he realizes how impractical that wish will ever be], due to the innate Art behind Computer Programming, Computer Architecture, Computer Software Design, etc.

    In order for Software Engineering to be a recognized Engineering Discipline via ABET one would expect them to take Thermodynamics/Thermodynamic Systems, Dynamic Systems, Materials Science Engineering, Finite Element Analysis and more where one applies the various electives to writing Software applications to apply said disciplines--the exact reality all Engineering disciplines due for zero credit or recognition.

    You want an Engineering Degree, then get one. You want a Computer Science degree and it's several specialties than get one. Stop pretending they are equivalent. None of my former CS majors ever compared our CS degree curriculum to my Mechanical Engineering curriculum. Mechanical Engineering is a very broad and deep curriculum now with several areas including Tribology, MEMS, Robotics [Applied Kinematics with EE/ME control systems], along with their many other tracks in Machine Design, Fracture Mechanics, Dynamic Systems, Heat Transfer Disciplines, etc].

    Stop calling yourselves Software Engineers. You aren't designing solutions that adhere to Computer Science Laws. You are designing to Best Practices, Design Patterns, all centered around Semantics/Linguistics/Discrete mathematics, applied logic and other Art disciplines. Embrace the Art. Stop pawning yourselves off as Engineers.

    The Engineer in Training Exam provided by every state in the United States is a comprehensive exam [8 hours] over your past 5 years that allows one to reduce the time it takes [under a Principle Engineer (Often mistaken as Professional Engineer)] to then qualify and apply to become a P.E., from 12 years under a P.E., licensed and bonded down to 4 years.

    The lack of understanding the IT World has for the parent worlds of Engineering is staggering.

    • by tyrione (134248)
      edit: Computers Engineering -> Computer Engineering. mutable laws -> immutable laws.
  • It's not the title, it's the attitude. If you write code the way a civil engineer designs bridges and or an electrical engineer builds circuits, you will build crap.

    When building a bridge to take a 10 ton load, you better use 15 ton beams just in case one is under spec. When building a circuit to switch at 10 MHz, use components designed for 12 MHz just in case one is under spec. It's called "tolerances" and is the underpinning of all engineering, and is a great idea for those fields where once it is b

    • by dbIII (701233)

      Like how to design a system that won't fail the minute the requirements change.

      Are you actually under the impression that requirements do not change in large engineering projects?

  • To me, a programmer is anyone who just sits down and bangs out code, with no concern for architecture, coding standards, best practices, etc...

    A Software Engineer is someone who plans, designs, follows best practices, coding standards, etc... They care about error handing, usability, reliability, and maintainability.

  • I'm not one, but I think that software engineers use formalized approaches (Requirements Elicitation, etc.) to not only solve immediate problems, but also recursively improve those processes so that they're always benefitting from what they've done in the past, making them more responsive and nimble.

    Also, and this is just something I've noticed: I see a lot of people identifying themselves as "Java developers" or "C++ developers" or giving some other specific language(s) in their title. I don't remember off

  • I'd like to be called Software Guru or Evangelist.
  • by durdur (252098) on Saturday November 10, 2012 @11:02PM (#41947185)

    I remember at one job I had to call up HR once and ask them what my title was. But it did gradually dawn on me that you don't want to be a title step lower than people who are equally or less skilled than you are. It does affect how others see you in the company and ultimately may affect your salary and promotion prospects, although I don't believe my own career has been derailed much by not caring.

  • by chrismcb (983081) on Sunday November 11, 2012 @02:02AM (#41947841) Homepage
    I'm a coder, I write code. Or call me a programmer, a developer, or software engineer (just don't call me Shirley)
    They all mean the same thing. And no there is no "a programmer bangs out code, and a software engineer "designs" it first. They both do the same thing. A programmer writes code, which involves "engineering" it first. A software engineer also writes code, which involves "engineering" it first. There is no distinction, although some people like to think there is.
    But really does it matter? If my boss wants to call me "master of the universe" then great, I still write code.
    What it comes down to, when people ask what I do, I say "I am a programmer" or "I am a computer programmer." Pretty much everyone knows what that means. If I said 'I'm a developer' people thing I own land, and develop it. If I said "software engineer" people would think I drive trains or build bridges.
    You write code, stop being so stuck up!

Faith may be defined briefly as an illogical belief in the occurence of the improbable. - H. L. Mencken

Working...