China: An Insider’s Reflection on Keyword Filtering Programs · Global Voices
Oiwan Lam

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)
我和同事一起，认真地做需求分析、设计、实现和测试，在测试时发现增加这个功能之后短信处理速度下降了将近30%，两个人又一起加班将它的性能提高到比原来还高的水平。这样还不够，为了增加客户使用的友好性，我们做了一个管理界面，让用户可以在界面上修改配置项、增加修改删除关键词、查询被过滤的短信内容和号码。很快地，这个功能在原系统上升级使用了，客户也非常满意。而当我登录上这个系统做维护的时候，意外地发现，被捕获的短信各式各样，黄色的、敏感的、私隐的，心里有一点点的不安。但是，我并没有去深究，很快地忘记了这件事情。
直到后来，见的东西多了，看的东西多了，自己的思维也发生了变化，回想自己曾努力投入地实现的那个尽善尽美的短信过滤功能，心里既不安又自责。我时常会想，会不会有人因为我们曾经实现的那个功能，而遭遇不幸呢？会不会有人因为这样而泄露私隐呢？如果我们不做这个功能，又会怎样呢？
这几个问题，我一直没有找到答案，但偶尔间想起，内心依然感觉不安。虽然知道，在那个时候，自己并没有这样的意识，也没有太多的选择，而且，即使我们不做，排队要做的也大有人在。
这个推断很快得到了印证。不久前，产品经理将一个类似的功能交给我们，我很本能地、非常激烈地拒绝。产品经理很困惑地找我聊天，问我为什么会拒绝，当他听完我的理由后，哭笑不得。他说：“这是我们产品打入中国市场的最好机会，中国的移动市场将会给我们带来丰厚的利润，这你应该很清楚。但是，缺少这个功能我们无可能会有机会获得入场券，你知道，现在的市场竞争是那么的激烈。”当我反过来尝试说服产品经理拒绝这个功能的时候，他像看外星人一样看着我，半天不说话。我们之间，谁也无法说服谁，而最终折衷的方法是他将这个功能交给了另一个同事。
在同事实现这个功能之后，我自告奋勇地提出承担这个功能的性能测试任务，在意料之中，性能下降了25%，内存使用率和CPU占用率却是增高了32%，我将这组数据写进测试报告，在测试报告的总结中，加上这样的一句话：“这个功能因为XX等原因，占用资源较多，处理速度也会相应下降，建议不要启用。”产品经理看到这样的报告，皱着眉头问：“将性能提高回原来的水平，需要多大的effort？”同事面露难色，我在旁边插了一句：“恐怕会比较大的代价。”其实，对于容不得产品有明显瑕疵的专业测试人员，我又陷入了另一种矛盾中。莫名地，在那几个瞬间，为了稍许的心安，违背了自己的专业，虽然明知这改变不了任何事情。
在产品的生存和利润面前，我们很少会去考虑它是否值得做、是否应该做，我们所做的功能，是否会给他人、甚至自己带来了不公正的待遇。我们也很少去考虑，为了利润的我们所做的事情，看似是很正常的，但实际上却成了别人利用来对付我们这些普通百姓的工具。就算意识到了，也很难去拒绝，在碗饭面前、在利润面前，是否又真的能说不？是不是只要有利润，就一定会有人做？如果是这样，那最后呢？
很多时候，在我们抱怨某颗树上结出来的果子太苦涩时，我们没有意识到，其实是因为在果树开花的季节我们自己不问对错地喷了本来不该喷的药。