Mindset change needed to work with Chinese developers

Home to the world's largest population, China is undeniably a potentially lucrative market that most businesses from around the globe will want a slice of. But, whether most can succeed in doing so or not, remains debatable.

From conversations with industry contacts and friends, I've been told that the Chinese market isn't easy to penetrate--several foreign businesses have tried, and failed. Oft-cited reasons for the failure include how businesses deals in the country are inked based on relationships (or guan xi), so if an organization is new to the local community it'll face a tough time getting contracts. Others also cite the vast difference in culture and workstyle.

Here, Tech Podium guest blogger Chong Yew Meng discusses her experience working in China and is refreshingly frank as she reveals the challenges she faces in the country.

Yew Meng is product and solutions consultant at Singapore-based software integration company, In-One Technology, where she is also a co-founder. She is responsible for the development of product concepts and for managing software development projects. The company's range of services include Web app development and software testing and quality assurance.

The draw of China's lucrative software market holds true also for In-One, and Yew Meng has worked with software developers in the country on several projects.

It is through such collaboration that she realizes working with Chinese developers requires a change in mindset, where even the definition of "quality" as she's used to, is starkly different from what her peers in China is used to.

With that, I'll let Yew Meng take it from here.

A lot of companies happily venture into China with plans to tap one of the world's biggest software developer markets. Developing software at a fraction of their native country's costs and using Internet to deliver the software beyond physical boundaries seems to be a perfect business strategy.

But, the plan often falls apart--software quality seems to be non-existent. Even with the best project managers on-site to monitor the team, the project still falls apart in terms of quality.

So why does that happen?

I've worked with developers and testers from China and it took me years before I realized that apart from all of us sharing a few physical attributes, the similarity ends there.

We think differently, we act differently, we communicate differently. I had assumed that being bilingual, I would have an advantage over my American counterparts because I'd be able to "communicate" in the language Chinese developers and testers were familiar with.

However, being able to talk and write in Chinese does not mean I can understand my team from China any better than my American counterparts. In fact, I think it creates more misjudgment because I'll wrongly assume I know them.

So what is "quality"?
I once asked the director of a well-known testing company why he still conducts most of his critical application testing in Singapore. Why not perform the tests in China as it is much more cost-effective? He replied: "Quality is taken for granted there."

It is common for the China team to conduct quality tests for software, so the issue isn't that there tests aren't being carried out. Rather, the definition of "quality" is different. Most Chinese software teams define quality to be "as long as it meets the positive workflow required by the requirements".

Hence, it is common for software to pass internal tests with flying colors, but fail miserably during production.

Difference definition of "work completion"
Chinese developers want to deliver quickly, while others are trying to fight to deliver higher levels of quality at reasonable time.

For many Chinese developers, software is considered to be completed as long as the software runs without major problems. The goal is often to complete as soon as possible--speed of development seems to be the key. Program codes may be messy, where performance can actually be further optimized, but as long as the program runs without major problems, it is considered "completed".

Our local team tends to view a piece of work as completed only if the internals are developed neatly (even if it is not visible to the customers) and the optimum performance is achieved. At times, we may be viewed as "perfectionist" (probably a more polite way of saying we are too fussy) by our Chinese counterparts, while we see our Chinese team as being too laid back on "work completion".

Hence, we are always in constant conflict with our team in China when it comes to definition of "work completion".

Developers decide what final software should be
When I first started working with Chinese developers, I'd thought that after providing clear functional and design specifications, I would be able to relax and wait for my system to deliver in the shape I expect it to be.

However, instead of receiving the system according to my specification, I received one that had deviations from my requirements. I wasn't informed that the team had encountered technical difficulties implementing the specifications I wanted, resulting in the need to change the requirements to work around the technical issues.

It is common for developers in China to make unilateral changes to specifications without informing the person who stipulated the requirements. At times, it seems as if they made their decision on what the final software should be.

This can introduce an unquantifiable amount of risk, and companies have to guess where software performance may have been affected as a result of the changes.

Keeping quiet about problems
It is common not to hear about any problem from your development team in China during the implementation phase, but this may not be necessarily so.

Developers that produce software often know where the problem lies with their software, but they may not provide that information to their project manager or customer.

The rule seems to be "tell you the good news; but keep the bad news". However, it's important to know the bad news so the situation can be remedied.

Hence, a lot of projects fall apart at the last stage because it is simply too late to resolve the problems by then.

So is there a future for software collaboration?
I believe that very developing economy must first make junk before it can produce a quality product.

With more Chinese developers being educated overseas--to more mature markets--and returning to China to work, the situation should improve as they'll bring back the "quality" concept.

And with companies training local developers through numerous interactions on software development, the quality problem will only get better, not worse.

Most important, companies that want to operate in China should learn to understand how to work more effectively with local developers. Chinese developers are brilliant in terms of creativity and if deployed correctly, this creativity can produce brilliant software offering the best quality at low cost.

It was only after countless failures and much frustration that I realize we're "not the same".

It was only after spending time to understand how my China team thinks and why they act in a certain manner, that I started to see the puzzles fit and when we were able to deliver quality projects.