作者:林锐 徐继哲
1. 从“无农不稳、无商不富”谈起
单从技术层面上讲,互联网企业的研发可以归类于软件研发。但是互联网企业和传统软件企业的商业模式差别很大,导致两者的研发管理也有很大的差异。传统软件企业的业务大体有两类:“承接合同项目”和“自主开发产品”。为了满足各种客户的需求,开发方总是不断地付出新的成本,导致每个合同项目或者每个产品都无法产生大规模的倍增效益。加上国内用户的版权意识淡薄,软件市场恶性竞争,所以在这种模式下的中国软件企业大部分都是穷光蛋。
用“务农”来比喻传统软件企业最贴切不过了:干活像农民一样辛苦,利润低得像农产品,还要被客户呼来唤去、经常受气。软件人员的称谓发生了悲剧性的变化, 90年代叫“软件白领”, 2000年初改为“软件蓝领”,现在叫“软件民工”。
传统软件企业也有一些优点:企业虽然不富有,但是可以低调地活下来,很少发生烧钱、破产现象;员工们虽然干活辛苦,收入不高,但是会干苦力活的人在任何时候总会有饭吃的,而且这种环境最能够锻炼人(例如需求分析、设计、编程、测试、维护、项目管理、营销等全让你经历过),有上进心的人可以锻炼成为高级人才,将来挑大梁。
互联网企业是利用互联网开展服务的企业,其消费者是广大网民。互联网企业可以将服务直接送到消费者面前,不需要中间环节,互联网企业如果具有高超的运营本领,它可以充分享受到“复用”带来的规模效益。对于某项服务来说,用户数量的增加不会导致研发成本明显增加,通常只需要增加相应的硬件投入即可。例如下载彩铃, 1万个用户和 100万个用户的总体成本差别不大,而后者的利润却是前者的 100倍。所以互联网业务能够产生大规模的倍增效益。
把传统软件公司比喻为“务农”型企业,互联网企业则是“经商”型企业。“经商”会大起大落,赢了发大财,输了血本无归,虽然有很高风险,但是高收益吸引很多企业去冒险。随着互联网的进一步发展,软件产业的模式必将发生翻天覆地的变化, IPv6提供了无穷多的 IP地址,家家户户都有宽带接入,无线通信通畅无阻,那个时候人们还要像现在这样购买操作系统、数据库、办公软件吗?不需要了,一切软件都将在互联网上运行,为人类提供在线的服务!在这个进化过程中,现在的互联网企业和传统软件企业都能从对方学到自身不具备的东西。
一个国家如果农业很差,老百姓经常没有饭吃,那么国家就会动荡不安。反之,如果国家成天务农,不发展商业,那么国家就不会富裕,就会落伍。这是“无农不稳、无商不富” 的内涵。这句话同样适合于软件产业。
广大软件人员应当具有“务农”的朴实心态,要踏踏实实地把研发基础打好,如果没有扎实的基础,即使好机会来了也抓不住、发不了财。软件企业既要开展传统的软件业务(务农保生存),又要尝试互联网的运营业务(经商谋发展),沿着“农商结合”的道路发展。
作者并非在此喊喊口号而已,我自己的公司也一边经营传统软件业务,一边朝互联网运营发展。我们的主要业务是为 IT企业提供研发管理解决方案(包括咨询和软件工具),每次签订一个合同,我都要花费 2个月的时间去客户公司提供服务,为了提高客户的满意度,常常把自己弄得筋疲力尽。尽管大部分的客户敬重我、不会刁难我,但是我自己感觉也像个民工,很劳累,一年做不了几个合同,效益不高。
经过长期摸索思考后,我们决定开辟新的业务,把企业研发管理放到互联网上运营,目标客户群是广大中小企业或者个人用户,他们将以比较低的费用租用基于互联网的集成化研发管理平台,不仅降低了用户的成本,也降低了我公司的服务成本。同时我公司保留传统的销售和服务模式,目标客户群是少数的中大型企业。希望不久的将来,我能够获得成功的经验,再和大家分享。
2. 互联网企业的业务类型、成长规律和研发弊病
从上世纪九十年代末开始,我国的互联网行业飞速发展,互联网服务也已经从简单发展为丰富多样。常见的互联网业务有:
- 内容资讯,例如:新闻、彩铃、短信等;
- 软件服务,例如:电子邮箱、网络游戏、Blog、虚拟主机等;
- 电子商务,比如:B2B、B2C、C2C等;
- 信息检索,比如:搜索引擎等。
相比于传统软件企业,互联网企业的主要研发弊病有 :
- 技术积累和规范化程度较弱,心态浮躁。
不幸的是,很多开发人员误以为要在 3个月内干出 1年的活,心态非常浮躁。“研发”是精细活,如果团队没有很扎实的研发基础,那是不可能做出“又快又好”的东西的。作者接触过很多 IT企业,我们调查发现,在相似规模下进行比较, 互联网企业的技术积累和规范化程度普遍弱于传统软件企业。比如,在一些互联网公司,同一产品线下的若干细分产品,可能由不同的研发队伍采用不同的技术实现,没有从软件复用中获益,浪费了大量的人力物力。
- 可能利用互联网做坏事
几年前,我在某知名网站申请免费电子邮箱,在注册过程中要求用户输入手机号码。页面上这样提示:您的手机号码仅用于接收重要信息,本邮箱绝对免费,请您放心。当我输入手机号码,点击下一步后,页面上出现这样无耻的文字:本邮箱每月 5元,从注册日开始计费。页面上不再有“回退”按钮,投诉电话永远忙音。至今这个网站还不断地给我的手机发垃圾短信,时常提醒我要在给客户培训的时候讲述这个网站的欺诈事情。
网页和手机短信的欺诈手段非常多,例如“取消表示同意”,“不回复表示同意”,“关键文字的颜色和背景色是相同的,让你看不到”,甚至不通知你就随机收费。最近 2年国内还诞生了 “流氓软件”这个新词汇,并给出了排名,这在全世界都称得上是“创新”。
某著名导演有句名言:做人不可以无耻到这个地步。这句话很适合于互联网。
我相信国内大部分研发人员是诚实的,不会有意地干坏事。互联网上很多“缺德、欺诈”的主意可能是少数人想出来的,但却是普通研发人员做出来的。我接触过不少研发人员,他们谈笑风生,竟然不觉得成为“帮凶”也是可耻的。
人变好不容易,变坏却是很容易的,如果人们以互联网的发展速度变坏,那是非常可怕的。我们经常看到“某某城市的房地产富翁因违法经营而被捕坐牢”这类报道,现在还没有听说过 IT富翁违法经营而坐牢的。 IT人士们一定要警惕,勿以恶小而为之,防止滑向违法深渊。
3. 互联网企业的常见研发管理问题
互联网企业的软件质量、服务品质等方面正受到来自内部、外部的严峻挑战,对其软件研发能力提出了更高的要求,否则在线服务根基不稳。作者访谈了国内数家著名互联网企业的各种岗位人员,获得了大量调查问卷(近 300份),在此基础上我们总结了常见的研发管理问题。这些问题具有普遍性,值得企业领导们重视。3.1 跨部门协同工作问题
我们分析发现,互联网企业的跨部门协同工作问题(见表1)普遍比传统软件企业多。一个简单的原因是,互联网企业的运营部门、设计开发部门之间的差异比较大,甚至可以用“隔行如隔山”来形容。例如从事“女性、少儿频道”的编辑可能完全不懂网页(或软件)的设计开发;反之设计开发人员也可能完全不懂得 “女性、少儿频道”的业务。
解决跨部门协同工作问题的基本方法是:制定清晰的跨部门工作流程,部署配套的管理工具,开展充分的培训,积累成功的案例。
互联网企业的跨部门协同工作问题 | 百分比 |
A. 上下游人员相互不熟悉对方的工作流程和规范,沟通比较费劲,沟通效率比较低。 | 35% |
B. 上游不能及时了解下游的工作进展情况和负荷,不断传达新的任务,下游忙不过来。 | 31% |
C. 上下游人员在沟通的时候,没有及时记录沟通的结论和建议。 | 24% |
D. 上下游人员的工作成果分散在各自的计算机里,难以积累和共享知识财富。 | 46% |
E. 上游传达给下游的需求不够清楚,各方理解有偏差,导致需求和工作成果经常变更。 | 45% |
表1互联网企业的跨部门协同工作问题统计表
3.2项目管理问题
许多互联网业务带有很强的时效性,其项目的特点是“周期短、数量多”,常见的项目管理问题见表 2。这些问题可以用“三拍”来概括:领导拍脑袋做决定;干部拍胸脯作保证;员工拍屁股后走人。由于 CMM/CMMI方法论过于庞大复杂而不适应于互联网项目,互联网企业迫切需要“管理微小型项目的方法和工具”。 互联网企业的项目管理问题 | 百分比 |
A. 缺乏令人信服的立项可行性分析。 | 42% |
B. 没有完整的《立项建议书》,大部分工作人员不了解项目的来龙去脉。 | 42% |
C. 预定的人力资源和任务进度不合理。 | 26% |
D. 没有明确项目经理的权力和职责。 | 25% |
E. 跨部门的项目,缺少全程跟踪项目的人。 | 39% |
F. 项目结束时,没有及时总结知识财富、经验教训。 | 39% |
G. 项目结束时,没有评价项目的价值,没有分析投入-产出。 | 52% |
表2 互联网企业的项目管理问题统计表
3.3技术开发问题
需求分析、系统设计、界面设计、编程、测试都是重要的技术开发环节,是开发团队的内功,对“产品质量和开发进度”影响最大。表 3中的技术开发问题在互联网企业和传统软件企业中普遍存在。解决这些问题的前提条件是消除“浮躁心态”,内功是不可能速成的。互联网业界有不少“投机”成功的案例,但是投机不能用在技术开发上面,否则企业很难持续发展。企业应当聘请一些高手加入开发团队,并且要不断地开展培训和交流,提升团队的开发能力。
选项 | 百分比 |
A. 开发团队不能熟练应用“增量-迭代”的开发模式。 | 34% |
B. 需求分析能力欠缺,不能很好地抓住用户真正的需求、清晰地阐述需求。 | 42% |
C. 系统设计能力欠缺,不能综合考虑产品的功能、性能、可扩展、可复用等。 | 38% |
D. 软件用户界面设计能力欠缺,易用性不够好。 | 25% |
E. 开发团队各成员的编程质量差异比较大。 | 32% |
F. 测试和改错的效率不高,不能在比较短的时间内发现缺陷,并很快消除缺陷。 | 30% |
表3 互联网企业的技术开发问题统计表
3.4 管理工具问题
企业使用管理工具可以提升管理效率,积累知识财富,例如代码和文档版本管理、任务进度管理、缺陷管理等等。管理工具的主要问题不是“工具太少了”,而是“工具太多了,杂乱无章,缺乏整体规划和管理”。
您的部门(项目)采用什么工具来制定、监控任务进度表? | 百分比 |
MS Project, Excel, Outlook | 51% |
工作周报+Email | 13% |
其它:手工记录,不管理,不关心 | 36% |
您的部门(项目)采用什么工具来管理源代码和文档的版本? | 百分比 |
CVS | 47% |
Subversion | 18% |
VSS | 5% |
其它:保存在本机,不管理,不关心 | 30% |
您的部门(项目)采用什么工具来管理缺陷(Bug)? | 百分比 |
Bugfree, Bugzilla, TestTrack | 28% |
其它:word, Excel, Email, 口头通知,不管理 | 72% |
表4 研发管理工具的统计表
3.5 绩效考核问题
很多互联网公司都是上市公司,要以季度为单位披露财务报表。所以通常公司要求员工以季度为单位制定自己的绩效目标和工作计划。在进行绩效考核的时候,容易出现以下几个问题:- 将一些舶来的绩效考核方法生搬硬套到工程师身上:绩效考核通常是以结果为导向的,一般都是事先定下具体的指标及其目标值,然后进行结果度量、考核。而广大工程师工作结果的好坏一般取决于工作过程,其过程通常比较具体、细致,只有在研发管理比较成熟的时候才可能找到并量化出比较合适的绩效考核指标,否则会适得其反,延误项目进度,降低员工士气。
- 混淆绩效考核与研发管理:如果期望绩效考核能够提升研发管理水平,那就大错特错了。绩效考核没有关注研发本身,没有对研发工作提供任何指导,所以不能提升研发能力。事实上,只有“研发过程”能力得到提升,我们才可能看到好的“绩效结果”,这才是一个正确的逻辑关系。
- 以季度为单位制定研发计划:产品和项目有自身的生命周期,在制定绩效目标的时候,不要刻舟求剑。打乱了现有项目自身的生命周期,只会有害于绩效目标。
4. 对策:流程改进和管理平台建设
跨部门协同工作问题、项目管理问题、技术开发问题、管理工具问题、绩效考核问题,这些问题在互联网企业中普遍存在。企业领导不能什么都不管,也不要期望找到灵丹妙药一下子把所有问题都解决掉。本文阐述比较有效的对策:流程改进和管理平台的建设,供互联网企业参考。
4.1 流程改进
所谓流程就是工作的步骤和制度(规范),流程规定了“谁”“在什么时候”“怎么做事情”“产生什么成果”。流程一般有 6个要素:目的和适用范围、角色职责、工作步骤和流程图、输入和输出、成果模板、度量和评价。流程改进是指分析企业的强项和弱项,改正缺点、发挥优点,制定更合理的流程,使广大员工依据流程开展工作。流程改进的一般方法如图2所示。
图2 流程改进的一般方法
对于超过百人的研发队伍,公司应该设立专门的流程改进机构,不断发现企业自身的研发管理问题,并在公司层面进行持续改进,为各个业务部门提供有效的研发管理方法论和工具支持。
4.2 集成化研发管理平台的建设
为了解决研发管理工具杂乱、无法整合数据的问题,我们针对互联网和软件企业的需求,研制了“集成化研发管理平台”(如图3所示)。该平台集成了以下软件工具:
- 研发项目管理系统。用于管理中大型项目,达CMMI3级要求。主要功能有:组织结构和用户管理,立项和结项,项目规划与监控(人员、任务进度、成本),风险跟踪,变更控制,项目需求管理,缺陷跟踪,技术评审,项目会议等。
- 需求任务管理系统。用于管理跨部门需求任务或者微型项目。主要功能有:发起需求,创建任务,执行任务,递交成果,交流记录,人力资源分析、变更记录等。
- 企业文档管理系统。用于文档版本管理,便于共享知识。主要功能有:创建文件库,目录操作,上传下载文件,版本管理,文件审批,文件搜索等。另外,建议采用CVS、SubVersion、VSS管理代码的版本。
- 信息发布与交流系统。用于发布研发信息(例如流程文档和新闻)、开展技术交流(论坛)等等。
- 客户服务管理系统。用于管理客户的需求建议、投诉等,便于研发人员及时了解情况、迅速响应。
图3 集成化研发管理平台的结构
根据大量调查问卷的反馈,用户对“集成化研发管理平台”的支持度高达63%,见表5。
您需要“集成化研发管理平台”吗? | 百分比 |
需要 | 63% |
不了解情况,不清楚 | 28% |
不需要 | 9% |
表5 集成化研发管理平台的统计表
小结:相比于软件工程近四十年的发展历史,互联网企业的研发管理尚处于萌芽状态,其管理方法和工具远未成熟。本文作者致力于互联网和软件企业的研发管理方法和工具的研究,希望更多的人共同参与。注明:本文已发表在CSDN《程序员》2006年8月份杂志上。