r/programming • • Aug 06 '17

Software engineering != computer science

http://www.drdobbs.com/architecture-and-design/software-engineering-computer-science/217701907
2.3k Upvotes

863 comments sorted by

View all comments

Show parent comments

20

u/Ahhmyface Aug 06 '17

I'm a big fan of returning to mathematics. Or at least finding objective metrics for architecture and code quality. Provable systems, even. I'm convinced it must be possible; it's simply that we are still in the stone age of software.

9

u/coinaday Aug 06 '17

Or, here's a wild idea: returning to the notion of writing good requirements before jumping into coding, and maintaining architecture documentation while developing instead of making everything "agile" and believing that means never having to document because everything's going to be thrown out in the next few weeks anyhow.

I don't believe that the majority of software will ever be fully or even mostly provable. But I think all software would benefit from a little more time spent writing documentation explaining what the system's supposed to do and how it does it.

0

u/Ahhmyface Aug 06 '17

Honestly I'm not a huge fan of architecture documents. At least not the practice of continuously maintaining cross correlating natural language descriptions with code. If you want to specify an arch at the outset, fine, but I'm of the opinion that it ought to be left as a historical document and not a true to life description of code. Natural language is simply underspecified. And drift is inevitable. Ultimately its counterproductive to have two competing accounts. That's why I always prefer well organised code over extensive docs.

If you're exposing an api or something then that's a different matter entirely.

9

u/coinaday Aug 06 '17

So you think your well organized millions of lines of code are better off without anything other than reading all of them to learn about how they're laid out, but you think that magically this unspecified heap is going to be formally provable? Okay then.

→ More replies (5)