One of my favourite quotes from ‘189 quotes for developers’ is: “Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live” – Martin Golding
I don’t think anybody became a programmer because they just LOVE debugging code… The reality is that programming (writing code) is synonymous with bugs. The idea of ‘bugs-per-line-of-code’ has been written about extensively by Steve McConnell in his well-known book; Code Complete. The author asserts that the industry average is about 15 – 20 errors per 1000 lines of delivered code. So, the more lines of code, the more bugs can be expected!
Even with a solid testing regime in place, bugs will find their way to the customers. As a developer in my early career, we often joked that the end-users are the best testers – they can discover bugs which evades even the most discerning eyes of the testing team!
According to research done by the University of Cambridge Business School, programmers spend 50.1% of their work time not programming. Half of their time is spent on debugging errors and fixing bugs.
With the accelerated adoption of Artificial Intelligence (AI) and Robotics Process Automation (RPA), many human activities are being supported and/or replaced by these emerging technologies – especially those activities where humans are prone to make mistakes. Given that human programmers are predisposed to the inevitable ’bugs-per-lines-of-code’ impasse, it is foreseeable that the reliance on text-based hand-coding by humans will decline over time as modern software development platforms become more sophisticated. The question you may have is; “can machines & software really generate code better than humans? And do this bug-free?”
A safe way to answer this (without opening a can of worms!) is to start the answer with ‘It depends…‘. Human developers will always be essential for the creation of software, but our roles may change, and the level of hand-coding required may vary depending on the type of software which is being built.
A New Way to Create Software Applications
According to Gartner, by 2020, at least 50% of all new business applications will be created with high-productivity application PaaS (hpaPaaS), which supports a no-code or low-code graphical, model-driven development model that enables professional and non-professional developers to rapidly build and deploy cloud-native applications. Forrester calls this Low-Code Application Development Platforms. Low-code is a way to design and develop software fast and with minimal hand-coding and it enables developers to deliver value more quickly and more reliably.
Low-Code has been around for some time, but the technology is maturing, and the increased pressure to deliver digital solutions faster, accelerated the adoption of ‘Low-Code’ application development platforms globally. OutSystems, a leading Low-Code Application Development Platform, provides a self-healing and validation engine (TrueChange™) in their Integrated Development Environment (IDE), that assures robust and error-free changes across all applications and their modules.
The screenshot below of the OutSystems IDE shows how errors and warnings are generated in real-time in the TrueChange™ tab while a developer builds an application and this is done mostly via visual modelling and configuration, not writing code.
Both errors and warnings can occur at any stage of the application lifecycle, like implementing some logic, designing a screen, testing a query, or publishing to the server. For most errors and warnings, double-clicking the error line in the TrueChange™ tab will take you directly to the source of the identified situation. Warnings make you aware of potential problems, but does not prevent deployment to the server. However, Errors must be fixed/resolved before OutSystems will allow you to deploy to the server.
With OutSystems’ 1-Click publish feature, a whole lot of awesomeness happens when the platform automatically generates and compiles optimized, bug-free code! The screenshot below shows the 1-Click publish process in action (well… it was in action when I took the screenshot!)
No Bugs?! Well, in theory, yes, but if any unexpected results are picked up during testing, OutSystems provides a visual Debugger as part of the platform for both Web and Mobile Apps.
The images below show the debugger for Web Apps and for Mobile Apps;
There are a growing number of low-code platforms in the market, but at eXquisit we partner with OutSystems. They are top rated by industry analysts in both Web and Mobile Application development, the depth and breadth of the platform is unparalleled and the platform is available as a public cloud service, but can also reside in a private cloud, on-premises or in a hybrid setting. With the inbuilt TrueChange™ and automated DevOps features, developing applications on OutSystems is not only fast, but significantly reduces bugs.
If you are a hard-core programmer, the notion of ‘Low-Code’ probably makes you nervous, or worse… irritates the *&# out of you? But fear not, the world will always need great programmers like you. In his article, Why Developers Fear Low-Code, Stanley Ideses (a native Android and iOS developer) explains how he learned to stop worrying and love low-code. Given the increased pressure on developers to build software faster, he asserts that coding faster is not a viable option: “Code is the bottleneck now. It’s an arduous, slow task prone to human error. And in my experience, there’s an exponential relationship between the speed at which an engineer writes code and the number of bugs they introduce.”
Low-code isn’t about reducing the value of developers, in fact, developers make the best low-coders! Low-code is not the big hammer for all solutions, but used in the right context lets teams of developers produce more value much quicker while drawing on their experience and understanding of how to create and maintain high-quality web and mobile applications.
Thanks for reading!