Importance of Systems engineering

submited by
Style Pass
2022-09-24 04:30:07

This post highlights the importance of systems engineering and how it’s equally if not more important than coding. As new graduates, we often think software engineering is all about writing clean code and designing systems. While these are important when it comes to building a new system, it’s important to realize that most software engineers spend the majority of their time understanding, and analyzing different areas and aspects of the systems. Unfortunately, I have seen several junior engineers (including me in the past) not appreciate this part enough early on. This blog post is my attempt to convince any software engineers who are new to the field about the importance and joy of systems engineering.

One of the most common ways you would encounter systems engineering is debugging the correctness or benchmarking/analyzing performance. The most interesting design ideas that I have internalized in my career have been from analyzing/debugging systems. Coding has mostly taught me design patterns, API design, and better abstraction but reading and analyzing have mostly been responsible for teaching me about system architecture and design.

There’s a pretty good discussion in https://sre.google/sre-book/eliminating-toil/ around some related topics. Roughly, it maps “coding” to “software engineering” and “analyzing/configuring systems” to “system engineering”. I don’t like the definition because almost all good software engineers do systems engineering as well as coding. However, it’s a great taxonomy of things every software engineer does.

Leave a Comment