How Low-Code Delivers on the Promise of Agile
Recently I had the pleasure of conversing with Malcolm Ross (Deputy CTO) and Ben Farrell (VP of Communications) from low-code vendor Appian. The conversation was quite eye-opening for me, as initially, I had a very different idea of what exactly low-code was.
Let me explain.
My perception of low-code comes from covering the smartphone sector. Some years ago (around the 2010-2015 period), several services came into being that made it possible for people to drag and drop their way into creating mobile applications. These platforms required zero understanding of software programming and very little understanding of how mobile apps worked. They were a means to create not just very basic apps, but sometimes even more complex software for either Android or iOS.
Being someone who covered Android, I tested those waters and even created an app of my own — one that made it possible for fans of my novels to keep up with news, purchase books, and even interact with me. It was a fascinating experiment and the services I tested were amazingly accurate with their descriptions. Having absolutely zero experience developing mobile applications, I built something that wasn’t just functional, but pretty cool.
Since then, those services have gone by the wayside, but my perception of low-code development did not. After all, the name of the movement is pretty self-explanatory. Low-code should simply equate to building applications using very little code.
Being a curious tech writer, I opted to kick the tires of some of these new services. I’m not going to lie, this new-world-order of low-code solutions is nothing like the old-school attempts. There’s a complexity to the modern low-code system that not only requires software engineering experience, it also demands a solid understanding of business processes and data.
Already you’re probably thinking, “That doesn’t sound like low-code to me.” That’s because the definition (or at least the perception) of low-code needs to be altered to meet a much more complicated reality.
Based on my conversations with these gentlemen, I’d say low-code is this:
A means for experienced software engineers to build scalable, business-critical software efficiently with re-usable building blocks through a web-based or desktop GUI.
Doesn’t sound like the low-code of old. In fact, attempting to work with low-code solutions without a solid understanding of code is an exercise in frustration.
But what of this evolution? To that, Malcolm Ross from Appian clears it up a bit.
“We used to call this, in the early 2000s, Rad (rapid application development). I personally started doing development in 1990 with FoxPro and Microsoft Access, which was basically low code, drag and drop design tools for doing full-stack development data, UI, things like that. So it’s not new at all.” Ross said. “But then again, just like a generic company that provides goods, it’s generally best practices for anyone to make it easier for your consumers to use your goods. In that spirit, low-code is like how do I make it easy for this complex technology stack to be consumed and value derived from our customers? And that’s the spirit of low code, and how we go about that in product management at Appian.”
But Why Now? The Evolution of Agile
What has sparked this new take on low-code? “The ultimate driver though, I think, that really occurred with low-code [is] traced back to a number of things that were happening in the early 2000s,” Ross said. “One was the transition and introduction to Agile development methodologies from waterfall. We all saw these waterfall projects, during the 90s and 2000s, where you gathered requirements for like six months and then spend three years building something and deploy it and then expect to get value over 10 years and it’s a big disaster. So the move to Agile put pressure on IT teams. Agile was interpreted first from the business as not speed to adapt, but rather just speed. So all the business wanted was ‘Give me what I want faster.'”
According to Ross, agile sounded as though it was perfectly capable of delivering on those promises of fast, fast, fast — but it really wasn’t the intent. Instead, Ross says, “agile forced businesses to work together more discreetly. So we saw in the 2000s to 2010s more composite teams, which were made of both business and IT functions forming a single team to deliver digital solutions. That was probably a bigger innovation you saw as far as team structures, and which forced business users to understand software development more, and IT to understand business operations more and start to adapt to each other.”
“Agile forced businesses to work together more discreetly.”
– Malcolm Ross, Appian
Those agile teams eventually became part of the software development process and forced some fundamental changes — introducing things like CI/CD, Jenkins, Bamboo, JIRA, GitHub, JUnit testing frameworks, Selenium architecture, and JMeter. Everything was coming together to create the large tech stack required to successfully pull off agile.
Ross continued the deep dive into the timeline of low-code, touching on Business Process Modeling Notation, Object Management Group, universal modeling language, Decision Modeling Notation, case management, and more acronyms and buzzwords than you can safely consume in a single sitting. It was a fascinating discussion that helped me to understand that low-code solutions were really geared for enterprise businesses that wanted to create incredibly complex processes efficiently, reliably, and securely.
The idea behind low-code today is absolutely needed for any business trying to keep up with the competition, because the current world of containers, Kubernetes, cloud native, and massively scaling applications requires development teams to be able to think and act far faster than they ever had. To depend on traditional development models in today’s world will only put your business behind. And that could easily lead to a slow and painful death.
Needless to say, low-code is not for everyone. If you approach it as if it’s going to be a way for your company to create applications and services without having to employ a development team, you’ll very quickly grow frustrated with how most of these platforms work.
Instead, approach low-code as a means for your software engineers to be able to help deliver on the promise of agile, in a world where businesses are evolving faster than ever. Low-code can help your teams create and deploy applications, systems, and services with speed, reliability and security.