The Bulk of Software Development isn't Engineering
I recently had a conversation about Cybersecurity with a friend (him being very much interested in it) during which I realized something:
I mostly enjoy the design parts about Software ‘Engineering’.
But back to the beginning. In every domain, there’s two kinds of problems:
- Problems where you have a clear goal (engineering problems)
- Problems where you don’t—there, you only know (or think you know) properties a solution might have, and know whether you’re going in
the(a) right direction (design problems)
And the more we were talking about Cybersecurity, the more I realized, my attitude towards it felt mostly pretty similar to debugging a memleak in C (one of my least favorite activities in Software Development) and not at all like finding out how the parts of an application fit well together/how the application fits into its larger goals.
So,
Debugging is Engineering
while
Architecture is Design