Failure Driven Design: <https://guitarvydas.githu...
# share-your-work
On slide 5 you have "waterflow workflow" — is that a typo? Did you mean "waterfall"?
Yes, that’s a typo. I meant “waterfall”. Thanks for catching that. I’ll see if I can remember how to regenerate that file….
Interesting, thanks for sharing! A lot of overlap with my own thoughts/projects over the last few years. My own perspective is a bit different, as I am coming from scientific research rather than software development. As you hint at in a few places, research has always been done with failure in mind. As was scientific computing in its early days, when machines and software were tailor-made for us. Then the commodification of hardware and software happened, and scientists became increasingly pressured to adopt these commodity tools, and with them the attitudes of professional software engineers. In parallel, scientists were forced to adapt to project-based funding schemes that punish (visible or admitted) failure. I have bookmarked your slides for another read with an in-depth study of the references. More later...
When reading about your layered approach, I was reminded of scientific computing in the 1970s, when programs started to grow seriously. One solution was "Fortran preprocessors", which in modern terminology were DSLs compiled to Fortran 66. As you note, Fortran is a horrible target language, but it was the only one available. I worked briefly with such a codebase in the 1990s. It looked weird, but I did see how it was the lesser evil compared to hand-written Fortran 66.