Myths about no-code software development

I’ve been an advocate for no-code software development for more than a decade, I’ve researched the subject, and created several implementations of it – My latest addition being Magic. Hence, I believe I am qualified to voice my opinion about the subject, and hopefully debunk a couple of myths about it in the process.

First of all, no-code software development does not imply that software developers will loose their jobs – Quite the contrary. To raise such claims, would be like claiming authors would loose their jobs due to the invention of the printing press. In fact, the invention of the printing press made the market for books grow exponentially, and resulted in many new jobs being created, and the numbers of authors literally exploding over the next 5 centuries.

No-code software development is a tool for increasing productivity, and making it simpler to create software. It is not a magic (pun!) bullet that will allow everybody to create software. The software created using no-code concepts, still needs to be modified, administered, changed, and debugged. This is something only a skilled software developer can do, the same way only a skilled editor can proof read a book, edit it, and improve its quality.

It will still take 9 months to create a baby even in a no-code world. No-code software development does not in any ways violate the mythical man month. However, the advantage with no-code could allegorically be said to be the equivalent of that instead of creating one baby, you’ll have triplets. Simply because the demand for software seems to be never ending, and even if we could improve development speed by a trillion, the market would still need more, more, and even more software to be created …

Before the printing press was invented, only two percent of the world’s population knew how to read and write, and only a fraction of these were considered authors. After the printing press was invented, more and more people became literate, and more and more people were given jobs as authors. The invention of the printing press literally grew the market for authors exponentially over the course of the next 5 centuries. There are no reasons to believe no-code software development won’t obey by the same rules.

However, what no-code development will do, is to eliminate the burdens of boring copy/paste software development from you as a software developer. Basically, the stuff we could arguably train monkeys to do, will no longer be needed to do by human beings. This will free up time for you as a software developer, to spend more time on the fun and cognitively challenging stuff, and less time on the boring idiotic stuff you tend to spend most of your day doing today.

Why am I writing this? Well, instead of me explaining why, I’ll include a comment posted at Reddit by somebody seeing my no-code system, to explain why I think it’s important for me to explain this …

My advice to you, is to breadth slowly in and out – I’m not replacing neither software development nor humanity at large. I’m simply making it more interesting to be a human being, making your job more interesting, by allowing you to focus on the important stuff – And ignore the boring parts. If you want to know how, you can watch the following video …

The Magic of no-code software development

What others are saying about Magic

Almost all comments I have been given about Magic, and developers testing it out, have been exclusively positive. Check them out here for yourself. These comments are from a couple of recent threads at Reddit.

There are others too, but I don’t want to add too many. If you want your own testimonial up here, please fill out the following form, and I’ll add it to this website somehow.

Magic is now secured for 1.000.000 years

I just read about the requirements for having your GitHub repository participate in the Arctic Doomsday vault, which is created in Svalbard to last for a million years (or something) – And golly gosh, it seems also future Homo Sapiens, if still around 1.000.000 years from now, can benefit from Magic.

Of course, Magic is not the only repository to make it into the vault – But it’s kind of interesting that it’s amongst those who made it I must confess 🙂

Cyprus is still in the EU

Today Britain gets their independence. 60+ years later than Cyprus, but OK, let’s leave the gory details out of this, shall we? Hence, I’d like to congratulate Britain on this accomplishment, and at the same time inform business leaders, CEOs, and investors in Little Britain that Cyprus is still in the EU

… just sayin’ … 😉

Hence, in addition to having the lowest corporate taxes in Europe, a fairly recognizable culture, 95% of the island speaking fluently English, high level of education, where a large portion of the islanders literally studied in London – We (Cyprus) are now closer to Europe than Britain. So if you’re a business owner in England looking for ways to (re) establish yourselves inside of EU – Welcome to Cyprus my friend.

We could surely need the jobs 🙂

Benefits …

  • Literally zero percent corporate tax
  • About half the salary expectations
  • 95% of the islanders speaks fluently English, and the culture is very close
  • An amazing people (I’m a native Norwegian myself, and they’ve taken me to their hearts as if I was one of their own)
  • Oh yeah, almost forgot … STILL a member of the European Union 😀

But congratulations Great Britain with having finally gained your independence …!! 😀

Emotional debt

Debt is normally a bad word, but when it comes to emotions, things are different. If I tell others that you’re brilliant, you will be emotionally indebted towards me, which makes sure you will try to convince others about that I am brilliant, and very often right in my assessments of other people – Simply since one of my assessments is that you’re brilliant. Very easy to understand.

This morning I woke up to another PM from Blake, where he wanted my opinion about something – And hence as a result, I created another outbound link towards DZone here on my blog, for no other reasons than that I felt I had to, because Blake is so focused on me succeeding, that I feel I have to make sure he succeeds. Notice, before Blake started working as the community manager at DZone, this blog contained maybe one or two outbound links towards DZone. In the few months Blake has worked for DZone, I’ve create 5-6 outbound links towards DZone – Just sayin’ …

Other similar ideas down this same alley are often referred to as pay it forward, community driven, etc. Basically, the idea is that if you want to succeed, you have to make sure others succeeds first, and that you somehow is the facilitator for their success, and that their success depends upon your success. It doesn’t always take a rocket scientist to build a rocket. Sometimes all you need is common sense 🙂

Database administration tools

Sometimes you invent things, and you’re not entirely sure what it is in the beginning. Maybe you feel it’s really brilliant, but you cannot clearly see all of its use cases initially. And the more brilliant and innovative whatever you invent is, the more this tends to happen. Magic is like that to me.

One thing that has dawned upon me lately though, is that Magic is a really good second level support tool, for editing records in your databases. Often we have problems originating from data in our apps, and we want to browse through our data, without having to write weird SQL. Maybe we even want to update a record, and we’re not sure if your SQL will update one record, or 20 million records. Or maybe we want to delete a record (sigh!), and we’re reading our SQL 15 times, having two other developers reading it too, making sure we don’t empty our database table in production as a consequence of a typo in our SQL. There is a reason why most developers have only read access to the production database – If even that …

For such scenarios Magic is really, really good. For instance, at my day job, we keep localised words and phrases in our database. Then we send its English version to some foreign person, who’s not a software developer. He edits the translations records using Excel, and later we import his translations as CSV files into our database. Highly manual type of work, very tedious, and very sub-optimal.

With Magic, we can simply allow our translator to access the production database directly, through some kind of Magic app, giving him or her only access to our translation tables, and he can edit it directly using his browser. Without fearing he’ll mess up things, or forcing him to learn SQL may I add.

Can you find other use cases for the thing …?

Einstein

According to Blake, DZone’s community manager, DZone will publish one of my most exciting articles ever later today. The reasons why I am excited about it, is because it’s the first time I get an article published about the frontend scaffolding machinery in Magic. Originally though, I wrote the article slightly different, trying to emphasize a philosophical point, which got lost during the review and editing process. Don’t get me wrong, I don’t mind having DZone editors proofread and edit my content, and I do understand how they might have felt that my “punchline” was a little bit out of context – However, I think it was kind of important myself, so I’ll try to write up the same ideas here – And the idea was to show how the really smart people will use the best tools available, to avoid manual labor, simply because they have no ego. As I explain my point, I will also hopefully give you a tool to separate the Einsteins from the Elvis.

Imagine asking Einstein what the square root of 1.2675467 is. How do you think he would have answered that question if he was alive today? My assumption is that he would have fetched his iPhone, pulled up its calculator, punched the numbers, and clicked the “square” button. Then imagine asking Elvis the same question. Elvis would have asked you for a pen and paper, and probably spent 20 minutes calculating the square root by hand, simply for no other reasons than to prove that he could. The reasons for this difference, is because Einstein doesn’t need to prove anything – While Elvis needs to take care of his reputation, to make sure everybody understands he’s “very good at his job”. Einstein doesn’t need to show you he is good, you already know he’s good.

If you don’t understand what I mean by “Elvis” and “Einstein” as analogies here, please read this Quora answer, which actually is my most popular answer ever at Quora.

A brilliant developer will hence always use the best tool available, to avoid doing manual labor – While a less than brilliant developer will do anything he can to avoid using tools, to show the world that he can do it himself, by hand, without needing tools. This becomes the equivalent of “software development ego”, to speak in Buddhist terms, and results in much suffering for Elvis. This also makes Einstein 1.000.000 times as productive as Elvis – Because calculating square roots of anything by hand, is simply not very smart, and steals precious time from your more important tasks, preventing you from being optimal in your approach to your job. Your calculator can simply calculate the answer to your square roots 1.000.000 times faster than you can do it using pen and paper.

I finished of my original article with a funny conclusion, which kind of was that I shimmered a job interview question in the above realization, which was as follows: Ask the interview candidate about the square root of some 16 digits number. If he pulls up his phone to calculate it using his calculator, the candidate has passed. If he asks for pen and paper to do it manually, he’s failed. Notice, I don’t literally mean that you should use trickery job interview questions such as this, but I think you get my point if you look through the humorous parts of this conclusion.

Now we know why Einstein gets to show everybody his tongue … 😉

Obligations

When you have as much coding experience as I do, you kind of have a moral obligation to teach – It simply comes with experience, and is something probably most “super senior software developers” can resonate with. Having coded since computers had two digits kilobytes of RAM, obviously implies decades of experience – And since I know I won’t live forever, I feel a moral obligation to teach the things I’ve taught myself over the years to those coming after me.

Hence, I have written articles about what I know for dozens of different magazine, probably the most famous being MSDN Magazine, where I broke a couple of records too may I add on a couple of my articles, in regards to numbers of readers and page views.

Anyways, my current publisher of choice is DZone. Simply because they care about my opinion, they listen to me, and if I have change suggestions for them, they will often implement my suggestions in weeks to please me and other writers at their site. In addition, the monthly meet-ups with the rest of their core team, have become something I very much look forward to, since they’re often able to gather some of the most interesting tech writers in our industry into these meetings, making every meeting become a party for my tech hungry mind.

If you have dozens of years of experience, you too have an obligation – And that obligation is to make sure whatever you’ve taught yourself over the years, lives beyond the number of years your body happens to walk this earth. Hence, teach! Because you have an obligation to humanity to make sure whatever knowledge you’ve accumulated, “rubs off” to the next generation, and does not follow you to the “other side” as you leave us.

In a way, if you think about it, realising that some parts of you will live on, even after your mortal body dies – Is also quite comforting too may I add 🙂

Eliminating process boundaries

I know a Buddhist joke, it goes like this: “The Dalai Lama walks into a pizza restaurant. The waitress asks him what he wants, His Holiness answers ‘One with everything'”.

When Gautama Siddhartha became the Buddha, his first realization was that he had always been “one with everything.” This was according to his own accounts, one of his most important realizations, implying he had always been the Buddha, and so had everybody else too. Similar constructs exists in software development. Software developers tends to believe in systems of perfect information. Two examples of such systems of perfect information are chess and Tic-Tac-Toe. However, no such systems exists, even though we tend to believe they do. A perfect example of this is the following screenshot I took this morning, which came about due to that the cleaning lady had cleaned my desk during the weekend, and probably jacked out one of my cables to one of my monitors.

Active Events, or Super Signals as I refer to them today, is simply the realization of that my computer is already “one with everything”, due to that it allows me to create systems, where I no longer care about whether or not my functions are executed in-process or out of process. Hence, I simply treat my in-process functions as if they were out of process invocations, allowing me to polymorphistically change my implementations, as if I had the whole World Wide Web at my disposal. And no, this is not science fiction – It’s at your disposal today. And I’d argue it’s pretty useful too 🙂

Pleasing 1 customer

The nature of software is that it can be copied. Implying once you’ve created the initial version of your software, and somebody is willing to pay you to gain access it, you arguably have a license to print money. This results in that as you start marketing your software product, it becomes imperative to please your first customer. Because that first customer will provide you with valuable feedback, that will allow you to significantly improve the quality of your software – Resulting in that it becomes easier to sell to the 2nd customer, the 3rd customer, and so on. In addition, your first customer, will also hopefully give you valuable quotes, that you can use in your future marketing process, making it easier for others to believe in whatever product it is you’re trying to sell.

The first customer you have as you start out your software company, hence becomes validation of that you’ve done something right – In addition to that he’ll lead you into an even better path for your future efforts, and such improve your product, while also proving that your product has the right to live.

Take very good care of your first customer. Because if you can please him, you can please the world – And if the world is pleased, the world will take care of you!