There’s no code like no code

Last friday I was working on a minimal webshop for the QWAN Code smells & Refactoring cards. I created a small order form on top of a web service to process the orders. It wasn’t much work, a basic service plus javascript widget took me about a morning.

When it was time to integrate with the payment provider, I read through various options. My aim was to go live within a day, so I was looking for the least amount of work that could get us to process payments and ship cards to our customers.

The two main optios were creating an integration through our web service or using a Buy now button that ‘integrates’ as a snippet of html on the shop page.

And then it hit me, that if we let go of something we wanted (volume discounts), we could also have the entire order form behind the providers Buy Now button. Customer data such as the shipping address and the customers’ e-mail gets mailed to us. That is good enough for now, it is unlikely we’ll be selling millions of units for this. The widget and service I wrote would not be needed, which saves us work deploying the service and making sure it keeps running.

So I let go of the code I wrote, and put together the Buy now button.

There are two outcomes of product development:

  • the product,
  • the learning.

I kept the learning and threw the product away, because there is no code like no code.

Sources of inspiration

Stephan Eggermoint coined the best code is no code for our Back to the future, (re)learn Smalltalk session. He was referring to database mapping code. If there is no database mapping, for instance with an OO database, there is also no code.

I was having a chat with Jason Ayers last week, and he was pondering a no code movement.

Question

As a product person, it requires you to be flexible with your constraints. As a developer, you have to be un-invested in the code you write. How many teams do you know that do that?

6 Responses to “There’s no code like no code”

  1. Jaap van der Velde Says:

    Well, for one, I prefer “no code like no code” to “best code is no code”, so good going on the catchphrase :) .

    I think it’s a good tale to remember and retell, I too remember a few instances of discovering a better solution after writing a good one and it takes a mental leap to let go of your precious product and do the right thing. Of course, some of those were caused by the oldest mistake in the book: writing before searching.

    But sometimes writing the code solidifies and further shapes what you really need. Writing code is a creative process. You learn something and discover things as you go along. So perhaps there’s no code like no code, but I still don’t mind writing some to throw out.

  2. Rui Says:

    I hope that we see a “No code movement” and that it will be well understood.
    Teams are not prepared for that. Users are not prepared for that. Teams will be afraid to loss their technical excellence (which they usually don’t have) and users are afraid about ‘usual buggy software’ but they consider that it’s the norm and will be much afraid to do small iterations with developers in ‘no code mode’ to really produce value.
    You should have a look at http://aspectize.com/ which produce an engine to allow lean software dev with less code possible.
    If this movement produce a no code manifesto, I’ll surely sign it :-)
    thanks for the article!

  3. John s Nolan Says:

    I once delivered a “software project” with a whiteboard and two pens. Does that count as ‘no code’ ?

    Sometimes the first assumption is that you need a computer

  4. Willem Says:

    Aspectize looks like a form of programming, which is code in another form, or not? Thanks for the support :) . Paradoxically, you might achieve technical excellence only if you are willing to throw your code away and trying different ways of solving and understanding.

  5. Willem Says:

    Hi Jaap, nicely put. I too think of writing code as a process of discovery. Thinking about it, with google and github we may be close to software reuse nirvana. By achieving that we might lose fun, learning and new inventions from ‘just writing some code’.

  6. Willem Says:

    Hi John, I would surely count that as ‘no code’. Depending on the maintenance effort required for the whiteboard and pens ;) . It is all too easy to take something (e.g. a process) that exists in the world and automate it, without thinking of another way of doing it, or not doing it at all.