Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

1. Our customers almost never have such excellent and unchanging specs for us to work with.

2. There is no such thing as software "engineering". Engineering implies a degree of understanding of the processes involved which programming, a craft still in its infancy, has not yet evolved. As Alan Kay famously stated, programming does not have a fundamental building block comparable to an arch.

We have to wing it, every time, on every project. "Agile" is an attempt to add some structure to an inherently unstructrable process. NASA (cited in this thread) owes its relatively good software to good specs, rigorous testing, and letting its programmers go home at night than to following any particular methodology.



We have libc, besides the arch is probably a bad example for engineering. Maybe civil, but the wheel would seem like a better example of a fundamental engineering component.

I also think you are being disingenuous to software engineering. There's plenty of understanding of the process, 50 years of computer science counts for something.


Don't confuse computer science and its application in writing software. We have made great progress in algorithms and generally understanding the applied math aspects of expressing computational processes. The software we write is still untrustworthy garbage.

“Beware of bugs in the above code; I have only proved it correct, not tried it.” — Donald Knuth




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: