Introduction:This paper will briefly talk about the R & D system based on the progressive idea of no code > low code > Pro code.
Xiaoyong, the person in charge of Yida, gave me an example. When we were young, we went to the tailor’s shop to choose the materials and measure the size. We can wear them after asking for them in half a month. The clothes fit and like. Cut back to today, we just need to look at the pictures on tmall and Taobao and choose the appropriate size to place an order. We can put them on the next day. Occasionally they don’t fit, and occasionally they bump into clothes on the street, but we don’t care because we enjoy more convenience and efficiency. Benefiting from this industry, I have developed many standardized models, such as body models: s, l, XL and XXL. I no longer need to measure my height every time. Now the clothes produced by standardization can meet more than 90% of the needs, and I won’t bother to customize them except stars or special scenes.
The development of clothing, catering, automobile and even all walks of life has formed a very mature and efficient industrial chain, as well as the software R & D industry. The business demand is growing and changing rapidly. The more technology intensive types of work are, the easier it is to bring the bottleneck of manpower shortage. This requires the formulation of more standards and models. The more unified the standards, the more efficient they will be. Sometimes “giving up creativity is the greatest creativity”. The essence is to pursue inclusive. It can be predicted that the vast majority of scenarios in the future will use standardized templates to complete business requirements through no customization or low customization.
Desired software development posture
Next, let’s talk about the R & D system based on the progressive idea of no code > low code > Pro code.
1、 Pre concept
Before we start, let’s introduce some concepts:
Cloud computing is mainly divided into three categories of services: software as a service (SaaS), platform as a service (PAAS) and infrastructure as a service (IAAs).
- Software as a service (SaaS) is a mode of delivering applications through the Internet. Customers can access SaaS applications through a web browser, which means that customers do not need to purchase, install, maintain and update hardware or software. SaaS providers are responsible for ensuring that everything goes smoothly, and customers are usually able to use the latest version of the application.
- Platform as a service (PAAS) can provide cloud platforms and various tools to help developers build and deploy cloud applications. Users can access PAAS through a web browser, so enterprises do not need to purchase and maintain basic hardware and software. With PAAS, developers can also choose the required functions by renting.
- With infrastructure as a service (IAAs), enterprises can “rent” computing resources such as servers, networks, storage and operating systems by paying per use. IAAs providers are responsible for hosting infrastructure and processing system maintenance and backup, so that customers do not need to buy hardware or hire in-house experts to manage it.
On the PAAS layer, there is a platform dedicated to supporting the development, deployment and operation of applications on the cloud, which is called apaas (application platform as a service). On the basis of apaas, the platform that provides no code & low code development of applications is called hpapaas (high productivity apaas), which provides rapid application R & D capabilities, such as business orchestration, logic orchestration, model driven Page layout, etc.
I have added some personal understanding to the above concepts. Different platforms may have different explanations. Let’s compare several star platforms in the industry to see what reference they can give us?
2、 Industry boutique
- Microsoft powerapps: Microsoft’s family bucket service integration is very good, such as excel. All code writing places in the whole site are unified into the concept formula / FX similar to excel. In addition, powerbi / powerflow is very powerful, positioning hpapaas (low code);
- Google appmaker: produced by Google, the Google family bucket service integration is very good, and the Google engineer culture is extremely reflected in scripts. Both the back-end and front-end use the JS syntax of development ecology, and the code prompt is very friendly. Locate hpapaas (low code);
- Salesforce SaaS: platform leader, a cloud platform integrating IAAs, PAAS and SaaS, with a current market value of 125.5 billion US dollars;
- Sap: a cloud platform integrating IAAs, PAAS and SaaS. Compared with salesforce, the technology used is newer and the experience is better. At present, the market value is US $157.7 billion;
- Outsystems: provide desktop ide. The recently provided outsystems AI can assist in model design and position hpapaas (low code). As a rising star, it has performed well. It has obtained multiple rounds of financing, valued at $1 + billion in 2018, and seems to be the next unicorn.
The comparison of application R & D capabilities is as follows:
Several product experiences:
- Old players of Google and Microsoft play hpapaas with great ease and exquisite experience. They integrate their own services, including common services of the three parties, very well.
- Similar to Microsoft, outsystems provides a variety of streaming choreography without writing code. At the same time, it also integrates many data services, such as swagger’s OpenAPI.
- Similar to sap, salesforce provides a complete ecological chain from a single application to a set of applications, to a rapid application development platform, enterprise collaboration tools, and then to an application container and database. It is exported in a hierarchical manner of SaaS, PAAS and IAAs.
- Efficient integration can reduce costs, which is the mind of all players and can not be questioned.
- To enlarge the perspective and cover 90% of the scenes, it is necessary to build a complete ecological chain. There should be corresponding solutions from no code to low code and then to pro code, and they should be able to connect with each other. This is the experience given by salesforce and SAP. At present, appmaker and powerapps are mainly aimed at the vertical fields of forms and forms, and can not play a big role, The problems solved from a single domain perspective are limited.
- Visual streaming choreography is effective for specific scenes. It’s not fun to deal with slightly more complex scenes. For example, appmaker is a little rough. It’s more comfortable to directly use scripts to write expressions. I don’t know how users using outsystems feel.
3、 Visual station building
For a long time, many visual site building products have sprung up in China. “Visual site building” is the predecessor of “low code site building”. The goal is to build a site without writing a line of code. However, it is more to solve problems from a single field of the presentation layer (front end), which can only complete the effect of static pages, For real business, it is difficult to complete the closed loop.
Summarize the outstanding problems:
- Pure front-end thinking, such as data service access mode, lacks a unified data access layer like appmaker / powerapps supporting data connectors, and does not form effective integration with various systems.
- The scenarios that can be solved are also limited. The highly complex enterprise CRM system is not the same throughout. The business logic is highly complex and faces the test of customization. If it is a little more complex, there may be more work to be done, or even sometimes it is uncertain, and does not enjoy the benefits brought by visual construction.
- Many professional developers cannot display their talents in building platforms and lack professional tool support, such as vscode and GIT.
- There is no effective cooperation between different roles, such as the back-end data interface, which cannot be reflected in the visual construction tool.
- Build pages are mostly stored in the form of schema, the code is not good diff, and dynamic rendering at runtime will also bring performance problems.
Seeing many excellent designs in the industry has brought us a lot of fantastic ideas. The typical hpapaas architecture can completely solve our standardized scene to a certain extent, but the standardized scene is partial to the nature of consumption. It consumes the material precipitation and scene precipitation produced by us. Such a pure hpapaas platform will certainly overdraft when dealing with enterprise scenes, When designing a commercial operating system for a super large enterprise that can live for 102 years, we should not always strive for speed and simplicity, but also consider flexibility, scalability and complexity. In this system, we should continuously produce standardized materials and scenarios from energy sources, and continue to abstract and precipitate complexity problems to form an effective ecological cycle system, What we need is an enhanced version of hpapaas platform – enterprise hpapaas platform.
4、 Enterprise class hpapaas
Take our “enterprise intelligence division” as an example to make a simple business classification:
Most of the middle and back office businesses are related to forms and tables, which is good for hpapaas platform, but it really represents enterprise level scenarios, especially financial, legal and other systems. The forms involved can be described as demons, such as nested forms and nested forms (there must be a reasonable place), which cannot be described by a set of rules, Powerful apps such as appmaker or powerapps have no solution to such problems, mainly because they do not provide a backup mechanism. The initial state of enterprise applications is mostly customized applications. How to evolve into standardized configuration applications and further become solutions or business capabilities is the key problem to be solved by the “enterprise hpapaas platform”.
The younger products appmaker and powerapps are defined as business level solutions, and the more mature sap and salesforce are defined as enterprise level solutions. The business level can solve most common problems, while the enterprise level should be able to solve more complex problems. In the face of complex enterprise level problems, I think at least two things should be done:
- Decompose and layer the capabilities required by different scenarios, and finally deal with them through the integration of capabilities to improve the flexibility;
- At the same time, there are general schemes and bottom-up schemes. A variety of schemes should follow unified standards to get through and integrate.
If you have to summarize the enterprise hpapaas capability in one sentence, I think it is a progressive capability from no code to pro code, as shown in the following figure:
There are several key difficulties in implementing such “enterprise hpapaas”:
Key and difficult point 1: from no code to pro code
Take a simple business system as an example.
Iteration 1 (no code development)
Initially, it is relatively simple and conforms to the standardized crud:
- Conduct business modeling and configure business rules;
- According to the established model, select the standardized crud template to directly output;
- Preview and publish.
Iteration 2 (low code development)
However, some places need to be slightly customized, such as the formatting of time stamps and the additional display of user details on the page:
- Open the standardized product for visual editing;
- Modify the formatting method of the associated field time and add a user information block;
- Save, preview, publish.
Iteration 3 (pro code development)
As the business complexity becomes higher, many business logics need to write more code. They also want the code to be version controlled and diffed:
- Open the standardized product in the webide;
- Edit the view, such as the associated action, locate the corresponding action code and modify the logic;
- Use the GIT function provided by webide for code comparison and code submission;
- Save, compile, preview, publish.
The trial and error cost of no code and low code is low. During the entrepreneurial period, I prefer to use these two methods. With the growth of my business, the value is gradually recognized and the requirements for the product become higher. At this time, I am also willing to invest more. At this time, I can use pro code to fine decorate my project, and this progressive delivery ability will be more and more respected.
In this process, there is a key point. No code to low code and then to pro code always follow a standard, which can be opened in any way when I need it.
Although we expect that only 10% of the future business R & D work needs to be completed by Pro code, the relevant technical system of Pro code is also indispensable. It is a fully functional and open underlying architecture. No code and low code are more vertical on this. Therefore, it does not mean that 10% is not necessary, especially in enterprise R & D, The existence of Pro code is a reassurance.
The key points of Pro code are:
- Webide: desktop ide can be used in the design of Pro code, but the future must belong to the era of cloud development. Desktop IDE is naturally separated from PAAS platform. In the past, we were worried that webide technology was immature. Today, vscode has led a new generation of editor reform, bringing webide technology reserves with complete functions and performance such as coder and Theia, Technically, there’s nothing to worry about;
- Git get through: enterprise level products are not so casual, and generally need strong control. Version control is particularly important. Whether it is pro code or no code, the final form is a standard product in the form of code, which should be hosted in the GIT warehouse, and can be traced and compared when necessary;
- Visual editing: visual editing is the representative function of low code and no code. Connecting visualization with Pro code through recore (Unified DSL) technology is a necessary condition for the interworking among Pro code, low code and no code.
Key and difficult point 2: service integration
Among the products mentioned above, there is such a design that both their own services and those of others can be organically integrated through an integration platform and can be used efficiently in any required link.
We also put forward the concept of oneservice. We expect to integrate data related interfaces or services through oneservice to open up all links in production, as shown in the following figure:
Key and difficult point 3: vitality
The system we designed concerns two issues:
- How much value can it create?
- How long can you live?
I think a system with tenacious vitality should continuously create value in the time dimension. There are the following key points:
- Suitable soil, strong wind direction and policy encouragement, with strong market demand;
- Continuous standardization. Standardization is not a fixed result, but a dynamic process. There needs to be an evolutionary mechanism to ensure that the standardized ecology has self-cleaning ability and adapt to the development of the industry;
- Industry penetration, opening up the upstream and downstream links of the industry, and integrating standards and ideas into all nodes of the industry can feed their own ecology and help form scale;
- Grow together and drive the growth of the industry. The growth of the industry is its own growth.
5、 Future expectation
SaaS platform, represented by SAP and salesforce, is very moist in European and American countries. It has just started in China. From the changes in the past year, we can see that more and more national policies are encouraging small and medium-sized innovative enterprises, which means that the tob market has broad prospects in the future. The overall trend of Alibaba is now tob. Nailing and Alibaba cloud have become more and more stable on this road, Let’s see that the time is ripe for tob, and what we need to do now is to do well and strengthen the localized SaaS platform.
Author: Developer Assistant_ LS
This article is the original content of Alibaba cloud and cannot be reproduced without permission