this post was submitted on 06 Oct 2023
21 points (95.7% liked)

Experienced Devs

3954 readers
1 users here now

A community for discussion amongst professional software developers.

Posts should be relevant to those well into their careers.

For those looking to break into the industry, are hustling for their first job, or have just started their career and are looking for advice, check out:

founded 1 year ago
MODERATORS
 

My last job was at a company that designed and built satellites to order. There was a well defined process for this, and systems engineers were a big part of it. Maybe my experience there is distorting my perspective, but it seems to me that any sufficiently complex project needs to include systems engineering, even if the person doing that is not called a systems engineer. Yet as far as I can tell, it isn't really a thing in the software industry. When I look at job postings and "about us" blog posts about how a company operates, I don't see systems engineering mentioned. Am I just not seeing it, is it called something else, or is the majority of the industry somehow operating without it?

top 11 comments
sorted by: hot top controversial new old
[–] [email protected] 5 points 1 year ago (1 children)

If you described what a "systems engineer" did that'd be a big help.

[–] firelizzard 1 points 1 year ago (3 children)

Systems engineering is an established discipline, one you can get a degree in. It’s not just a random term I’m making up. https://en.m.wikipedia.org/wiki/Systems_engineering

[–] [email protected] 4 points 1 year ago* (last edited 1 year ago)

No one said it’s made up, just that we don’t know what it is because it’s a term for big (and maybe hardware-oriented) industries. Most devs will never touch this in their lives.

From your link, it seems that the "software architect" is the closest equivalent. He must have a broad knowledge in a bit of everything from the code to talking with clients in order to make good decisions for everyone, and make sure that a good path is followed by everyone.

Last but not least, this book seems interesting and gives an overview of what I said: https://www.amazon.com/Fundamentals-Software-Architecture-Comprehensive-Characteristics/dp/1492043451

[–] onlinepersona 2 points 1 year ago* (last edited 1 year ago)

Software Architect.

Yes, most companies don't have them nor know about them. It's a pity, but software engineering isn't understood nor recognised by managers. Most still have the mindset that software engineers and programmers are the same thing because they sit behind a computer all day. I imagine that in their minds it's the equivalent of dicking around all day like a gamer does. It's ignorance.

"it can't be that hard, just tell the computer what to do"

People who don't understand coding think it's a bunch of mumbo jumbo made to sound difficult. They still think in the physical realm. Multiply engineers and it goes X times more quickly! If I wanted a building finished, all I need is manpower.

Of course they also don't value the profession. They think managing people is much more difficult than writing code. I've heard this over and over for years. "You don't understand how difficult it is to manage people". I think "You don't understand how difficult it is to write good software". Since they think it's easy and in some virtual, magical realm, that one person should be able to do many things. They don't understand the value of QA, architects, developers, devops, sysadmins, etc.

[–] [email protected] 1 points 1 year ago (1 children)

Probably my quotes implied sarcasm, what i should have said is there are so many hats that a "software developer" or "software engineer" is really really broad like by the wikipedia definition at my current company we typically call those "principal engineers", or "principal architect"; i've also seen them called staff software engineers.

Likely it's super domain dependent; the failure cost with a satellite's or hardware cost you the business. Where with a website the MTTR can be very small. So a large oversight isn't quite as needed, as the cost is so small.

[–] firelizzard 1 points 1 year ago

I'm thinking more of design than oversight. In my experience building a large, complex system without seriously considering the system design (in the way that a systems engineer would) leads to many "oops" moments that will eat into the schedule.

[–] [email protected] 4 points 1 year ago

my guess is the software equivalent is the architect role - basically someone high level that doesn’t code much but does design the overall way that systems interact (or, to put it redundantly, designs the architecture of the full system)

however i don’t know if this term is en vogue as much anymore except for very large scale businesses (i would bet money that banks employ architects, for example)

[–] [email protected] 3 points 1 year ago

It definitely is a thing in larger companies, smaller companies just trust the developers or tech lead to do it

[–] [email protected] 1 points 1 year ago (1 children)

Project /Program manager in software?

[–] firelizzard 1 points 1 year ago

I can see how systems engineering could fit into that role but the project/program managers I’ve talked to were much more focused on management than engineering

[–] [email protected] 0 points 1 year ago

i did the facebook interview month long process a year ago and they were all about systems engineering at every level. the thing was, they had their own way of doing it and try to get me to pay $60 for their bullshit training to even use the same jargon.