China: An Insider's Reflection on Keyword Filtering Programs

A computer programmer, under the pseudo name ‘smilings’, has written a reflective article at my1510.cn [zh] about his experience in developing a program for keyword filtering on mobile devices. The blogger's account informs readers about the nature of filtering – that which entails active monitoring of individual privacy. Below is a full translation of his reflection:

刚毕业的第二年,部门经理让我和同事一起做一个短信关键词过滤的功能,也就是说在收到用户发来的短信之后,判断这条短信是否包含关键词,如果有,就直接拒绝,并且呢又要模拟一条发送成功的状态报告返回。后来客户提出进一步的要求,在拦截了包含关键词的短信之后,需要将这条短信的源号码、目的号码和短信内容记录下来。当时的我,正处于懵懂的积极工作期,欣然接受了这个任务。

Error sending message. By Keso (CC: BY-NC-SA 2.0)

In my second year of graduation, the head of my department asked my colleague and me to design a program for keyword filtering. The program entails a keyword recognition system to distinguish whether or not the message contains certain keywords. If yes, the system would deny the delivery of the message. However, at the same time, it has to send out a successful delivery message to the sender. Later our clients demanded that we add another function. Upon blocking the messages, the system has to record the sender's number, the receiver's number and the content of the messages. I was too green then and accepted the task without any hesitation.

我和同事一起,认真地做需求分析、设计、实现和测试,在测试时发现增加这个功能之后短信处理速度下降了将近30%,两个人又一起加班将它的性能提高到比原来还高的水平。这样还不够,为了增加客户使用的友好性,我们做了一个管理界面,让用户可以在界面上修改配置项、增加修改删除关键词、查询被过滤的短信内容和号码。很快地,这个功能在原系统上升级使用了,客户也非常满意。而当我登录上这个系统做维护的时候,意外地发现,被捕获的短信各式各样,黄色的、敏感的、私隐的,心里有一点点的不安。但是,我并没有去深究,很快地忘记了这件事情。

My colleague and I were very dedicated in our analysis, design and in testing all the functions. During the testing stage, we found out that the system would slow down the message delivery time by 30%. We worked overtime to increase its speed. In order to be more user friendly, we had designed an interface for the clients to manage the system. There, they could add or delete keywords, check the filtered messages and the sender's and receiver's messages. Very soon, we had an upgrade of the system and the client was very satisfied. Later, when I logged in for system maintenance, I found out that the system had captured all kinds of indecent, sensitive and private messages and I felt quite uneasy seeing that. But I did not think deep and forgot about the whole thing very quickly.

直到后来,见的东西多了,看的东西多了,自己的思维也发生了变化,回想自己曾努力投入地实现的那个尽善尽美的短信过滤功能,心里既不安又自责。我时常会想,会不会有人因为我们曾经实现的那个功能,而遭遇不幸呢?会不会有人因为这样而泄露私隐呢?如果我们不做这个功能,又会怎样呢?

Later, when I had more experience and had exposure to different ideas, I started to look at things differently. When I look back at my devotion to the development of the filtering system, I feel so guilty. Sometimes I am worried whether the system that I have created has brought misfortune to others. Or if someone has had their privacy exposed because of that. If we refused the request in the first place, would things be different?

这几个问题,我一直没有找到答案,但偶尔间想起,内心依然感觉不安。虽然知道,在那个时候,自己并没有这样的意识,也没有太多的选择,而且,即使我们不做,排队要做的也大有人在。

I don't have any answers for the above questions yet and I still feel uneasy about that. Even though I was not conscious of the issue at stake and did not have much choice… also even if we had rejected it, someone else would certainly have taken up the task.

这个推断很快得到了印证。不久前,产品经理将一个类似的功能交给我们,我很本能地、非常激烈地拒绝。产品经理很困惑地找我聊天,问我为什么会拒绝,当他听完我的理由后,哭笑不得。他说:“这是我们产品打入中国市场的最好机会,中国的移动市场将会给我们带来丰厚的利润,这你应该很清楚。但是,缺少这个功能我们无可能会有机会获得入场券,你知道,现在的市场竞争是那么的激烈。”当我反过来尝试说服产品经理拒绝这个功能的时候,他像看外星人一样看着我,半天不说话。我们之间,谁也无法说服谁,而最终折衷的方法是他将这个功能交给了另一个同事。

I was soon proved right. Sometime ago, our product manager asked us to follow up with a client who wanted to have a similar program. I objected instantly this time. The manager was confused and asked me why. He laughed at my explanation and said: “This is the best opportunity for our product to get into the China market. The mobile market in China would give us very good return. You should be aware of that. Without this function, we could never have the chance to enter the market, it is so competitive.” When I tried to convince him to refuse, he looked at me as if I were an alien. We failed to convince each other and he handed over the job to another colleague.

在同事实现这个功能之后,我自告奋勇地提出承担这个功能的性能测试任务,在意料之中,性能下降了25%,内存使用率和CPU占用率却是增高了32%,我将这组数据写进测试报告,在测试报告的总结中,加上这样的一句话:“这个功能因为XX等原因,占用资源较多,处理速度也会相应下降,建议不要启用。”产品经理看到这样的报告,皱着眉头问:“将性能提高回原来的水平,需要多大的effort?”同事面露难色,我在旁边插了一句:“恐怕会比较大的代价。”其实,对于容不得产品有明显瑕疵的专业测试人员,我又陷入了另一种矛盾中。莫名地,在那几个瞬间,为了稍许的心安,违背了自己的专业,虽然明知这改变不了任何事情。

When my colleague finished the program, I nominated myself for the testing. As I had anticipated, there was 25% decrease in speed when the usage of memories and CPU increased to 32%. I wrote a testing report and concluded: “Because of XXX reason, such function would occupy a lot of resource and reduce the speed. Suggest not to launch the product.” The product manager wrinkled at my report and asked: “How much effort do we need to push up the capacity to original level?” My colleague hesitated to answer. I said “the price is quite big”. As a programmer in pursuit of perfection, this is a contradictory move. However, in order to relieve myself from my moral tension, I betrayed my professional ethics even though I knew that I could not change anything.

在产品的生存和利润面前,我们很少会去考虑它是否值得做、是否应该做,我们所做的功能,是否会给他人、甚至自己带来了不公正的待遇。我们也很少去考虑,为了利润的我们所做的事情,看似是很正常的,但实际上却成了别人利用来对付我们这些普通百姓的工具。就算意识到了,也很难去拒绝,在碗饭面前、在利润面前,是否又真的能说不?是不是只要有利润,就一定会有人做?如果是这样,那最后呢?

In the face of profit making and survival in the market, we rarely take into consideration whether or not it is ethical for us to develop a product, or whether such product(s) would bring injustice to the others or ourselves. It seems quite normal for us to develop certain products in our quest for profit, but we seldom take into account that the products could turn into tools that are used to control ordinary people, including us. Even if we are aware of the problem, can we risk our job and say no? Is it inevitable that someone would take up the job when there is profit involved? If so, what would become of our world?

很多时候,在我们抱怨某颗树上结出来的果子太苦涩时,我们没有意识到,其实是因为在果树开花的季节我们自己不问对错地喷了本来不该喷的药。

When we complain that the fruits of a tree are too bitter, it is because we have sprayed too much poisonous fertilizers during its flowering.

Start the conversation

Authors, please log in »

Guidelines

  • All comments are reviewed by a moderator. Do not submit your comment more than once or it may be identified as spam.
  • Please treat others with respect. Comments containing hate speech, obscenity, and personal attacks will not be approved.