The Chinese IT community is abuzz with news of the recent arrest of Hong Lei, author of the popular pirated Windows XP “Tomato Garden” Edition software. I’m not sure where the wacky “Tomato Garden” name came from but it’s no laughing matter – this pirated edition of Windows XP is estimated to be installed in many tens of millions of Chinese computers.
The pirated “Tomato Garden” edition of Windows XP is so popular in China because it does not require product activation, includes software/themes that beautifies the Windows XP user interface and comes packaged with other useful free + pirated software tools.
At one point Hong Lei earned more than 40,000 RMB per month, with most of the revenue coming from advertisements on his highly trafficked website www.tomatolei.com where the software is distributed, and payments from companies (eachnet.com and Yahoo China for example) for new subscribers that sign up for or use their services after installation.
The arrest was probably instigated by a complaint from Microsoft to the Chinese authorities, who are usually quite lax about enforcing intellectual property rights. While this is a step in the right direction, I don’t believe it is the start of a broad crackdown on software/music pirates in China – perhaps the authorities are just trying to demonstrate that they are at least doing something about the piracy problem amidst strong pressure and complaints from foreign software/music businesses.
Nobody can escape the all powerful, pervasive BSOD - not even the picture perfect Beijing Olympics Opening Ceremony. In this case BSOD revealed itself during the lighting of the Olympic cauldron. Someone snapped this priceless picture of the BSOD sneaking up to Li Ning, who was suspended in the air lighting the cauldron : )
Fortunately, the BSOD was projected on a very obscure location on the Bird’s Nest so only a small number of people noticed it…
According to this Chinese report, Bill Gates and family just arrived in Beijing and will be attending the Beijing Olympics opening ceremony tomorrow. The report claims that:
The Chinese will sure be glad to see him - in capitalist China most people view him as a total rock-star : )
Software development is hard. Requirements, designs or priorities change mid-way, people come and go, test matrices balloon in size, technologies quickly change or become obsolete, etc. It’s no wonder that many software projects fail or “finish” far short of initial expectations.
Remote software development is an order of magnitude harder: formidable obstacles like language, timezone and cultural differences are thrown into the mix. That said, remote software development has attractive benefits such as: lower labor costs, greater availability of good engineers and the potential to do development 24 hours per day.
Planning to do remote software development in China? A couple things to keep in mind that can increase your project’s probability of success:
Have bilingual and proactive individuals in your team
Some people on the remote team (at a minimum, the project managers) need to be highly bilingual – able to fluently converse and write in English and Chinese. These people must be able to pick up on the linguistic and cultural nuances of both languages – if not, it is excruciatingly difficult to build rapport and an effective partnership with the remote team. You want proactive individuals who take pride in their work and persistently drive issues to resolution; it’s all too easy for issues to fall through the cracks (intentionally, or not) when working remotely.
Be especially S.M.A.R.T.
Most of us have heard it’s important to set SMART goals: Specific, Measurable, Achievable, Realistic and Time-framed. A no-brainer isn’t it? How many people/teams practice SMART in reality? Not many. Perhaps local development teams can survive without SMART discipline. However when working with remote teams it becomes a necessity - goals, issues, work items, tasks, etc can only be communicated precisely and effectively by being SMART. For example which of these two statements do you think is more useful?
Communicate, communicate, communicate
Communication is the lifeblood of a project – starved of communication, a project rapidly withers and dies. Differences in language, timezone and culture conspire to make communication with your remote team as tedious, slow and awkward as possible. You need to come up with a formal communication plan and strategy. For example consider enforcing communication processes and practices such as: regular 1-1s with key team members, regular demos of the latest build of the software, reporting (machine generated? and/or more subjective but agile written reports by your project manager?), all-hands meetings, requiring written summaries with SMART action items after every conference call, etc.
Keep the project/component as isolated as possible
Ideally, the local and remote development teams should work on completely independent components of the software project. Every overlapping area between the local and remote components is a potential source of friction and misunderstanding. Managing overlapping areas properly require non-trivial effort and time. In reality there will inevitably be overlapping areas of development – you must proactively design and implement a plan to manage them: perhaps the shared interface needs to be fully defined before coding starts? or the local team can finish their component first, then the remote team can plug in their piece later?