Hacker News new | ask | show | jobs
by prmph 571 days ago
I think you are confusing the working conditions of writing software in a corporate environment with software engineering. To me software engineering is about skilled application of a wide range of engineering concerns to programming, such as architecture, data modeling, and QA processes.

I find such engineering fun and meaningful. As a software engineer, you understand that is not enough simply to write code that works, the right (or wrong) architecture, for example, can have a massive impact on various stuff like performance, reliability, code-quality, etc.

The BS involved in working for the tech industry as part of a team is another thing entirely.

2 comments

I think that the original advocates of software engineering -- people like Margaret Hamilton -- were promoting an approach akin to chemical engineering.

Chemistry is about understanding chemical elements and compounds and the ways they react with each other to form different compounds. This includes the synthesis of new compounds, to understand the mechanism by which they might be created and the properties of the new compound; accordingly, chemical synthesis by a research chemist tends to take place in small amounts.

Chemical engineering is about the production of chemical substances, reliably, at massive scales for industrial purposes. Chemical engineers elicit and apply the manufacturing processes necessary to synthesize these chemicals by the kilolitre or more, which may be totally different from the processes the experimental chemist uses in a lab.

Similarly, programming is the act of writing code for a computer to fulfill some task, or explore some computational idea. Software engineering is the application of a standard, defined process to reliably produce code at massive scales for industrial purposes (enterprise applications, etc.). Architecture, data modeling, and QA are part of it, but the heart of the discipline is finding and applying the means to organize a large team to produce software that is robust, scalable, and maintainable to support an organization over the long term.

People who fancy themselves artisan programmers chafe at the industrialization and standardization of software engineering. But, as Milt Bryce said, "There are very few true artists in computer programming; most are just house painters".

"Software Development" includes programming, engineering, and "the BS involved in working for the tech industry as part of a team". Your title can be [software] programmer, software "engineer", software developer, or a plethora of other things.