微软早期一位名叫Jabe Blumental的程序员“发明”了软件研发过程这个“程序管理”的角色。大概没有PM这个角色,就没有现在的微软。另一个让我感觉很震撼的就是微软内部的Bug管理工具Raid,这也是离开微软后我设计Bug
直至2000年初,我在北大计算所硕士毕业留职北大方正已经四年了。期间我一直编写C++代码,主要从事方正RIP相关的软件研发,正考虑换个工作。我同时拿到了微软和亚信的录用通知。到亚信是转向Linux平台、去做Internet相关的项目,从个人爱好而言,我非常喜欢这个继续用C++做开发的机会;但我更渴望学习大规模软件研发的管理方法:微软动辄上千人、分布全球各地的Windows、Office研发队伍是怎么有效管理的?怀着这样的疑问,我在2000年4月加盟微软中国研发中心Office组。
我刚去微软的时候担任中文版PowerPoint的PM(Program Manager,程序规划经理),现在PPT中10个非常有中国特色的设计模板(如古瓶荷花、诗情画意等)就是我负责的。但我最初应聘的时候,一直搞不清PM到底是做什么的,因为在国内公司没有听说过。微软早期一位名叫Jabe Blumental的程序员“发明”了软件研发过程这个“程序管理”的角色。简单的说,PM的作用就是把“Idea turns to spec”,用一份份Spec定义软件的详细需求,然后由程序员“turns to code”,经过测试后,最终“turns to product”。设定PM角色是一个很天才的想法,把需求、开发、测试三个环节进行“三权分立”,互相配合又互相制约,最大限度的保证了大规模软件研发的有效进展。大概没有PM这个角色,就没有现在的微软。微软的第3号人物Jeff Raikes曾做过这样评述:“Jabe was my first employee here,and he has made such an incredible impact on Microsoft because he defined the discipline of program management”。很遗憾到目前为止,很多国内的软件企业依然没有这样的职位。另一个让我感觉很震撼的就是微软内部的Bug管理工具Raid,这也是离开微软后我设计BugFree的发端。
我非常幸运的参与了Office 2003(内部叫Office11)的全程研发。最初设想非常宏伟:以SharePoint技术为支撑建一个Office网站,每个用户将生活在这个“网上Office”社区中,支付月租费。最初读到这个Vision的时候我们都莫名激动,如果真按计划做成了,用户将彻底依赖微软Office了。后来因为各种原因,Office 2003成为大家现在看到的样子,继续在客户端上徘徊。
虽然在微软当PM不写代码了,但我一直没有忘却对C++编程的喜爱。2002年10月底,C++之父Bjarne Stroustrup 来北京访问的那两天,我跑到清华和北大聆听大师的三次讲座。给我最深的印象是,听众席的教授、学者或者众多程序员们只有聆听大师教导的份,没有人能提出让Bjarne需要认真思考后回答的问题,更别说跟人家平等对话了!我们落后的太多了,何时能够赶上?
去年4月份,我决定离开微软去看看外面的世界,尤其是对我一直有很强吸引力的Linux/Internet。当时孤陋寡闻,没有注意到盛大和百度,否则现在也能跟着小富了。这一年多一直在做软件研发管理的事情,把在微软学到的经验用到实践中,也是很有挑战性的工作。现在我深怕自己走上“务虚”的管理之路,所以必须要不断地学习新东西、自己动手写代码保持对技术的敏感。我非常看好开源软件的发展前景,计划到年底的时候把自己的日常工作环境切换到Linux上来;另一方面会继续把BugFree做好,将Test Case和Test Result的管理也纳入到BugFree中来,这样Bug、Test Case、Test Result三位一体,涵盖了测试的整个流程,可以让这款开源Bug管理系统更好的服务于IT企业的研发管理。
我相信机器终究也会有智能,尽管到目前AI还很遥远。但从我的好朋友林燕锋历时多年开发的KCOM商业工程(http://www.kcomsoft. com/)上看到了一丝曙光,目前这个KCOM平台已可以做到对管理软件的自动代码生成——换句话说,你只要把需求描述清楚,不需要手工编码,就可直接生成实用的系统!我希望能够有机会好好学习KCOM,研究代码自动化。
现在搜索引擎热火朝天,但搜出来的东西经常离题千里。我想自己写一个这样的“仆人”程序:能够智能化的去互联网上按照“主人”要求智能化的去寻找真正符合要求的信息,综合分析后呈现给“主人”,就像我们看的新闻摘要一样。这种真正“个性化服务”程序一定很有意义。
网友评论