Song Xiaocai has been focusing on the distribution network for fresh food in China

Song Xiaocai was founded at the end of 2014. So far, it has done only one thing in more than three years, which is to explore the upper reaches of the vegetable supply chain. Why does Song Xiaocai continue to do “up” business? Do B2B business, only control supply, optimize supply efficiency and cost to achieve business. 3 years of development, Song Xiaocai company’s overall idea is reverse supply chain, demand first, supply later. We collected from the second-tier cities customers (internal call song dishes city end markets selling vegetables greengrocer services to our clients for the small B) orders, through regional set menu, the order into upstream vegetable production areas of purchase order, in the song side platform supply chamber of commerce to this purchase order, and then through a third party to provide logistics services to goods sent to the city of song dishes service network. The business model of Song Xiaocai is as follows:

Song Xiaocai started off light and walked fast

On March 10, 2015, Song Xiaocai reverse supply chain model was tested in Wuhan, and the first service site serving Little B was opened in Wuhan Mahu Vegetable Market, and the first order was completed. The background of the technical team was as follows:

  • In January 2015, Song Xiaocai product technical team was formally established and the system architecture began to be built
  • Team members :1 development student, 1 product, 2 outsourcing students, the main development is outsourcing students. In order to quickly support the business needs at that time, the technical system of Song Xiaocai is very light from 0 to 1, but in the selection of core technology, we will do more heavy, based on the situation of Song Xiaocai business in 3 to 5 years to consider the selection of technology. The following will introduce how Song Xiaocai technology builds the technical system from 0 to 1 from four dimensions (development language, infrastructure, back-end service and mobile terminal).

Development of language

In the initial stage of a start-up company, the construction of technical team structure and technology selection will determine whether the product technology can quickly support the business, or will kidnap the business and hinder business development. Whether it’s a business-driven company, a product-driven company, or a technology-driven company, it’s a problem. The choice of technology architecture determines the impact on a company’s business. The choice of development language is the first problem that startup companies face in technology selection. In the current social environment, the division of labor is becoming more and more detailed, and the language tools used by development engineers are becoming more and more limited. Although many Internet companies encourage the cultivation of full-stack engineers, most engineers are still good at using only one development language in the long term. The choice of a development language determines the organizational structure of the technical team. Most Internet enterprises use languages such as Node. js, Python and PHP to set up back-end services. These languages can quickly set up services in early development and quickly support product function changes, which will bring a lot of flexibility in the initial stage of entrepreneurship. The technical team of Song Xiaocai chose Java as the back-end core development language at the early stage. When I joined Song Xiaocai in May 2015, I was surprised. Few startups in song Xiaocai used Java as the aircraft carrier language for early product development. After more than 3 years of practical experience accumulation, proved that the choice of Java as the back-end development language is more to meet the needs of song Xiaocai business development. As a service platform in the field of e-commerce, Song Xiaocai has absorbed a lot of historical experience and lessons of e-commerce platforms. Taobao.com was founded in 2003 and used PHP to build the service. In 2004, the whole backend service was rewritten using Java, which was outsourced to sun’s team at that time. Some e-commerce platforms in Hangzhou used PHP to build services when they were just established, and then switched to Java three years later. It is not known exactly why these large e-commerce platforms have switched to the Java development language, but using Java in e-commerce at least brings the following advantages.

  • The engineering capability of Java language and the sustainable integration capability of engineering construction provide a guarantee for the precipitation and construction of platform capacity of subsequent enterprises.
  • Strong business presentation skills to translate business requirements into product systems.
  • Mature enterprise-level solutions (RPC, MQ, cache, sub-database sub-table, distributed transaction) can be used for rapid horizontal scaling with mature community solutions (or similar to Aliyun PAAS platform) in the face of exponential growth of business volume
  • Because the Java development process is relatively heavy, it will force the demander and the product to treat the requirements more carefully. In the demand stage, some fake requirements can be filtered out to avoid the waste of development resources.
  • In Hangzhou, Internet companies represented by Alibaba have trained a large number of Java engineers, which makes it easier to expand and expand the technical team with more resources. Therefore, in terms of technology selection, the entrepreneurial team wants to go far and go steadily, and it is a better plan to use Java for product development.

infrastructure

After 2014, the startup companies basically choose Iaas platforms such as Ali Cloud as the infrastructure provider. Ali cloud the product itself from the calendar year Tmall double tenth one refinement, service the high availability of proven, but also to support rapid expansion (weibo when meeting events, selecting ECS temporary purchase ali cloud for short-term emergency capacity), and ali cloud continues to provide Internet companies need the service ability and the solution, These solutions well meet the needs of e-commerce companies. Song xiaokai has been using Aliyun’s infrastructure services since the first service was launched. Below is a list of aliyun services that Song xiaocai uses

The use of the service

To solve the problem

Start time

ECS

Server management and o&M
In March 2015

RDS

Database management and operation
In June 2015

OSS

File storage management and operation
In August 2015

Message MQ

Service Event Management
In March 2017

EDAS

Service governance
In October 2017

The above table reflects that when we use aliyun’s services, we do not open all the six services, but use Aliyun’s services in stages and consider efficiency and cost according to the company’s business needs. There is a good example illustrates the technical selection of train of thought, we’re in the early song dynasty side database is built, only a mysql instance, nor to the data backup and disaster database service processing, in July 2015 before song dynasty side business only in one city, so the database of TPS is not big, no use ali cloud from the start RDS service, but in the beginning in June 2015, song side business plan at the same time open three cities, considering the volume up, after more than three times the pressure of the system will be more than three times, and all traffic pressure on the database, the database to be expanded to support the growth of the business, combined with the company data security considerations, we did not consider capacity current Database, but migrated directly to RDS. After 3 years of using Ali Cloud services, the infrastructure services and solutions provided by Ali Cloud can not only ensure our service quality requirements, but also save the manpower input of the technical team. So far, we do not have full-time PE and DBA. The development students only undertake simple operation and maintenance work in their daily work, so that they can focus on development and pre-research of new technologies. On the other hand, because Ali Cloud provides high availability on the infrastructure, we avoid the loss of the company due to service instability during the business development. When using ali cloud services, many people worry about dependence on ali cloud is getting heavier and heavier, will cause the transformation and upgrading of its own technology will be subject to late ali cloud, in fact, these effects will not be too big, Netflix now do billions of dollars worth of the company, the network traffic is the first global Internet company, still erect on the AWS service. If the company has good technical capability, it is suggested to install all back-end services into Docker. In extreme cases, izumo and other cloud migration costs will be small. In the past three years, I have continuously increased the use of Aliyun services, which makes me realize that today, when enterprise-level solutions are so mature, the core ability of back-end technology teams of non-cloud computing companies should be the ability of business abstraction and modeling, which is why DDD has been tried since 2016 and has been used by trial and error.

The back-end service

Early Song Xiaocai only had one ERP system, which used SpringMVC framework to build a typical MVC architecture. It is worth mentioning that the USE of SpringMVC to build MVC architecture is very efficient, simple configuration, high scalability, basically meet the simple system for login verification, permission control and other functional requirements. Since there was only one back-end system at that time, the communication between web and mobile terminals was based on HTTP protocol. The system has been a minefield for online services since it was originally designed with no horizontal scaling in mind and is now a single point of deployment. At that time, no system-level planning was carried out. Although the system was divided into controller and Service, a lot of business logic was placed in controller, causing the core business logic of each business domain to be scattered in controller. At that time, there were only three developers on the server side. This Megalith Platform was ok for small teams. A single developer on a single system could quickly respond to product requirements. But with the rapid business development, technical team continued to expand, there is no specification of engineering structures and systems of lack of documentation, everyone in the erp system development product demand, side dishes song products distribution business functions are integrated into this system, erp system has become the inevitable song side of a big MAC, caused the outbreak of multiple problems:

  • Repetitive code development
  • The Controller and Service layers have bloated code
  • The packaging and deployment takes a long time
  • Development iterations are getting slower and slower
  • System stability problem
  • The ERP system in this period basically covered all the business links of Song Xiaocai, from the purchasing end to the distribution end and then to the sales end. Internal employees had to rely on ERP to complete their work. On the sales side, song side dish for small B provide after-sales service, including pick up the goods receipt, return loss, etc, and these services are done on the erp, so the company doing business in each market are rented an office (company internal business term called service station), and with sales personnel of full-time service market of small B customers, each service station is configured with electricity Brains and printers (some service stations are equipped with UPS in case the wet market goes out). I remember at the beginning of technical solutions for business really is too heavy, this kind of situation continues until April 2016, in April 2016 after the sales of the business operation in the mobile client app Song Xiaofu (CRM products), to the mobile solutions not only save hardware cost, also enlarged the radius of sales work. Chat from before this example proves that the technical architecture and technology solutions that once the ground will limit and kidnapping the conclusion of the business, this case made me understand the role of the architect needs to have a market thinking, thinking also needs to have products at the same time, in the design of products technical solutions, the nature of the need to fully understand customer needs, use the most simple and low cost solutions to meet user needs.

The mobile terminal

In the initial stage of Song Xiaocai, there was only one App on the mobile terminal, song Xiaocai App, and only the Android version. The service users were small B customers in the vegetable market. At that time, the sales students reported that the proportion of android phones used by B customers was the highest (some elderly B customers used non-smart phones) after running the Wuhan market, so only the Android version was provided in the initial stage.

conclusion

In the initial stage, the technical structure of Song Xiaocai has both good and bad points. If I do the structure of Song Xiaocai again, I will think about it in this way. These thoughts and summaries have good reference value for the technology selection and technical architecture construction of start-up companies.

1. Technology selection should be based on the long-term business direction of the company

  • The long-term technical path must be clearly planned, including what kind of technical team to build to match the long-term needs of the company’s business direction. As mentioned above, Song Xiaocai uses Java, a language with heavy development mode, to build the whole back-end system. The adoption of this technical path determines the long-term solution choice.
  • In the initial stage, we focused on the development of the company’s core business, and the server operation and database operation and maintenance were supported by third-party professional Iaas service providers.
  • Don’t start with a service-oriented architecture. The system architecture needs to match the size of the technical team. Building a large and complete system in the initial stage is the fastest response to business requirements.

2. Do light on technical implementation

  • In terms of technical architecture, the front and back ends should be simple and extensible, and the technical scheme should not be complicated to avoid transition design. Keep interactions and content as simple as possible using the principle of Minimum Deliverability (MVP), and keep the product’s user path data closed loop (product use has loop feedback), and use PDCA(plan, Execute, check, Act) to ensure continuous rapid iteration of the product.
  • On uncertain and unknown businesses, keep the technical implementation simple, because the more complex the technical implementation, the greater the probability of error.

About how to set up efficient raw B2B platform, because of the large contents, also is very complex, unable to give you an article, this article is just beginning, the following will be divided into several articles from industry present situation, the situation of business and product overview, technical team building, the server-side technology platform, the front-end development, such as multiple dimensions to tell, We will be more than three years in the B2B field of the precipitation of core products and technology platform to open, hope that more people in the industry can have a deeper understanding, less detdetments, hope to help you, the distribution of this series of articles is as follows (will continue to update) :

1, “How to build an efficient FRESH B2B platform (B2B technology sharing the first article)”

2, “Song Xiaocai how to enter the fresh B2B market (B2B Technology sharing second)”

3, “fresh B2B platform product system iteration (B2B technology sharing third chapter)”

4, “fresh B2B how to build an efficient technical team (B2B technology sharing fourth chapter)”

5, “how to build fresh B2B technology system from 0 to 1 (B2B technology sharing fifth chapter)”

6, song Xiaocai technology how to deal with the rapid change of fresh B2B business (B2B technology sharing sixth chapter)

7, “fresh B2B technology platform front-end team how to build (B2B technology sharing seventh)”

8, Song Xiaocai about “Ability” design and Thinking (B2B Technology Sharing chapter 8)

9. Design and Thinking of Service Separation (B2B Technology Sharing chapter 9)