China in Focus

Industry Articles
GCiS Commentary
Interesting Links
China Demographics

Software Integration in China

The purpose of this article is to provide a living description of the software integration business in China today. Rather than concentrate of market based numbers or focusing on technologies, what we would like to address is what the current situation is actually like: what is being done, why its being done this way and what it means for foreign companies operating in China.

The IT world of today lives with a wide variety of poorly defined terminology when it comes to software development and software integration. It is therefore helpful to spend a moment in the boring area of definitions so that we can speak a common tongue as we move forward.

First of all, Software Development is the process of writing software according to the needs of some defined objective. This can be a teenager writing his or her first '‘Hello World' program, to a commercial product development, or custom application development. Software Integration is process making software work together for some given purpose. It typically also involves all of the elements of software development except that it starts with an existing software environment.

Naturally, in the real world it is not so simple or straight-forward. In reality they operate from opposite ends of the same scale, with neither one being too far removed from the other. Even pure software product development requires significant integration and pure integration projects typically require significant development work. Both must deal with a wide variety of products and standards and both have a wide range of products and tools at their disposal, many (most) of which are the same.

Integrating different software and hardware platforms is a complicated business that involves expertise in a wide variety of areas. It can be a very complicated environment, with a very large number of participating companies and products, all with competing claims. Usually these claims are proprietary names built upon variations of several basic technologies. For a coherent view of the state of the software integration industry today in the West, the web site EbizQ (www.ebizq.net) provides one of the better reference sites for the industry as a whole.


IT in China

In China the environment is highly mixed and more variable than even in the developed economies. To begin with it should be remembered that the entire industry in China is “imported”. Virtually all of the technologies, all of the processes, the vast majority of standards and practices and even the language of development itself – English – is imported. Add to this that the history is not long.

A (very) Brief History:

In the early days of China’s opening, most of the IT spending, such as it was, was spent in a wasted effort to reverse engineer key hardware technologies. It was driven by the government and focused on things such as circuit design and technologies with mixed civilian-military importance. This phase, which absorbed nearly all of China’s limited talent pool, lasted basically into the mid-1990s.

About this time, from the early 1990s and building onwards, the industry began to diversify and a large number of relatively simple information systems began to be developed. This was typically the direct manipulation of a database for a limited functionality set. Systems were developed separately for each function set (end-user set) and little thought was given to integration or overall design issues. In the mid-1990s, some of China’s more advanced software professionals began to think seriously about these issues. At that time however, a major disaster was washing across the oceans and into China. The Internet Bubble arrived in China.

The Internet Bubble brought with it waves of hype, silly business ideas and marketing hype of all types, products, technologies, methodologies and all the rest. And it brought with it lots of money – money to burn.

What followed has set China’s technologists back by at least a decade in terms of developing systems thinking, component based design and true OO (object oriented) design and development capabilities. A wave of young people, who have not yet mastered either the technologies or the development techniques and practices, suddenly found themselves flooded with money, fancy titles and office buildings and waves and waves of hype. And they were the technology in the middle of it all. The naturally resulted in a distorted view of the world, and their place in it.

The Internet Bubble not only washed over the business and practice of development on the seller’s side, but also impacted the perceptions and attitudes of commercial and institutional buyers and government policy. Impractical expectations of all types were created all around.

And then the Bubble burst……

In sum, the negative impacts of this history are being more keenly felt in China than in the developed nations. In the developed nations, this all happened against the background of a mature industry, in China it happened against the background of a very immature industry. In the developed nations, a generation of youngsters had their moment in the sun, but they still live in an environment where many of the people around them have years of long experience and deep understandings of systems thinking and software design and development best practices. They quickly learned after the bubble that there is, after all, a difference between a compiled language and an interpreted language, and that there is, after all, a reason why Unix (and all its descendents) is the workhorse.

But in China, the fallback has been, for the majority of the industry, a return to the middle 1990s.

Naturally, this is not a completely fair characterization. Out of this has emerged a few companies that have, or are trying really hard, to embrace international standards. But for many it a scramble for survival. There is little time or money for internal advancement.

Fortunately for China, the needs of the Information Age continue to build. China’s industries and institutions are even advancing their spending on basic systems, including for basically the first time, spending on integration. And the long-standing habit of burying software costs inside of hardware costs, while still common, seems to be coming to an end as clients become more sophisticated and system demands increase beyond what is available from simplistic software solutions. Even in the post-internet hangover, China’s software integration and development markets are likely to post growth rates in the 30%-plus range this year (2001).

Thus the table is set for a more advanced round of development to begin. In the highly mixed and chaotic environment that is China, many weaker companies are folding. Others are rapidly changing away from Internet-related products and service to those more directly involved with industry and government. At the same time, clients are becoming more sophisticated. For example, in the 2nd half of 2001 for the first time, the telecommunications companies’ RFPs began requiring CORBA compliance from their software vendors (creating quite a stir as until now CORBA was virtually unknown in China). These two trends of consolidation and increasing sophistication are taking place against a market that is still growing at respectable rates.

The background established, next we take a short and very subjective tour of the state of the industry today. Whether one is a customer or a provider of software service in China, the following should touch on some familiar points.


The Chinese Programmers

The place to begin is with the base technical skills and work attitudes that are prevalent in the industry. As a general rule – thus acknowledging exceptions – Chinese programmers are short on skills. They are not short on intelligence, but their technical skills are typically very shallow. We recently tried an experiment: We (Delineate) tried to hire only people that could pass technical tests. The test subjects were as follows:

Unix Operation
Unix Programming
C programming
C++ Programming
JAVA Programming
Oracle Operation
Oracle Programming
Component Design
Documentation Practices

Each of the above subjects contained three questions: Basic, Intermediate and Advanced. Naturally we did not expect any single programmer to take all the tests, nor expect any given programmer to pass very many of tem. Each programmer was asked to take the test that corresponded with his/her resume. This test was designed by three people, one American, one Swiss national and one PRC national – each with extensive experience in software development and management, averaging over 15 years each between the three. To date, after testing well over 400 programmers over four months, not a single programmer has passed the intermediate or advanced Unix tests. And only a very (very) few have passed the advanced C, C++, JAVA and Oracle tests. Component design mystifies the vast majority and Documentation Practices are horrible. Naturally, this is not a scientific sample. It is taken from Beijing and over a relatively short period of time, but the results carry significant implications.

So what does this mean? Well, it means trouble mostly. The skills and salary expectations of most of these young programmers are widely at variance with their actual skills. Furthermore, they are completely unaware of how shallow their skills actually are, creating a large and potentially dangerous expectations gap.

This is the true cost of the Internet Bubble – shallow skills and extreme dependency on development tools, mismatched expectations and poor professional habits. All this at a cost that exceeds Indian software engineers.


Software Project Management

Naturally, projects are still getting done, and that means that they need to be managed. The methods talked about most here in China are RUP, but this is mostly marketing myth. In reality Project Management in China for software development at this time is mechanical application of traditional project management methodologies. The overheads, especially in terms of head counts, are high because the process must be cut into the finest detail possible and then each task given and managed separately. This is, of course, one of the direct results of the general level of programmer’s skills. A most interesting note is that for some of the better companies, this format for project management works fairly well. There are still some other problems (see below) but the fact that some of the stronger companies continue to climb the technology scale while producing excellent corporate growth rates indicates clearly that there are localized imperatives to managing a software project in today’s China.


The Chinese Government

The Chinese government is, like any government in a large country, a multi-headed creature of strikingly different appearance depending upon the angle from which it is viewed. Three views are relevant here: as a client; as a supporter of industry; and, as a monopolistic agent.

As a client, the Chinese government is generally pretty good. Often not terribly sophisticated technically, government agencies typically cannot clearly articulate their requirements or specifications, and they tend to be hardware-centric. But both of these are changing rapidly. Increasingly aware that their needs are not being met, and that they cannot themselves express clearly what their actual requirements are, they are very willing to work with development teams to work this out. Also they are increasingly recognizing that software must be treated differently and that it is, after all, the software that is (or not) delivering the final functionality desired. And they tend to pay in full and on-time. Working with them can be tiring, as they tend to appreciate their power both as government and client to its fullest, but if worked with are typically quite cooperative.

As a supporter of industry, the government offers two distinctly different perspectives. On one hand they are quite determined to support IT development in China at the fastest pace possible. To this end they offer a variety of support measures that range from tax concessions to research grants. On the other hand, as a regulator they often make decisions that restrict access to funds or technologies (e.g. from financial system practices and regulations, educational system development, to Internet supervision and control) that tend to restrict the natural growth and progress of the industry.

As a monopolistic power, old ways die hard. Various government ministries have subsidiaries that retain the full backing of their parent organization. Some government ministries have subsidiary entities that are separated in name only, but in fact still receive the full backing of the related ministry or agency. This is bad enough, but in the guise of standardization and market regulation, the government has established a series of administrative guidelines that, in effect, give these large state-owned enterprises a huge advantage, if not near monopoly in certain circumstances, over their private sector competitors. These advantages are seen in a wide range of places – such as bank financing, or even the requirement for a “Certification of Capability and Quality” (CiZhi Zengming) in order to contract for government (including major SOE) work. The standards set by this have nothing to do with projects executed or objective work process considerations, but are based strictly on traditional measures of scale (no. of engineers, total net assets, registered capital, annual revenues, etc.). In the Chinese context it is very difficult for a truly private sector company to actually (and honestly) meet these standards.


Chinese Companies

It is almost impossible to categorize Chinese corporate clients under the current environment. Like clients everywhere, they range from pretty good and surprisingly sophisticated, to pretty clueless and difficult for work for. The main difference in China today is that few domestic companies depend on software derived or supported functionality for a competitive advantage. Competition is based primarily on price, distribution and relationships. This is a pattern that is changing rapidly, and IT requirements are going up correspondingly. In today’s China you can find $30 billion multinationals with virtually no IT functionality besides email and a marketing web site and private small and medium sized domestic companies with fully integrated ERP programs. At this time there is really no dominant pattern.


Foreign Software Vendors

Foreign software vendors of all types have entered into the China market in the last five years – some even inadvertently or unwillingly. Most of them work through channel partners and they exhibit a wide range of business and pricing practices. Foreign software vendors suffer as much from certain environmental influences as their domestic counterparts. For example, technical support is generally effective if the issue at hand is standard or not very difficult. Most truly difficult issues must be passed offshore.

Most local (China) staff of foreign software vendors also do not have a full and in-depth understanding of their entire product range or the more sophisticated aspects of any given product range or technical application. If one looks at the product and technology offerings of most companies (Oracle, IONA, BEA, CA, SAP, IBM and so forth), then discusses the technologies with the domestic organization, it quickly becomes clear that there is a large technical gap. This gap is not as large as in the industry as a whole however, thus their ability to charge the same technical consulting fees that they charge in the developed countries.


Domestic Software Developers Vendors

In general it can be fairly said that domestic developers are not high quality providers of software solutions. There is a wide range of capabilities and quality, but given the status of local programmers and designers (in general – see above), it makes it difficult for most domestic companies to perform at advanced levels. But most systems in China don’t need highly advanced levels right now, and most customers are not sophisticated enough as yet to make balanced purchase decisions. Thus there is a great deal of work to be done, and the competition is fierce.

Domestic software vendors fall into three basic groups. The first is an agent, distributor, or VAR/integrator using various package products, both domestic and international. These companies range from highly competent within normal requirements, to companies that are based solely upon relationships (to get business in the first place) and ad hoc teams of low cost technical staff.

Custom development and integration shops are numerous and cover the entire range of scale in terms of size, nationwide coverage and other corporate measures. Actual technological capabilities range from upper-middle market to something less than muddy water. They tend to be industry focused and regional. In order to make inroads into their respective industries they must generally have strong domestic relationships within the industry. This yields a competitive advantage that often covers technical mediocrity.

The products and product-based solutions developed domestically are wide ranging by industry and application. In general they tend to less expensive and have far more limited functionality. Domestically developed solutions are often developed on open source code that is repackaged for the domestic market. That said, many industries ranging from tax collection to hospital information systems have multiple domestically developed solutions competing fiercely. This trend is developing rapidly behind the language barrier and the reluctance of foreign vendors to localize their offerings.


Intellectual Property Issues

IP issues are of concern in China, not only to foreign investors and the international press, but also to domestic software companies. IP issues are still very difficult in China, in spite of recent success in enforcing IP rights through legal channels. There are several main areas of concern. The first is the outright theft of intellectual property that is not protectable – which is usually done by clients. The issue here is that in custom development or integration, there is a great deal of valuable intellectual property that is not protected by copyright. This can often take forms other than code – reaching into design and analysis areas as well. When the client chooses to pass this information on to a competitor, there is little that can be done.

The second is through theft of IP by employees. The employee turnover rates in the software industry in China today are very high, and professional ethics are underdeveloped. Add to this the weakness of legal remedies, and the result is that companies are very vulnerable to having their IP stolen by their own employees. This is a problem not unique to China, just magnified.

The third is the designed theft of existing IP by third parties. This happens in China, but is not terribly common. It is not easy to reverse engineer software, even if you have all of the source code. Usually reverse engineering is not completed before the product targeted is upgraded or even obsolete.

And of course there is the illegal copying of packaged product. This gets most of the press, but impacts major product vendors and developers minimally. This is mostly concentrated in light products (consumer products, small network installations, etc), development tools and games. But inevitably, when a real system goes in, real licenses are purchased.


Doing Development in China – Common Sense and Extra Effort

So, this brief tour complete, what does this mean for the foreign invested company in China that needs to get software developed or integrated?

First of all the question must be asked, “Why do development in China at all if there are so many problems?” The answer to this is several-fold. First of all, the language is a huge driver of local development. Complete localization is not easy or inexpensive. It often makes better sense to develop locally a limited functionality set that it does to localize fully functional home office applications. This is not just because of language, but also because most business processes are significantly different. The second is that, all problems understood, it is still more effective than outsourcing to India or elsewhere (again because of the analysis and specification issues) and that given the proper approach, Chinese developers are still a good value for the money relatively. The third reason is that major companies need to have dependable local suppliers. They need special local knowledge. They need special language skills. They need on-going service and support. If the process is never started, then the result will never be achieved.

In general there are three things that should receive special attention when doing development in China. The first is the control of the specifications and design. The second is the oversight and control over the development process. The third is the issue of managing time. These are not unique to software development in China as they are advisable steps regardless of where development is being done. Its only that in China, they are just even more critical.


Analysis Phase – Business Logic, Specification and Design

It is true of software development anywhere in the world, but is even more important in China, that the development of the system features, functionality, design and development specifications needs to be done well and in depth for a system to work well. In China this process must be led largely by the client. A good Chinese developer, given clear requirements, will produce the desired system. The problem is that rarely do China domestic developers have experienced research and analysis capabilities. If the client is not able to articulate clearly and in detail about what is actually desired, Chinese developers will go through a surface process of investigation and then move to develop the system.

The problem usually occurs on two or three levels. First of all, the requirements as developed by the local developer are rarely complete. This makes it very common for development projects to go into an endless cycle of review and revision. Such a process usually leads to an unsatisfactory compromise and creates layers of discarded code within the system – in addition to leading to numerous project delays.

Secondly, this leads to surface-level solutions. Like any system there are many choices to be made. These choices are not limited to the functionality of the system for the user, but include design and technology issues that have very large impacts on system dependability, efficiency, and expandability. When the analysis process is done at the surface level, it naturally focuses on the direct requirements of the end-users – what they will do and see. But under this are the architectures, designs and technologies that will determine the true value of the investment. These are choices that need to be made in an organized and consultative environment. Typically in China, these choices are not really examined in depth. The developer typically selects whatever is the most time efficient – from its perspective, and that delivers the obvious as promised. Thus there is a great deal of analysis to be done that is difficult and time consuming, and as a result, usually gets short-changed.

Thirdly, such systems are usually very difficult to maintain should they have problems. Often such systems use resources inefficiently, integrate with other systems poorly if at all, and are difficult to troubleshoot or maintain. The documentation is typically insufficient for other developers, internal or external, to fully understand the system. Such systems have a common and inevitable fate – complete replacement.

Thus when developing software anywhere, but especially in China, pay special attention to the design and analysis phase. Finding one of the better developers helps, but in the analysis and design phases, the client’s staff should be highly involved. To make their involvement productive, have them learn the basics of Use Case analysis, conduct a review (with or without the developer) of key technologies and even read a book or two about the software development process. The key here is not for them to manage the process in its entirety by themselves, but to learn to ask the right questions, track and approve the process and documentation, and to verify key decisions with related parties or outside experts. Remember that if your own IT people cannot understand the documentation, it is probable that other local developers will not understand it either. It is unfortunate that in the planning and budget processes of most companies’, time frames regularly get squeezed, thus creating time pressures on projects. It is even more unfortunate that when time pressures arise, what typically gets cut is the most important, but least tangible part of the development process. True everywhere, but even more dangerous in China.


Oversight & Control

This is as important as the analysis and design phase. In general it means tracking the development process through tracking the documentation generated from the project. This documentation should be checked against various portions of the project such as the prototype, user interfaces, data inputs or outputs or other available prototypes and tests that are part of the development process. If the developers cannot supply clear documentation during the development process it is likely that your project is entering a twilight zone where programmers code on the fly and document – whatever they can remember, and if they feel like it – later. This is a sure and early sign of impending problems. Appropriate and complete documentation formats and procedures are part of every formalized development methodology, and most of these are available, at least in simplified format, from the Internet. If development projects are frequent, some specialized training is money well spent.


Managing Time

Development projects that are under excessive time constraints are projects where shortcuts are taken. Sometimes this is unavoidable. But if this can be avoided, it should be avoided for the reasons illustrated above. The use of time can be well controlled, and fairly well predicted by active participation in the project as detailed above. The extra time spent on these activities usually result in time savings in the actual implementation stage. They also reduce the number and difficulty of corrective cycles, resulting in tighter time schedules overall.


In Conclusion:

Software development anywhere is a difficult process, and its no different in China. The process in China has some special aspects that need to be integrated into the process. Summarized, these consist of analysis, process supervision and time management. A little extra effort will pay significant dividends.

This was originally published in China Business Review.

About GCiS China Strategic Research

GCiS (www.GCiS.com.cn) is a China-based market research and advisory firm focused on business to business markets. Since 1997, GCiS has been working with leading multinationals in sectors ranging from technology to industrial markets, medical, chemicals, resources, building and constructions and a few others.

top

more articles

 

 


Copyright © 1997-2016 GCiS
ICP 05040291
All rights reserved http://www.gcis.com.cn/