Codeless != Designless
This thought is the product of many years of experience of different code-free solutions to problems usually solved with programming. I thought it might end up being an anti-codeless rant when the thought first occurred to me, but it is actually a argument in favour of design. Hence the change of title to “codeless does not equal designless”. And yes, I know that designless isn’t a real word.
The main sharp edge of my argument is that any designless system is going to hobble your organisation, so you have to make sure you have no designless system, whether it has code or not.
When you opt for a codeless system, you are responsible for ensuring that the people who will create it can do so with adequate design quality.
You can look at paper-based systems to get a feel for what this means. I helped out an accounts department in my first job and we used a great-big leather ledger (GBLL). The method of double-entry book-keeping meant that mistakes leapt from the pages. This was a well designed system. This facet of design is present in any system whether there is code or not.
Software developers are armed with a toolbox filled with patterns, concepts, and questions that elicit a well formed expression of what the software should do. They are also able to implement the software in ways that mirror the GBLL, whereby the software can determine whether it produces the expected results for itself. The use of code enables the software to last beyond their tenure. Conversely, anyone who has been in a business with designless business systems will have seen them fail either when their creator moves on, or when the creator is eaten by their own monster.
I’m not just talking about those mega-spreadsheets some businesses created, or the famous Access database on a shared network drive – the same problems crop up in CRM systems, or SEO tools, or even Google Analytics because they are implemented without design.
- Software developers produce a design
- The design can be expressed to humans and computers using code, or something else… but code works really well
This is why I’m having trouble generating excitement for “codeless”, because in so many cases it can end up being “designless”. However, any implementation of software within an organisation (with code, or codeless) can succeed if you ensure it is in the hands of someone who has a grip on design.