+ All Categories
Home > Documents > The Future of Chinese Software Development · The Future of Chinese Software Development ... for...

The Future of Chinese Software Development · The Future of Chinese Software Development ... for...

Date post: 18-Aug-2018
Category:
Upload: truongngoc
View: 220 times
Download: 0 times
Share this document with a friend
5
40 IEEE SOFTWARE | PUBLISHED BY THE IEEE COMPUTER SOCIETY 0740-7459/16/$33.00 © 2016 IEEE FOCUS: PERSPECTIVES—CHINA The Future of Chinese Software Development Software Development for Massive Systems Zhengrong Tang To most people, “massive systems” probably means those systems run by NASA, airline companies, or large banks, or operating systems such as Microsoft Windows. What’s in common? They all have complex components or subsystems, deal with massive data, support millions of customers, require real-time re- sponse, and more. If they malfunc- tion, catastrophe might ensue. By those standards, many systems run by today’s Internet companies also qualify as massive. As the Inter- net grows so quickly, many Internet companies are suffering the same problems that massive systems have suffered. I previously worked for In- ternet giant Alibaba for eight years. I now work for a fast-growing Inter- net company called Tuniu.com. My experience tells me that future soft- ware development for Internet com- panies will face the same challenges that traditional massive systems have faced, or even bigger challenges. So, software development for massive systems will be very important for many Internet companies. Most Internet companies grow very fast and tend to quickly acquire com- plex components or subsystems. For instance, within five to six years, Tuniu .com had already accumulated more than 100 subsystems, covering Web front ends, mobile apps, and systems for customer relationship management, supply chain management, order man- agement, pricing, finance, human re- sources, and office automation. In such a situation, tools are critical. Other than typical tools for requirements management, proj- ect management, code management, testing, and configuration manage- ment, Tuniu.com relies heavily on its monitoring systems. They monitor a broad spectrum, from system health data for the CPU, memory, and I/O; to API-level response time; to user experience issues such as payment delays, to business-level results such as hourly order volume. Because the monitoring data is broad, developers have opportunities to see the bigger picture and make better decisions. For example, Tuniu.com sales usually follow a pattern. Order vol- umes between 10 and 11 a.m. on Tuesday mornings are similar, with some slight increases over time. If, on a particular Tuesday morning, the order volume drops sharply— say, 30 percent—the system detects that abnormality and sends alarms to developers. Developers might relate this information to other monitoring data and troubleshoot more quickly. Such scenarios hap- pen from time to time. But with the Given the increasingly global nature of software development and the tight con- nection needed between software research and practice, we believed it was important to get a global industry perspective of software engineering’s future. In particular, the Chinese software development industry has continued to grow. So, given this market’s size and energy, we felt that insights from this perspective should be shared more widely. The four chief technology officers in this roundtable are from Chinese soft- ware companies in hot domains such as online travel, e-commerce, and big data. Here, they offer their thoughts of their industry’s fast growth and their experiences dealing with the technical challenges of software development for massive-scale systems and services. —Guest Editors
Transcript

40 IEEE SOFTWARE | PUBLISHED BY THE IEEE COMPUTER SOCIETY 0 7 4 0 - 7 4 5 9 / 1 6 / $ 3 3 . 0 0 © 2 0 1 6 I E E E

FOCUS: PERSPECTIVES—CHINA

The Future of Chinese Software Development

Software Development for Massive Systems

Zhengrong Tang

To most people, “massive systems” probably means those systems run by NASA, airline companies, or large banks, or operating systems such as Microsoft Windows. What’s in common? They all have complex components or subsystems, deal with massive data, support millions

of customers, require real-time re-sponse, and more. If they malfunc-tion, catastrophe might ensue.

By those standards, many systems run by today’s Internet companies also qualify as massive. As the Inter-net grows so quickly, many Internet companies are suffering the same problems that massive systems have suffered. I previously worked for In-ternet giant Alibaba for eight years. I now work for a fast-growing Inter-net company called Tuniu.com. My

experience tells me that future soft-ware development for Internet com-panies will face the same challenges that traditional massive systems have faced, or even bigger challenges. So, software development for massive systems will be very important for many Internet companies.

Most Internet companies grow very fast and tend to quickly acquire com-plex components or subsystems. For instance, within five to six years, Tuniu .com had already accumulated more than 100 subsystems, covering Web front ends, mobile apps, and systems for customer relationship management, supply chain management, order man-agement, pricing, finance, human re-sources, and office automation.

In such a situation, tools are critical. Other than typical tools for requirements management, proj-ect management, code management, testing, and configuration manage-ment, Tuniu.com relies heavily on its monitoring systems. They monitor a broad spectrum, from system health data for the CPU, memory, and I/O; to API-level response time; to user experience issues such as payment delays, to business-level results such as hourly order volume. Because the monitoring data is broad, developers have opportunities to see the bigger picture and make better decisions.

For example, Tuniu.com sales usually follow a pattern. Order vol-umes between 10 and 11 a.m. on Tuesday mornings are similar, with some slight increases over time. If, on a particular Tuesday morning, the order volume drops sharply—say, 30 percent—the system detects that abnormality and sends alarms to developers. Developers might relate this information to other monitoring data and troubleshoot more quickly. Such scenarios hap-pen from time to time. But with the

Given the increasingly global nature of software development and the tight con-nection needed between software research and practice, we believed it was important to get a global industry perspective of software engineering’s future. In particular, the Chinese software development industry has continued to grow. So, given this market’s size and energy, we felt that insights from this perspective should be shared more widely.

The four chief technology officers in this roundtable are from Chinese soft-ware companies in hot domains such as online travel, e-commerce, and big data. Here, they offer their thoughts of their industry’s fast growth and their experiences dealing with the technical challenges of software development for massive-scale systems and services. —Guest Editors

JANUARY/FEBRUARY 2016 | IEEE SOFTWARE 41

monitoring tools, the problems are quickly resolved, and business risks and losses signi� cantly decrease. Fu-ture software development will need to tightly integrate monitoring tools.

Also, I believe that computing large data will become common. Thanks to big data, the technologies for storing and retrieving large vol-umes of data are mature. The next logical step is how to compute and use that data.

Tuniu.com mainly sells vacation packages, which differs from selling single standard items. For example, the iPhone 6 is a standard product such that it varies only in color and storage size. Once a customer selects the storage size, the price is normally � xed. So, displaying the iPhone 6 as a product is simple.

In contrast, displaying a vaca-tion package is complicated. For in-stance, the “7-Day, 6-Night 4-Star Luxury Paris Tour” vacation pack-age includes round-trip plane tick-ets, six nights at four-star hotels, and so on. Most customers perceive this package as a single product and want to see only one price at � rst glance. This “simple” require-ment complicates things in the back-ground. Because the travel date is unknown, Tuniu.com assumes the customer will travel within the next six months. Given that the plane ticket prices and hotel prices might be different every day, for the next 180 days there might be more than 10,000 combinations just for this package. Tuniu.com then calculates all the combinations, � nds the low-est price, and displays it to custom-ers. The pricing system now handles more than 10 billion calculations a day and should soon break the 100-billion mark.

Other companies might have dif-ferent computation requirements.

Companies should prepare for this by spending resources on distributed systems and parallel computing.

In addition, I believe that future software architectures will employ an evolved version of a client-server model in which the clients are mo-bile devices and the servers store big data. The clients will be smart, and the servers will be distributed. The

client side will need to focus on the user experience and be agile. The server side will require the capac-ity to handle big data, security, and integrity. Balancing the client and server will be a challenge for soft-ware development.

As I mentioned before, future software development for Internet systems will face the same challenges massive systems face, or even bigger ones. Tuniu.com’s practices regard-ing monitoring tools, big-data com-puting capability, and client-server architecture are very effective. I hope my company’s experience will be helpful to others.

Best Software Engineering Practices at Tujia.com

Melissa Yang

When I left China for graduate school in the US 20 years ago, Chi-na’s software industry almost didn’t exist. At the time, Zhongguancun,

“China’s Silicon Valley,” wasn’t much more than a hardware bazaar mixed with vendors of pirated soft-ware CDs. A software company I had interned with in college had no more than � ve full-time employees and struggled to get any project it could just to survive.

Now, everything is different. The penetration of the Internet and smart phones has provided a whole new horizon for software companies. Thanks to rapid economic growth, newly accumulated capital � oods the investment market. Startup compa-nies sprout like never before. New ideas, innovative products, and tools and technologies form a unique, in-teresting environment. Tujia.com, a vacation rental platform I cofounded in China three years ago, luckily bene� ts from it.

As a consumer-facing Internet startup, we must quickly roll out features and get feedback. We also need to support various screens—PCs and mobile websites as well as mobile apps. After some trial and � ne-tuning, we’ve come up with the following best practices.

Future software development for Internet systems will face the same challenges

massive systems face.

ZHENGRONG TANG is the chief technology of� cer at Tuniu.com. Contact him at [email protected].

42 IEEE SOFTWARE | W W W.COMPUTER.ORG/SOFT WARE | @IEEESOFT WARE

FOCUS: PERSPECTIVES—CHINA

First, we have two types of re-leases. Weekly releases mainly in-clude bug � xes and small features. In monthly releases, big features go live. This lets us maintain a good balance between constantly rolling out improvements and being ef� cient with coding and bug regression.

Second, we use open source for multiple platforms and tools. We originally built Tujia on Microsoft .NET for various reasons. Although .NET is suf� cient technically, our business grew fast, and we had dif-� culty � nding enough good .NET developers as quickly as we wanted. We decided to get Java developers meanwhile. Because our architecture is well designed with clear interfaces, we could build a Java deck and quickly implement some core compo-nents in Java. The process has been smooth. The system now has various services built on Java or .NET. The key is that the foundation is a well-componentized architecture.

Third, we perform A/B testing. Sometimes it’s hard to tell which design provides a better user expe-rience and thus a higher conversion rate, especially given that vacation rental is still a new concept for most Chinese travelers. In these cases, we A/B-test different designs of key fea-tures and draw conclusions based on the results.

The � nal practice relates to mo-bile apps. Although we immediately upgrade our websites, we handle apps a little differently. Upgrading app versions can help us obtain a better position in some markets but can be time consuming and unpre-dictable. This is especially true for iOS apps. Our statistics show that approximately 70 percent of our iOS users automatically upgrade an app within a month; the remain-ing 30 percent wait several months.

So, we’re careful to distinguish core business and variable scenarios when designing apps.

I was lucky to work at a couple of great software companies in the US for over a decade. I think that, compared to US companies, Chinese companies move faster and are more competitive. So, new products go live more quickly, and sometimes quality and architecture are subordinate to speed. In many cases, any issues are later � xed by re-architecting. Chinese software companies are learning fast, and many have come up with their own best practices. It’s a great time for software developers in China, and I’m excited to be part of it.

Event-Driven Software Development in China E-Commerce Companies

Joshua Xiang

If you pay attention to Chinese e-commerce, you might have heard of the 91.2-billion-yuan (US$14.3 billion) sales record set by the Double 11 online-shopping day on 11 No-vember 2015. Chinese e-commerce sites often conduct big promotions on major holidays, such as the Mid-Autumn Festival, National Day, and the Spring Festival, not to mention some popular Western holidays such

as Thanksgiving and Christmas. However, the biggest sales are usu-ally on shopping festivals created by the e-commerce sites themselves. For example, besides the Double 11 fes-tival (created by Taobao, the biggest Chinese e-commerce site), Suning.com has 11.11 O2O (online to off-line) Shopping Day, JD.com has 6.18 Day (the anniversary of its opening), and Secoo.com has 12.17 Luxury Goods Day.

The huge volume of transactions on such shopping events puts huge pressure on software and informa-tion systems. China e-commerce � rms’ business, operations, and tech-nology all center on these events. This event-driven nature reshapes en-tire software engineering processes, affecting development methodology and organization structure.

In the software system context, an event-driven architecture is a framework that orchestrates behav-ior around the production, propa-gation, and consumption of events. An event consists of event creators and consumers. A similar approach works for e-commerce. In that con-text, event creators or organizers are sales, marketing, and engineering teams. Event consumers or subscrib-ers are online and of� ine consumers. All company activities are organized to implement and support these sales events. I call this event-driven soft-ware development (EDSD).

Let’s look at four aspects of an EDSD project.

The � rst is event objectives. Obvi-ously, the ultimate goal is sales. But what are other goals—for example, pro� t, growth, new user registra-tion, or brand recognition? Clearly de� ned objectives are key to event success.

The second aspect is project management and execution. EDSD

MELISSA YANG is the chief technology of� cer at Tujia.com. Contact her at [email protected].

JANUARY/FEBRUARY 2016 | IEEE SOFTWARE 43

projects have three characteristics: hard deadlines; short project cycles, usually taking weeks but sometimes up to six months; and constant change. Although event objectives are usually � xed, the requirements and implementation change fre-quently. Agile software development is a natural choice to adapt to chang-ing requirements.

The third aspect is organization. Typically, an e-commerce company has groups for purchasing and the supply chain, operations, products, R&D and design, public relations and marketing, and the user expe-rience. A major sales event—for ex-ample, a � ash sale or auction—usu-ally comprises a series of activities. Activity-based or task-oriented task forces and virtual teams are usually formed to carry out these tasks. A dynamic, cross-functional organiza-tion is better suited in EDSD.

The � nal aspect is infrastructure challenges. The event-driven nature of e-commerce sales events greatly affects IT infrastructure, system capacity, performance, scalability, security, and robustness. Develop-ers regularly perform performance and stress tests to guarantee system performance, stability, and scalabil-ity. They usually perform penetra-tion tests to � nd a system’s potential weaknesses. Other proven software engineering practices such as test au-tomation, DevOps organization, and continuous integration are common in e-commerce engineering teams.

More and more companies will likely use EDSD. Technologies such as machine learning will help EDSD’s adoption as well—for example, by automatically generating targeted au-diences, merchandise, discounts, and timing. While practicing EDSD, com-panies will need to balance between short-term events and long-term

infrastructure buildup. Software teams will also need to collaborate well with nonsoftware teams. Sales operations and marketing teams aren’t trained software engineer-ing professionals. Effectively engag-ing and collaborating with them in EDSD projects will require good communication and well-designed, yet � exible processes.

The advent of object-oriented design (OOD) and object-oriented programming (OOP) caused a para-digm shift on how we model the real world. Software systems evolved from procedural systems carrying out tasks step by step to systems comprising interacting objects. This re� ected the real world more accu-rately, resulting in highly interac-tive, adaptive software systems. In Chinese e-commerce, which is full of sales events year-round, thinking of e-commerce as a series of events and using EDSD might generate bene� ts similar to those of OOD and OOP.

A Growth Perspective on the Chinese Software Industry

John Liu

The Chinese software industry is experiencing exciting, tremendous growth. According to the Chinese

Ministry of Industry and Informa-tion Technology, the Chinese soft-ware industry’s annual revenue grew from 1.3 trillion yuan in 2010 to 3.7 trillion yuan in 2014, a compound annual growth rate of 30 percent.1,2

This trend will likely continue into the next decade thanks to favorable government policies, growing de-mand for information infrastructure and services, fast-paced innovations from aspiring high-tech startups and industry heavyweights, and a steady supply of software engineer-ing professionals.

Realizing the strategic impor-tance of developing the domestic software industry, the Chinese gov-ernment has launched incentive programs offering free of� ce space, high-tech incubators, and other eco-nomic subsidies to stimulate the growth of China’s software industry and high-tech industry in general. The Made in China 2025 initiative, a 10-year government plan to propel China’s manufacturing industry to a world-class standard, also calls for developing systems software, cloud-computing infrastructures, big data, and their applications in industrial settings.

With 649 million Internet users and 557 million mobile Internet us-ers as of December 2014, China has the largest Internet population.3 The explosive growth in Internet and mobile services, e-commerce, social networking, cloud computing, big data, and the Internet of Things has enabled a few Chinese Internet and e-commerce companies to become some of the largest in the world. This has in turn provided the demand and resources for innovations in the Chi-nese software industry. The prolifera-tion of open source software has sig-ni� cantly lowered the entry barriers for software and Internet startups by

JOSHUA XIANG is the chief technology of� cer at Secoo.com. Contact him at [email protected].

44 IEEE SOFTWARE | W W W.COMPUTER.ORG/SOFT WARE | @IEEESOFT WARE

FOCUS: PERSPECTIVES—CHINA

providing a platform to create inno-vative software services and solutions for enterprises and end users alike.

China’s ever-growing, ever- maturing software talent pool is well positioned to power the Chinese soft-ware industry forward. Over the past two decades, thousands of experi-enced software professionals from overseas have come to work in the Chinese R&D centers of the world’s leading software companies, such as Google, IBM, Microsoft, and Or-acle. Many of them have chosen to remain in China. These companies have also employed and trained tens of thousands of software engineers with degrees in computer science and related � elds from Chinese colleges. A growing number of these experi-enced software professionals have since “graduated” from their multi-national employers and joined the lo-cal software industry or started their own companies. Their experience and expertise, along with their deep understanding of the Chinese market and user needs, have enabled them to build quality software systems and applications. This has fueled the growth of the domestic software in-dustry, whose success relies heavily on skilled talent.

Big data is a particularly excit-ing area expected to drive innova-tion and growth. As a clear sign that China has entered the big-data era, the nation’s � rst Big Data Expo took place on 26 May 2015. In a

congratulatory letter, Premier Li Keqiang stressed that “data is a basic resource and an important produc-tive force. Big data, combined with cloud computing and the Internet of Things, is rapidly changing ways of production and living.”4

Although a growing number of public organizations and private en-terprises are realizing the potential value in the massive and rapidly in-creasing amount of available data, the big-data industry is still in its infancy in China and faces tremen-dous challenges. Most enterprise IT departments lack the resources and skills to capture relevant data and make it useful for decision makers and employees. The industry is ex-periencing a shortage of data engi-neers, analysts, and scientists.

The government and the industry need to work together to solve data security and privacy issues and to make public data more readily avail-able and usable. In addition, there are interesting and challenging techni-cal problems in analyzing structured and unstructured data at scale in real time. These challenges will present signi� cant growth opportunities for the Chinese software industry.

As a software professional with 20 years’ experience in the US and China, I’m very optimistic about the growth and future of the Chinese domestic software industry and the innovations it will bring to China and the rest of the world in the next decade.

References 1. “2014 Jan.–Dec. Software Indus-

try Economic Operation,” Chinese

Ministry of Industry and Information

Technology; www.miit.gov.cn

/n11293472/n11293832/n11294132

/n12858477/16421558.html (in

Chinese).

2. “2010 National Software Business

Revenue Reached 1.3 Trillion Yuan,”

Chinese Ministry of Industry and

Information Technology; www.miit

.gov.cn/n11293472/n11293832

/n11294132/n12858477/13583251

.html (in Chinese).

3. 2014 Report of the Chinese Internet

Development, China Internet Net-

work Information Center, Jan. 2015;

www.cnnic.cn/hlwfzyj/hlwxzbg

/201502/P020150203551802054676.

pdf (in Chinese).

4. L. Yang, “Data Expo Gets the Atten-

tion of Millions,” China Daily, 28

May 2015; www.chinadaily.com.cn

/m/guizhou/2015-05/28/content

_20846945.htm.

JOHN LIU is the chief technology of� cer at Gridsum Technology. Contact him at [email protected].

Subscribe today for the latest in computational science and engineering research, news and analysis, CSE in education, and emerging technologies in the hard sciences.

www.computer.org/cise


Recommended