HN user

dewitters

10 karma
Posts0
Comments4
View on HN
No posts found.

My point in the article is also that we can and need to do better (maybe not clearly explained ;), but it is my belief that using the "engineering" metaphor will hold us back. A lot of people, maybe even most, believe that we should improve ourselves by becoming "more like engineers". For example by using Formal Methods etc. This might be true for a small number of projects, but it is my believe that for most software projects, as software developers we need to become "less like engineers".

"Engineering is the application of technical knowledge to solve problems.", therefore, engineers try to gain as much technical knowledge as possible to solve their problems. In my opinion software development should evolve to require less and less technical knowledge, that way we can spend more effort on the real problem: mapping the problem domain into a clear software representation. Developing software should evolve closer towards the human side, and not towards the technical side. And so far, programming languages for example have evolved in that direction.

Indeed, I even agree that the people that write software for the F-22 are engineers, and better use engineering practices to build their software. The requirements are probably pretty strict/well defined.

But there is plenty of software out there (maybe most software) like ERP/CRM, desktop/web applications, games, etc ... , where the technical parts are not that important, or aren't really the main problem. The main problem is to try to create the most clear representations of real life items (customers, business processes, human resources, etc.), and make them clear to other programmers in the source code, and to the customers (who most of the time aren't technical).

It's probably true that my theory doesn't make much sense for lower level/close to the hardware software development. But for high level things I still think I'm absolutely right ;).

Hi there, I'm the author of that article :). It always seems to provoke a lot of discussion, and most people that react on it always seem to disagree with my point of view ;).

Unfortunately my main thought always seems to get lost. Maybe I should try to make it more clear in the article. In my opinion the core focus of software development, and therefore also the most difficult part, is to create an image of the real world (both in source code and the program). An engineer's main focus is completely different.