Hacker News new | ask | show | jobs
by tadzik_ 2470 days ago
Well call me crazy, but imho the reason for that is that for the most part, software engineering is not engineering. We're not fighting laws of nature, we're fighting other people's style and decisions. That's why our work is opinion based: we're basically computer lawyers.
4 comments

I can't agree with this. We are fighting with chaos, we organize and encode processes, systems and information.

This is the definition of engineering on wikipedia and we fit the description:

> Engineering is the creative application of science, mathematical methods, and empirical evidence to the innovation, design, construction, operation and maintenance of structures, machines, materials, devices, systems, processes, and organizations.

Software engineering may not be an engineering discipline but in theory you could set up empirically studies/experiments to test certain hypotheses of software development practices. In theory you could also review or evaluate design against certain criteria and derive what's better to fulfill certain goals.
And yet, when the subject boils down to people and culture, testing is slow, complicated and unrewarding. Results need a lot of variable elimination and are rarely used for practical decision making. This applies to most “people” subjects.

Testing nature is much easier, and thus establishing norms in these subjects is easier.

Absolutely. And I think there were actually studies on the effectiveness of TDD, and I seem to recall them confirming it.
You are so right, the laws of nature have been abstracted
> we're basically computer lawyers

I like this. I mean, as a description, not so much as a fact, but it is what it is :D