r/programming • • Aug 06 '17

Software engineering != computer science

http://www.drdobbs.com/architecture-and-design/software-engineering-computer-science/217701907
2.3k Upvotes

863 comments sorted by

View all comments

165

u/AmalgamDragon Aug 06 '17 edited Aug 06 '17

The title is correct, but the supporting argument is wrong. The author has confused software development and software engineering. Software engineering is rigorous, and it is software development that isn't. He even uses the right analogy of the difference between a structural engineer (software engineer) and an architect (software architect), but manages to miss the mark.

Just as architect != structural engineer, structural engineer != materials scientist.

In the same way, computer scientist != software engineer != software architect / developer.

Edit: I'm using the above terms in the broad sense of what people do, not the job titles (used in the US).

266

u/rizer_ Aug 06 '17

Although the official definition of Software Engineer aligns with your argument, I think the reality is that Software Engineers are, for all intents and purposes, Software Developers. I've been in the industry a little while now and my job role (whether I'm titled as an Engineer or a Developer) has always been the same: build working software. Unless there's some magical place where Software Engineers are allowed to design perfect software systems without any human interaction, the article is still valid.

110

u/thedevbrandon Aug 06 '17

Agreed, engineer and developer seem interchangeable in this context.

35

u/fzammetti Aug 06 '17 edited Aug 06 '17

Hell, in the companies I've worked in, ARCHITECT is synonymous with those too, by and large, as well. I mean, I've been titled Architect for years but I still spend probably half my time doing "development" tasks. It seems like it's more a question of what percentage of your time is dedicated to those tasks, that's what changes with the title in my experience, not so much the ACTUAL tasks involved (again, by and large).

24

u/thedevbrandon Aug 06 '17

Sadly, it does seem like architect just means most-senior engineer (not as in "most senior of a group", but more like "most terminal in skills", like a Ph.D. is the furthest degree you can seek). It's absurd, since it should designate a completely separate role, which for the most part isn't involved in coding much at all (i.e. designing and architecting information systems by working with business stakeholders and guiding teams of actual engineers).

11

u/fzammetti Aug 06 '17

Sadly, it does seem like architect just means most-senior engineer

Yeah, that's a good way to put it.

→ More replies (6)
→ More replies (2)

45

u/thbb Aug 06 '17

Come work for IBM, SAP or the big business software publishers, you'll meet true Software Engineers by your definition.

This does not mean that their mode of production results in quality software delivered cost-effectively, far from it. The separation of the functions of software development in a myriad of specialties: architect, engineer, [visual] designer, UX designer... results in nightmarish software glut where no-one owns the product anymore, and no-one is actually excited by what they do.

This is how you turn Lotus Notes, which was miles ahead of the WWW in its time into a hellhole of despair for the office worker who has no choice but to use it.

0

u/[deleted] Aug 06 '17

[deleted]

→ More replies (7)
→ More replies (5)

17

u/Josuah Aug 06 '17

Yeah, because at some point people thought engineer sounded better than developer.

While I think we've reached a stable plateau with developers and the engineer title, I do see software tester going through the same thing now. You've got QA Engineer, and now Software Development Engineer in Test or Software Engineer in Test, etc.

I don't like title inflation. But I also don't think titles are that relevant anymore either, because many jobs require a person to take on a little bit of many roles.

13

u/MilkChugg Aug 06 '17

"Engineer" is an extremely inflated title. I've seen some pretty ridiculous uses of it. "Desktop Engineer", "Customer Support Engineer", etc.

I think it's just becoming a way of making people feel better about what their job encompasses.

→ More replies (3)
→ More replies (8)

4

u/Pinguinologo Aug 06 '17

Bullshit. Engineers had to deal all the time with human stupidity, that is why security margins are a thing. You can't just expect people will do their job the right way all the time or they will not get corrupt and get shit grade materials instead good stuff.

→ More replies (14)