Tools Were Made & Born Were Hands

Tools Were Made & Born Were Hands

If you haven’t read the famous old school rant Worse is Better from Richard Gabriel, you should. Richard never really decided if he was right or wrong, and even wrote a rebuttal under a pseudonym called Worse is Better is Worse. After over ten years of thinking about it, he finally wrote in 2000 “risk-taking, and a willingness to open one’s eyes to new possibilities and a rejection of worse-is-better make an environment where excellence is possible.” Just like Richard, I have muddled through this idea all of my career. I’ve worked on ideas with careful precision but never fully baked and never released. I’ve come to the conclusion that ultimately what we build is scalped by human hands, and only when it touches our hands does it form.

This is why it’s important for a software system to touch the real world, to be delivered and touch human hands. It turns out software isn’t valuable until it’s running. Because ALL software is a service, even when it doesn’t have a network connection, all software is there to serve our needs and therefore when it isn’t running, it serves nobody. The corollary is that software can also harm, and harmful software not running is better than software that runs. Our role as professionals and human beings is to build software that serves and prevent software that harms.

Harm can be categorized in various ways, and one category is software faults. I believe we can have fault-free software following a straightforward process of fixing every bug that rears its head immediately. Ideally, before the software touches the intended user’s hand. Therefore it’s essential to have techniques to prevent bugs from happening at the beginning like good design, and also catching them early with Design by Contract and other methods. It’s easy but requires discipline, and it’s possible because I’ve seen it first hand.

Maybe this is where Richard is both right and wrong about worse is better. It’s better to deliver software because it can be formed by the world and human hands. It can start serving people and providing benefits. At the same time, you must not deliver software that has bugs because software has a tendency to spread like a virus, and small problems quickly become big ones at scale.

I believe you can have your cake and eat it too. You can release software frequently and keep it fault-free. Where I conclude is not Worse is Better, or Right is Better, but Serving is Better. Don’t give up producing, serving, and fixing. Don’t give up sculpting.

要查看或添加评论,请登录

Maxim Khailo的更多文章

  • A Different Kind of Camera

    A Different Kind of Camera

    When the camera was invented, painters were worried they would be replaced. Upon seeing an early photograph, French…

    1 条评论
  • All Watched over By Machines of Insanity

    All Watched over By Machines of Insanity

    In Adam Curtis's TV series "All Watched Over By Machines Of Loving Grace", he outlines a future where machines create a…

  • AI Efficiency and the Acceleration of Everything

    AI Efficiency and the Acceleration of Everything

    Imagine preparing for a really long hike. There are bears and cougars out there.

    2 条评论
  • Bugs Faster than the Speed of Thought

    Bugs Faster than the Speed of Thought

    I got access to OpenAI’s GPT-3 last year and one of the first things I did was prompt it with a C++ interface struct…

  • Deep Latent Space Maps

    Deep Latent Space Maps

    As I watch my children grow up, I am always amazed at their pace of learning. It turns out by 18 the average person…

    3 条评论
  • We Must Become System-System Thinkers

    We Must Become System-System Thinkers

    Everyone building software must become a system-system thinker. A system-system thinker is someone who understands that…

    4 条评论
  • The Reality Making Machines

    The Reality Making Machines

    This short essay is for computer people like me. Meaning, people who make software.

    2 条评论

社区洞察

其他会员也浏览了