
Buggy technology is indistinguishable from malware - frisco
https://maxhodak.com/nonfiction/2020/09/13/buggy-technology-malware.html
======
amw-zero
This is a personal obsession of mine. I don’t subscribe at all to the
philosophy of “just build and ship it and let the users give feedback on any
bugs.” I think that’s totally a misunderstanding of agile - agile assumes that
your code was working before shipping. This idea that code can never actually
fully work and bugs are fine is frustratingly cavalier. How can we sell
products that don’t do what they claim to?

Beyond the philosophical, software correctness is a deeply interesting problem
with many different angles of attack. The most recent ray of hope for me has
been learning TLA+. It answers so many questions about the complexity of
software, and has such a relentlessly elegant design that simplifies so many
aspects of understanding software. Software behavior is a sequence of states -
nothing more.

When we write code, we’re attempting to encode all possible state sequences,
the number of which can be astronomical, as this article references. But it’s
quantifiably large - we can know the exact size of the state space. Software
is not some metaphysical phenomenon that is beyond mastery.

It can be built to work correctly, it just requires a desire to move beyond
the current tools that we have which are focused on easy construction. We’ve
focused all of our energy on just enabling the construction of any software in
the past 60 years - we need to now move on to enabling correct software.

