Low-code app development considerations
|Richard Harris in Low Code No Code Friday, September 8, 2017|
Low-code development considerations for app developers thinking of making the move away from native programming for mobile apps.
That's why we sat down and had a chat with the experts to learn more on how low-code fares in the present environment. Responses are from Justin James, Senior Director at FICO and Jason Herrington, Systems Support Engineer Manager at Georgia Tech.
ADM: What is the biggest misconception with low-code?
James: The biggest misconception with low-code is that you cannot do everything that you can do with a general-purpose language and framework. That is definitely true for *no code* systems, but all of the low-code platforms that I have looked at provided a way to write code in .NET, Java, or some other language to handle the situations that the platform is not able to take care of with its built-in functions.
ADM: Draw us a mental picture of the typical low-code app developer?
Herrington: If you asked me to give you an example of a typical java or C developer, I would have answered it was someone with a programming background. Someone who has at least one hobby that involves programming that that person finds enjoyment in. For any of these developers, coding is a mindset. A way of thinking that is somewhat outside of how you think about things in the real world. I would say that there is no typical low-code app developer. With low-code development platforms much of the need to create a mental abstraction of the visual results of your development has been removed. The database and front page development environments are all visual drag and drop which parallels so many of the mainstream consumer applications and the development of the "code", in this case visual process flows such as actions, the same visual drag and drop and process flow is maintained. If someone can write an instruction list for how to change a tire and understand the logical order of the steps needed, I would say that that same person could be very easily taught to be an excellent low-code app developer.
ADM: What benefits and pitfalls to developers need to consider between low-code and native development?
James: Low-code's benefits are faster development, easier maintenance, and a lower level of experience to produce a high-quality product. Because the platform handles so many of the mundane tasks in a consistent, reliable fashion, you do not have to worry about two different developers doing the same thing differently (or worse, wrong). If there is a problem in the platform, a fix from the vendor corrects it across the board, which sure beats having to try to find the same mistake across hundreds of files of source code!
The biggest pitfall with low-code systems, is the temptation to try to use it exactly as you have been using your general purpose development languages and frameworks. Each low-code platform has development techniques and architectural patterns that work best with it. Trying to force things to work by simply substituting .NET or Java with low-code platforms in your workflow is going to be a disaster.
ADM: What is the OutSystems platform?
James: The OutSystems platform replaces almost the entire development stack, from the IDE and language itself to version control, deployment management, database upgrades, and more. It enables the extremely rapid development of Web applications (desktop and mobile), mobile applications, and Web services (REST and SOAP). OutSystems uses industry-standard technologies like Microsoft SQL Server, Oracle, MySQL, IIS, JBoss, and C# under the hood, so the maintenance, management, and monitoring of your infrastructure is not much difference from what you are currently doing.
ADM: With low-code platforms, tell us why developers are still needed.
James: "Low-code" systems cannot stop the people using them from making poor technical decisions around security, data models, and so on. What you see when you take developers completely out of the picture is that the application will probably appear to function more or less correctly, but it will likely have scaling issues, security problems, and so on. In addition, developers can usually work faster and make less bugs, which more than offsets their higher salary costs.
Senior Director at FICO
ADM: How has the app developer job and role changed in the past year?
James: App developers are being pushed more and more into these "full stack" roles, which are simply impossible to be good at. Not many people have the time or ability to become an expert in as many technologies as are needed by "full stack" developers. As an industry, we are setting ourselves up for failure.
ADM: What impact is mobile having on the current app developer role?
James: A few years ago, "mobile developer" was a specialized role that was very hard to fill. Hybrid systems like Phonegap, Xamarin, etc. were there, but the end-user experience was poor and they got a bad reputation, which deepened the divide between "real mobile developers" and web developers who were trying to use their existing skill sets with these hybrid tools. Today, the hybrid tools have really improved, and the end users really cannot tell the difference. This has allowed a much greater range of developers to become "mobile developers". At the same time, people expect more and more from mobile apps. Being able to make a really full-featured app, without needing to learn additional languages and frameworks, and without needing to split your efforts between Android and iOS, is huge.
ADM: Tell us how low-code helps developers?
Herrington: I compare low-code platforms to the introduction of the first abstracted programming languages as a replacement for machine code level programming. In simplest form, the point of any application is to perform the task the developer needs it to perform. The point of the platform on which the developer creates this application is to allow the developer to create the application as quickly and easily as possible. Low-code platforms elevate the development of applications from developers reading lines of code by giving them a visual metaphor for the application they want to create in which each logical step is broken into discrete items in the action flow which are then visually arranged and connected. As from the step from machine code ones and zeros to an abstract language, this ability allows the developers to not only create their applications faster but also the ability to move from lines of code to a visual representation of the task at hand.
Systems Support Engineer Manager
at Georgia Tech
ADM: What would you tell a skeptical app developer about low-code that could help change skepticism to curiosity?
Herrington: If I was talking to myself when I was first looking at low-code platforms my first thought is to say, "You are going to love this." Before low-code development if we needed to find an issue or add functionality to our code, it was exactly that, trying to go through many lines of code to find the section that needed modification or was causing an issue. Parallel business processes were almost impossible for complex applications because of the difficulty in visualizing interaction points between large segments of code. What low-code development platforms provide is not only the ability to quickly and easily create and modify existing functionality, from database to front end to the actions in between, but to have a visual basis for understanding complex processes and how modifications to them will affect application outcomes.
ADM: Please share an experience where a low-code platform helped you solve a development challenge faster and more easily.
James: I worked on a SaaS project that was coming into market against some very well-established players, some had been on the market for about fifteen years. OutSystems let us go to market with a minimum viable product within a few months, and then build from there. When I left that project three years later, we had grown from 10 clients and 1,000 users to 2,500 clients and 300,000 users, and it has continued to grow since then. After our initial success, many competitors sprang up but none of them could match our pace of development, and they needed more developers to do less work.
ADM: What's next for OutSystems and its technology?
OutSystems: We continue to focus on enabling organizations to quickly turn ideas and innovation into new software applications. OutSystems strives to drive innovation in the fast-growing low-code market.
From our observations of the market and from conversations with our customers, OutSystems sees the following key trends:
1) The number of available devices and the opportunities for their use is expanding rapidly.
2) There is a huge demand for skilled resources to deliver new experiences across any channel.
3) The number of data sources that need to be included in an app or business process is growing exponentially.
4) Software and infrastructure architectures continue to evolve rapidly as speed and efficiency drive new innovations.
How the proper implementation of a low code platform empowers users with an effective way to develop and deploy solutions, while allowing IT to greatly expand its reach and enhance its contribution to the organization.
Learn the best ways to organize your app development projects, and keep code straight, clients happy, and breathe a easier through launches.
All the tools you need to an in-depth Citizen Developers Self-Assessment. Featuring 677 new and updated case-based questions, organized into seven core areas of process design, this Self-Assessment will help you identify areas in which Citizen Developers improvements can be made.
Write and run code every step of the way, using Android Studio to create apps that integrate with other apps, download and display pictures from the web, play sounds, and more. Each chapter and app has been designed and tested to provide the knowledge and experience you need to get started in Android development.
How to create a profitable, sustainable business developing and marketing mobile apps.