Low-code and co-developers: The next step in accelerating development
In my previous blog, we discussed how software development is experiencing several changes that are helping accelerate and democratize application creation. We also looked at how no-code platforms empower everyone to build applications and solve issues on their own. In this article, we will focus on the technologies available to enable software engineers to focus on value creation.
When we talk about development accelerators, we refer to all the tools and services available to developers to increase productivity and quality. Readers familiar with this matter might find this a bit outdated, as new accelerators have been constantly added throughout the history of software development. From high-level languages, compilers, linkers, RAD (Rapid Application Development) tools, to reusable development patterns and architectures, open source libraries and smart IDEs (integrated development environments), there are many accelerators we could consider.
Looking at the new elements in this field today and in the near future, two major trends are worth examining closely:
- Low-code tools
Unlike no-code, low-code tools make developers’ day-to-day tasks simpler and increase their productivity. A range of low-code tools are available, from automatic code generators based on models or databases, to drag-and-drop systems that allow non-developers to build a functional mock-up and hand it over to a developer to complement the business logic.
We might consider low code to be similar to the open source libraries and frameworks that have been used for many years. However, low-code differs significantly in terms of specificity. An open source library serves as a solution to a generic problem (like generating a PDF or sending an email), or a problem-agnostic framework to build any type of application (such as Django or Spring). By contrast, low-code turn generates specific code to address a specific problem.
When we look at low-code platforms, we quickly realize that a properly chosen and deployed low-code tool might transform a development team from delivering less than 1,000 lines of code per developer per month to millions of lines per developer per month. Instead of taking an average of one month to get an initial working application, simple prototypes can be deployed in matter of hours.
Low-code tools are quite specific, and as support tools for developers, they must integrate with the development team and environment. For example, specificities and constraints like the type of generated code, deployment options or automation offered by the platform must be considered and verified to fit the team’s needs.
While no-code tools manage the end-to-end process of application creation and deployment, low-code tools can cover a single aspect or many aspects of the software development lifecycle. We anticipate that in upcoming years, application development teams will require several low-code tools to remain competitive. Properly architecting and selecting the tools, along with team’s skills and purpose will be the keys to success.
The concept of a co-developer, an AI powered system that can take part of a developer’s work, has been around for years, and now is starting to become available. Even though much more research is still needed in this field about inductive development algorithms, current projects like GitHub Copilot allow creation of automated pieces of code based on an informal yet structured definition.
This is already a very good step in moving away from AI-based auto-completion tools to AI-based auto-generation tools. Current research in this domain is very active, both in terms of supporting more complex use cases by optimizing the algorithms, as well as making it easier for developers to guide the AI-based system and to understand the results and the process followed.
Like low-code, co-developer tools are designed to empower developers and significantly increase team performance, so it is important to consider them when designing and architecting development teams.
We have examined two development accelerators, both of which are capable of offering significant benefits if properly understood, implemented and used. Co-developers and low-code tools are meant to help development teams, not empower the entire organization to fully create applications. To unlock the full potential of these tools, it is important to invest in creating:
- Proper low-code architecture linked to DevOps and the rest of SDLC tools to boost performance, while avoiding friction in the handover process
- A codebase that is relevant in terms of technologies used and domain-specific for co-developers to use as a reference
These development accelerators may give the false impression that they will only disrupt application development teams, but they will play a major role in accelerating time to market and drastically reducing costs of new systems and applications.
Being able to get new applications quicker and cheaper will greatly support the digital transformation of many businesses and promote innovation, while achieving tangible results within a much shorter timeframe and with lower costs than ever before.
Co-developers and low-code tools focus are designed to complement development teams, and will play a major role in accelerating time to market and reducing the cost of new systems.