Software development in China

Haoyang Che of the Institute of Software at the Chinese Academy of Sciences looks at China's approach to agile software development processes and gives some background on working with Chinese organizations.

Over recent years, China's IT economy has poised for a new round of development, which in some respects characterizes a large number of offshore software outsourcing for scale and low cost.

The phenomenon of global software development has intensified more than ever before, resulting in an increasing dispersion of software development activities across geographies.

To survive and be more competent in such a rapidly evolving environment, software companies have been looking to innovate and differentiate themselves by resorting to new development methodologies.

Among these, agile development techniques such as test-driven development and short iterations are believed to be in a position to eventually help IT companies to quickly deliver products at the pace needed by business necessities.

Despite the substantial potential of the software industry, effective agile practices face formidable obstacles in China. There are several reasons for this.

First and foremost, although changes in IT policies can be seen clearly from nationalism to pragmatism, many Chinese IT-related organizations are still governed by an ingrained officialism that disallows 'just enough methods'.

Perhaps this is partially the reason why so many software companies are involved in the CMM certifications rush.

At this stage, the frail Chinese software industry still needs preferential support from local authorities' policies. Frequently, they are the project stakeholders who invest resources - time, money, services, facilities, and so on.

To maximize the stakeholders' investments, software companies must cater to their requirements, for example, to write out superfluous documents because the stakeholders are willing to see well-documented source codes and plentiful documents, which may prevent software developers from traveling light.

China is not an English-speaking country and most of its software developers are non-native speakers of English. Many developers largely rely on the current Chinese book market to get the desired information. However, the time for translated English literature to enter into the Chinese book market always takes a year, or half a year at least.

This kind of hysteresis makes coordination and communication in multiple sites more difficult, particularly between overseas practitioners in full possession of agile methodologies and local developers who lack accurate perception of the corresponding concepts.

Successful agile offshore software outsourcing is much about building relationships based on trust, and mutual respect.

Local developers and oversea developers come out of different cultural backgrounds, which make mutual trust very hard to achieve. Different spoken languages also deepen the existing communication chasms between the two.

Offshore software outsourcing can get stung by poor intellectual property protection. In this regard, India actually has a better cultural and legal climate for IP safeguard than China.

The relationship between agile methods and intellectual property protection is still unclear for most domestic developers.

For all these existing challenges and complexities, there are also some intrinsic advantages for China's software industry to adopt agile software processes.

Most IT companies in China are still relatively small in scale and privately owned, thus changes in software development processes are much easier to conduct compared with their American and Japanese counterparts.

Furthermore, China's absolute number of developers is very high, and every year there will be sufficient engineering workforce replenishing IT.

Although comparatively less productive than others, they are accordingly less affected by traditional plan-based approaches, and find it easier to embrace agile techniques in global software development.

From the above we know the existing difficulties and the relative advantages of following agile software processes in China.

Multinational corporations aiming to establish an outsourcing relationship with Chinese organizations must take actions to adapt their development styles to China's global software development processes from the outset. To be more agile in those cooperative activities, the following points need to be considered.

First, do in Rome as the Romans do. That is to say, multinational corporations must tailor their agile practices to meet the real situation in China's global software development environment. Some agile manifestos may not be observed that strictly during the cooperation.

For example, since local authorities may be involved in the outsourcing cooperation, 'working software over comprehensive documentation' may change to 'working software over excessive documentation', and 'responding to change over following a plan' may change to 'responding to change over excessively following a plan', in order to make efforts smooth.

Second, multinational corporations must organize some related training classes on outsourcing, agile methodologies and global software development, to leverage two camps - those who master agile principles better, and those who are new to agile practices.

Third, before building the development team, the two sides must establish some kind of mutual trust since this is the basis for further cooperation and adoption of agile practices.

Fourth, in order to support face-to-face communication, the two sides must decide on the working language, which is always one side's major spoken language. If one attending side is not very familiar with the language, they must participate in language training classes.

Fifth, although agile principles welcome changing requirements even late in the project, the cooperative sides must evaluate the impact on the project when deciding to change requirements in late phases, since global software development processes pose more different challenges and complexities than traditional ones.

Sixth, 'customers' active involvement' seems more like a slogan, and may not work very well in China's current development environment. Thus when faced with inactive customers, don't lose your temper because that you will corrupt the relationship.

After all, outsourcing and global software development is relatively new, so when it comes to adapting and reacting agilely to China's global software development processes, you need to take notice of many things.

Many practitioners accept effective agile practices as a sound means to improve competitiveness and achieve strategic advantages.

However, to effectively improve the agility in China's global software development processes the pros and cons need to be considered, along with leveraging existing resources with a lot of ideas and initiatives.

Both government and industry must clearly realize the globally competitive circumstances they face and take measures to promote the current software development environment, build the supporting global software development infrastructure, and bring more agility and vitality to domestic IT enterprises. Thus a healthy and effective outsourcing environment can be established in the long run.

This article first appeared in May 2006 ITNOWextra.