Ask Slashdot: Developer Or Software Engineer? Can It Influence Your Work?
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?"
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.
A programmer (developer?) writes code that hopefully works. A software engineer writes code that is designed to work.
I like to just say programmer.
Programmer.
Programmer.
Programmer.
Easy.... Use software engineer. It sounds richer so gets more babes ;)
Do you speak it?
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.
Palm trees and 8
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.
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.
Ethics tests are pretty pointless in practice. There is a big difference between knowing ethics and being ethical.
I'm pretty sure 99.9% of convicted criminals knew they were committing a crime at the time...
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.”
In my opinion, those are just titles my friend and I see no reasons why we should ever consider them anything more.
"Sockets are the standard networking API, also useful for stopping your eyes from falling onto your cheeks" zeromq.org
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.)
Looking for a job?
Want your resume written professionally?
DON'T USE TUNAREZ!!!
"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.
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.
I want to delete my account but Slashdot doesn't allow it.
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.
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.
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.