A Really Brief History of Software Development Thinking
No code/low code software development is a straight forward technology. It grants the ability to produce applications through visual interfaces, such as Graphical User Interfaces (GUI), rather than text coding. However, taking a step back and looking at the history of software development as context, we can see that this might actually be a significant inflection point in history. No code/low code dev is a far deeper idea with more significant productivity gains than its novel appearance suggests.
Let's liken it to the Gutenberg press, which brought about the easy reproduction of written works. The invention itself is important, but the impact was meteoric. Before the reproductive printing process, ideas were confined to a very few number of people, firstly those who could read, and secondly, a smaller set of those who had the books that contained the ideas to be read.
After Gutenberg's advent, it was a grand thing to see literacy rates increase, but the real gem was how ideas reached people that otherwise may have never been exposed to new ideas. That's the beauty of books. If you have an idea, and I have an idea, and we swap, we both have two ideas.
Perhaps the Internet is the new Gutenberg press, disseminating information at lightning speeds. Grand to be sure, but not a new idea. It's still reproduction. It really behaves like Gutenberg's press on steroids. What could be a new game-changer though?
Let us rewind to right before the digitization of computers. That is because before there were digital computers, there still existed computers; they were actually just people. These human computers performed operations by hand, calculating sets of numbers based on instructions, by today's parlance known as algorithms. They would go by the name mathematicians. It was the only way to do it. So powerful were these people that they sent other humans to the moon using mainly just their brainpower and very rudimentary computers.
What the first electronic computers were able to do, like the ENIAC from 1946, was reproduce results based on the instructions that human computers were already performing but with much greater speeds. They would perform the same tasks that humans could but thousands of times faster. Just like in our comparison of Gutenberg's press and the Internet.
What is taken for granted today is that those early computers were fast but not smart. They performed a set of instructions without deviation. They were not designed to solve problems, to take complex unknowns, and to produce answers. They were designed to complete an already solved problem fast, like tabulating accounts. The computer could add the numbers more quickly than a human could, which was its prime use.
Today, how many misspelled and inconsistently constructed queries do you ask Google? Probably more than most are willing to admit. And yet Google still manages to find precisely what you want. Google is a smart computer. This was entirely not possible with the ENIAC. If the ENIAC answered incorrectly, it was because the coder programmed it incorrectly—a fast but dumb computer.
For years after ENIAC, these problem solvers and computer programmers were a specialized set of people. The programmer's education was rare, and like the analogy of Gutenberg, more people could read than could author something worth reading. Today, coding is a reasonably standard class in schools. And most people understand the basics of what code is and does, even if they can't code. Yes, it is the instructions that computers use to perform tasks.
But coding is not software development, and not by a long shot. Not every child that takes coding 101 becomes a software developer. Why is that?
Software Development as Thinking
Let's lean on another analogy, Leonardo Da Vinci, the great inventor. Da Vinci is hailed as a genius and a master craftsman, and rightfully so. But, he was foremost a great thinker. He was a genius because he understood how to connect dreams that presented problems with a path that created a solution. Contrastingly, his apprentices were also great craftsmen, but they took direction from The Great Da Vinci because he brought his powers of thinking that were uniquely superior. Da Vinci is the software developer, and his apprentices are the coders. There is a functional difference in the hierarchy.
Being a programmer means actively thinking about abstract solutions to a problem before you are even touching code or opening up your favorite code editor.
—Jonah Bitautas, Product Designer
Today, software developers take on greater responsibility for a software application. They ideate the solution; they consider human psychology, input, and errors; they model and test; they analyze and return to the problem asking more questions; they take into account business goals and data security. They may hire coders to take instruction and codify into a programming language what they have envisioned. But, the picture is clear: there is a stark contrast between the act of problem-solving for a software application and coding its instructions for a machine.
It's this facility of problem-solving which application developers constantly tap into. But, some of our best problem solvers are not coders or programmers at all. Are these problem-solvers an untapped resource? What to do?
Do you train specific problem-solving skills to skilled programmers? Yes. It has been done to great effect.
Or do you train specialized subject matter experts to code? Also, yes, but not always easy. Programming is a vast technical field in itself, with many pitfalls that are all but intuitive.
Perhaps you find the middle ground and form a collaborative team of subject matter experts and master software developers to solve problems. This is another often-used approach, but there are potentially high costs associated with the process. Depending on the complexity of the problem, this may be the right solution.
One new option is to turn problem solvers within organizations into software developers (called "citizen developers") by closing the gap between application development and them.
How is this done? With the use of No code/Low code development platforms sometimes called Visual Application Builders.
Visual Application Builders are the Gutenberg press in this scenario. As the Gutenberg press closed the gap between authors and the masses of readers, so do No Code Development Platforms (NCDP) bring the problem-solvers closer to the application user.
Building Applications without Code
Consider your organization's human resources. Within it, everyone is a problem solver, but there may only be a few coders. Think about each one and their ability to work through unknowns and arrive at usable solutions. You may find that many problem solvers at many levels excel at solutions-oriented thinking. These people are the most valuable resource in the organization.
What if those powerful problem-solvers could think like software developers and produce software without actually needing to learn software code?
Many employees are not from traditional software development backgrounds, perhaps not even a technical background, but with No code/Low code (NCLC) tools, the gap between them and actually programming has been bridged.
Visual Application Development platforms aim to uncover these people by empowering them to develop their own applications using a Graphic User Interface and other visual programming tools to solve theirs and their company's business problems without the involvement of a traditional programmer.
Let's define these terms for clarity:
Visual Application Builder or No-code Development Platforms (NCDP) allow anyone, with any amount of programming experience, to create applications through the use of Graphic User Interfaces (GUI) and other configuration tools and by-pass traditional computer programming. Other tools that promote rapid development can include integrated libraries and build-test-deploy environments.
Visual Application Developers are those problem solvers that utilize Visual Application Builders to design and develop applications to create solutions to their problems rapidly.
A few other pertinent concepts and resources:
- Rapid Application Development is a people-orient Agile methodology for developing applications.
- 10 Useful Low Code Terms and their explanations, like Citizen Developer, and Democratization of Tech.
- No code/Low code Rapid Application Development
Now companies can tap into tremendous problem-solving resources by empowering their employees with robust visual development tools. A solution that turns non-Computer Science problem-solvers into software developers, while maintaining a single secure platform to bring its management under full control. In other words, problem solve and visually create a professional solution in one go.
Benefits of Visual Application Development
There are four immediate benefits Visual Application Development brings to organizations: rapid development; collaborative problem solving; "Right-sized" business solutions; and tapping of all mental resources.
No-Code Development Programs Have Features That Foster Rapid Application
Key features of no-code development platforms, such as pre-defined libraries and build-test-deploy integrations, allow visual application developers to leapfrog time-consuming development phases. Libraries provide convenient starting points so that visual developers avoid beginning from scratch, but instead start from a solid base they can customize to suit their needs. Further, coupled with build-test-deploy integrations, which ensures that solutions can be quickly applied to real-world scenarios, applications can promptly enter workflows and later improved based on immediate feedback.
It Opens Doors for Your Current In-House Problem-Solvers to Do More
Visual development invites non-traditional actors into the development process. It's a medium easily understood, unlike specialized coding. A visual environment taps into the problem-solving capabilities of non-programming orient team members who otherwise may have kept themselves out of the process. These non-technical people now have control over their innovations. Suddenly people can not only build the applications they themselves will use, but they can also use NCLC to re-imagine the way they work to be better and more efficient. They no longer depend upon others who don't know their fields as well as they do to design programs for them.
Applications Are Only Built Out As Much As Teams Need Them to be, a.k.a. "Right-Sized"
Visual application platforms make great efforts to prevent application bloat. Application bloat can appear in many forms, such as extra features in off the shelf software packages not applicable to the needs of the business. Or in designs that straddle multiple systems. By designing and developing in a single contained platform, costs are controlled, and applications exactly fit their intended use.
Bring All the Organizations Brains into the Loop and Unburden IT
Visual application development allows more members of your current team to get involved in the application development process, meaning they can remove certain development demands off an in-house IT team without messing up pre-existing solutions or creating more problems. Essentially, they gain the skills to do the work that would normally be deferred to a specialized department. This frees IT up to focus on other tasks.
Is This the End of Traditional Coding?
Not likely. Software programming is a complex and still developing science and that some consider an art. What is already apparent is that the functional gains produced by early computer developers have trickled to the rest of society. The processing power in an iPhone alone is 100,000 times greater than the computers used in landing the Apollo 11 mission on the moon. What the future holds for computer programming is only being imagined by the keenest minds today and promises even greater feats to come.
Traditional coders and software developers will continue to be in demand. A more practical question is how to maximize No Code and Low Code Development methodologies so that Visual Application Developers can achieve their goals optimally today.
Visual application builders are firstly problem solvers. They employ visual app development as a means of solving those problems quickly. This quickness is due to the power of visual development platforms to close the gap between the developer's lack of traditional coding knowledge and their specialized knowledge in the problem set.
In reviewing your company culture, determine if the empowered problem solver is the right fit. Formal hierarchical cultures and flat cultures are not a hindrance to visual development, but what is are cultures where specialists are prohibited from making application programming contributions beyond their subject expertise. If only those who have formal application development expertise are allowed to contribute to application development, perhaps visual development isn't the right fit.
But, if the company allows, even embraces, the problem-solving potential of its specialists to flourish as citizen developers, then their innovative contributions could have a dramatic positive impact on the business.
Cater to the Needs of Infrastructure-intensive Applications
Visual Application Platforms have their limitations. If the end application demands an intensity that the platform simply cannot provide, clearly it is not a good fit. This is a question best left to a discussion between the platform provider and your organization. Some platform providers may have capabilities for infrastructure-intensive applications that are simply not offered to the mass market. Contact and inquire from the platform whether they can suit your needs.
Choose the Right Platform
Choosing the right platform is paramount to having a successful development environment. Mirroring the advice for infrastructure-intensive applications, if after reviewing a particular platform's capabilities online, like Kintone's solutions page, or working through their demo, its best to contact the platform provider to ensure they can cater to your organization's needs.
What Next Steps to Take?
By now, perhaps the problem-solving potential of team members may be shining more brightly. Those people who would otherwise have sat on the sidelines in terms of contributing to the development of applications that can improve the company's workflows are actually beacons of innovation.
The next steps are to harness those innovative spirits, train them to utilized visualized application development, no code/low code development platforms to make their roles more efficient and effective.