Profile picture
, 19 tweets, 4 min read Read on Twitter
I've now interviewed 12 engineers about the differences between traditional and software engineering. I learned a lot! I'm putting the interviews on pause while my Real Job gets in the way, so here's a sneak peek of some things I learned. How is software different from trad?
1. Engineering isn't monolithic. We usually compare software to building bridges, but that's only civil engineering. What civil engineers do is very different from what electrical, chemical, and industrial engineers do. There are some similarities, but also a lot of variety.
2. Engineering fields aren't monolithic, either. I talked to 3 chemical engineers and they all had very different jobs as engineers. Some were as fastidious and "rigorous" as we imagine trad to be. Some were "throw it all in a pot and see what happens." It's all engineering!
In particular there's a lot of wide differences between making new things, making existing things better, maintenance, putting tried-and-true techniques into practice... two software people can do very different things. Same with trad engineering.
3. There are some conceptions us software folk have that are totally true. We can iterate on software much faster than people can in most fields. Fastest I heard from a trad engineer was daily iterations. We can push fixes faster than that. This makes a big difference.
Another truth: constraints are less of a problem for us. Almost every trad had a set of constraints they had to budget for: power, heat, volume, mass, flow rate... our constraints are (mostly) less of a problem. And we don't have to worry about geometry or physical space.
4. There are also many things we think are special about software, but are common to all engineering. Requirements change all the time. People have implementation issues all the time. People talked about filing two designs: what they tried to do, and what they actually did.
Another misconception: "trad engineers are doing existing work, all software is new and unpredictable." One interviewee cracked up at this. He found his work in software more predictable, more known, than his EE work. All engineers are constantly running into new problems.
((My favorite examples of this came from the chemical engineers. You might use a chemical reaction in your product, but when you try to scale it up 2x new science takes over. And again when you scale it 2x more. Everything has to be rethought and re-experimented each time.)
Third misconception: "The rules of software change much faster than other fields." In some cases this is true, in other cases not so much. In some cases Software is more stable: you don't have foundries telling you "btw this month we're at half production and double impurities"
What does each field do better? We all know we tolerate buggier software better than we tolerate buggy turbines. Part of that is that trad invests a LOT more on design and requirements: you might diverge from the plan, but you have a plan to diverge from! The products are better.
But there's a lot of ways software does better too. In particular, we seem a lot better at PROCESS. We're more willing to create tools that improve our ability to engineer, partially because we use the same skills to make tools and products.

Best example? Version control.
Almost everybody I talked to was really jealous of version control. They wished they had it in trad. Same with pull requests and automated testing. While trad makes better products, they're much less efficient per unit time, due to poor tools and poor processes.
Most of the people I talked to were much happier in software than trad, for this reason. Better work environment, better working process, less inertia and org-rot. But most also missed the dedicated requirement and design time, and- most of all- the social importance on quality.
Are these things that we can port into software? Probably! And I think they'd be worth it, too. I mean, its my job, after all!

At the same time, there's a lot we can teach to everybody else. Trad pulls off miracles with shitty tools, what if we got them better ones?
The project isn't over, far from it. I'm on break for a bit, but still looking for people to interview. In particular, I'd love to talk to former trads from:

- Environmental
- Aerospace
- Architecture
- Bio
- Bureaucracy eng (??)

But I'd love to talk to other crossovers too :)
To be explicit: I want to talk to any person who has worked at least a year as a traditional engineer and at least a year as a software engineer. Enough to know about how both are practiced in the Real World, not just classes or from stereotypes.
If you find this stuff interesting, you'll probably enjoy my blog, where I write on all sorts of similar things: hillelwayne.com

I particularly focus on software design and formal verification, and offer consulting on it: hillelwayne.com/consulting/ Saves time, saves money!
PS One thing I forgot to mention:

Almost everyone I talked to was very clear on this: software engineering is "real" engineering. It might have different constraints, it might be less mature, but it's still "engineering".
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Hillel
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!