The following is from 「 cloud + Community Technology Salon - Cloud original special session ：《 from Serverless Look at the transformation of software R & D efficiency 》」, The depth of the piece , It is expected that reading will take 35 minute .
Yang Zhengzheng , Tencent cloud Serverless Center expert architect , Previous appointment ThoughtWorks Technical director of China North America Division , He has successively served as the R & D leader of a large team 、 Technical director and enterprise architect role , As the customer's main technical interface , Lead and participate in the development of customer's technology strategy 、 In the process of technology strategy implementation and enterprise architecture governance , And actively participate in DevOps、 Domain-driven design 、Serverless And software quality governance .
The goal and resistance of R & D efficiency improvement
1.1 The goal of R & D effectiveness governance
First, let's take a look at the typical SaaS Software business model , Whether it's SaaS Software startups are also a new business within the enterprise , It's a hypothetical question that we all face at the beginning ： If this problem is solved , Can bring growth to the business 、 Bring business revenue , But the important thing is ： This may not be the real pain point of the customer , This is just an open question based on our current cognition 「 hypothesis 」. After that, enterprises will provide solutions to this problem , Then deliver the solution to the customer , After some success , We will try to push to a larger market and users . If this solution can be replicated in a company , We will seek to identify more opportunities for growth among customers in the same or cross industry , You can also use landing before expansion （Land-and-Expand） Strategy , Tap more growth opportunities in stock customers .
In the above process , Enterprises are at different stages , Their concerns are also different ：
From problem to solution ： I What we are thinking about is how well the problem matches the solution （Problem-Solution-Fit）, From the perspective of evaluation, it mainly depends on whether the solution can really solve the corresponding customer problems .
Reach the market and users from the solution ： Enterprises will pay more attention to product market fit （Product-Market-Fit,PMF）, This is often the main reason why many start-ups fail , We have powerful products , But users are not willing to pay for our solution . The root cause is that our solution is based on a hypothesis to be tested , This assumption may have been wrong from the beginning .
branching ： When a certain market scale is formed , Companies will try to scale up , At this stage , We think more about the flexibility of the software , Whether it can meet the customized needs of potential customers . The current software may be able to solve 80% The demands of our customers , But from 80% To 90% The promotion of , It may cost more , In addition, we need to consider the long-term maintenance cost of these customized functions .
If we take a family with us SaaS Start-ups CTO The hat of , Think about how to improve the R & D efficiency of the whole team ？ There may be a lot of answers , such as ： Improve the ability of R & D personnel 、 Recruit more R & D personnel 、 Buy advanced development tools , Improve R & D efficiency 、 Code and architecture governance, etc , This list can be very long . In order to systematize the development of R & D efficiency promotion strategy , Invest in R & D effectiveness in a targeted way , We can use community or industry frameworks to help us think , But I think there are two big problems in many R & D effectiveness frameworks ：
1. Focus too much on the stage from problem to solution
I think R & D effectiveness governance cannot be separated from the final product value , An end-to-end perspective needs to be established , It's not just about the problem to the solution phase , We also need to think about whether the solution can really meet the demands of customers ？ Whether it can support the solution to scale up in a larger group ？ Our focus on R & D effectiveness needs to continue to extend to users and markets .
2. We don't pay enough attention to the feedback cycle in the R & D process
Think about the improvement of R & D efficiency from this goal , We will also have a deeper understanding of some common practices , For example, the unified code specification 、 Introducing automated testing and so on . Because we think that code conforming to the specification can improve the maintainability of software , Can reduce the cost of the problem to the solution , So we have to insist that the code is up to standard ; Due to the low efficiency of manual testing , As software grows , We believe that by introducing automated testing, we can more efficiently verify the matching degree between the solution and the problem , Thus accelerating the flow of value from left to right , So we have to stick to test automation .
At the same time, starting from this goal , In practice, there will be more room for imagination ：
How to accelerate end-to-end value flow ？
How to shorten the feedback cycle ？
1.2 Resistance to R & D efficiency improvement
Software architecture design
Front end separation is a typical way of R & D team cooperation , Back end provides API, But sometimes API Unable to provide in time , And the front-end developers don't know the server 、 Database, etc , I don't know the back-end programming language , Have a certain learning threshold , No integration in time , Lead to online time delay , The speed of flow that affects value , These work in process （WIP） There is no complete solution , It can't be delivered to customers , Potential integration problems can also lead to increased development effort .
The above is my understanding of the goals and challenges of R & D effectiveness governance , Let's share Severless How to improve R & D efficiency .
from Serverless How to improve R & D efficiency from the perspective of science and technology ？
Serverless The concept of
It's probably the first time that you've come into contact with Serverless The concept ,Serverless What is it? ？ What is the value of ？ It can be understood by this example Serverless The concept of ： For example, there is a simple travel demand , From where we started A Destination B, You can choose different solutions , Private car / Car Rental / online car-hailing , Different schemes have their own characteristics ：
Private car ： One-Time Fee Option , Exclusive resources , Maintenance costs are high , similar IDC The physical machine in the computer room ;
Car Rental ： Pay for the lease term , There is a certain maintenance cost , But you still need to drive your own car , It's like a virtual machine ;
online car-hailing ： Charge according to actual consumption , Just take out your cell phone App, Put forward travel demand , This is also Serverless Idea ;
Serverless Compared with the traditional general computing platform , We can really pay for what we use , Can greatly save server overhead and operation and maintenance costs .
Cloud functions SCF Tencent cloud Serverless product , Without the need to buy a virtual machine , Executable code , At present, it supports all the mainstream programming languages , Include Node.js、Python、Java wait , It mainly has the following characteristics ：
1. Saving on server overhead , According to historical experience, we can probably save 10%-20%, The specific revenue should be combined with the business scenario 、 Use cases to judge .
2. Save labor operation and maintenance costs , And Serverless Save server costs compared to , To bring greater value is to reduce the cost of manual operation and maintenance . Before a lot of support availability 、 Scalable operation and maintenance work can be directly hosted by cloud vendors to handle .
Move one ： Hosting infrastructure capabilities , Reduce infrastructure operation and maintenance costs
Move two ： Divide and rule , Allocate investment in a targeted way
Move three ： Lower maintenance cost , Optimize the division of labor within the organization
SSR For enterprises, the biggest value lies in the realization of business cycle , For front-end developers , No need to wait for the back end to provide API , The end-to-end development and testing of the whole business can be completed , Accelerating the flow of value from left to right ; Second, based on the same infrastructure description file , Just modify the simple configuration , You can copy it , Further avoid developing 、 Inconsistency between test and production environments .
Serverless Development trend prediction
Finally, from a personal point of view , Share it. Yes Serverless Prospects for the next stage of development ：
The first trend is ：「Serverless + X」
Can see a lot of convergence Serverless The idea of the product is constantly born , For example, the major cloud vendors recently released Serverless DB、Serverless middleware 、Serverless Container platform and other products . From the perspective of application , In addition to calculation , Also consider the file system 、 Object storage 、 Databases, etc , So I think the future dynamic scaling 、 Pay as you go Serverless The product matrix will become richer and richer .
Another trend is ：「Serverless As the execution engine of the application 」
In this form Serverless It's not perceptual to users , because Serverless The cost of providing 、 Maintainability 、 Scalability and so on ,Serverless It can be used as a support SaaS And so on , Further enhance the competitiveness of the product itself .
Besides, based on Serverless The concept of products or solutions and edge computing will have a better integration , Make full use of the computing power of each node at the edge of the cloud , Unleash the edge potential , In the network bandwidth delay 、 Energy consumption is limited 、 There will be more landing cases in complex scenarios such as data sensitivity .
Finally, in developing tools 、 Development experience and methodology guidance , and Serverless The relevant tools and ecology will also be more mature .
The above is my main content to share , thank you .
The author of this article ： Yang Zhengzheng , edit ： Feng Huaiyu .
Official website : cloud.tencent.com/product/serverless-catalog