一个产品在开发初期有两个角色是最重要的,一是产品经理,二是系统设计师,前者把握业务后者把握技术,相辅相成,缺一不可。这两个角色由一个或两个人承担都可以。系统设计师将业务模块化,并规定对外接口。把模块划分到人,那么此人就专业负责此模块更细致的设计,开发和测试。当然不能过于专注,对其他同事的业务模块,毫无所闻。理越辩越明,沟通也是分析业务的方式。对自己负责模块的理解和心得与同事沟通很重要。从软件开发的思路历程来看,从第一版到第二版一般会有很大的变化,第一版通常偏重体现意识,第二版偏重体现理性,之后版本变化通常比较小了。也就是说同一段代码你第二次写完的时候,就可以准备写设计文档。模块专业分工后,当此产品销售到市场,客户对产品提出客户化的要求事,涉及哪个模块,就有专业负责这个模块的人处理。如此不会有最头痛的三件事。此模块经历项目的过程中,模块负责人为了避免每次都修改并调试代码,自动会思考如何使代码的灵活性更强,容错性更强,代码更简洁并满足需求,无须外界督促。人的天性不愿意破坏性的修改自己产品,更愿意并乐意完善自己产品。整个系统会自然地逐步完善,项目的实施周期会逐步缩短,项目收益率逐步提高,产品竞争力增强,公司和员工收入也会提高。我们的员工也可以抽出更多的时间思考总结,或投身于更有意义的工作中去,而不至于天天忙碌丢掉自己的灵魂。
代码量少,简洁易读,文档齐,全通俗易懂,就算模块创始人离开了,也可以最大程度帮助新手快速处理完头痛三件事。阅读优秀的功能代码和文档又成了新手融入公司的入门课程,一举两得。还有初级的软件工程待遇较低,以低待遇换学习,换时间,换因老员工离职而造成项目实施周期延长的时间。 另一方面,因模块专业化分工,模块负责人就少一些心思和理由去了解其他模块的细则,对保护知识产权也有一定的好处。
总结一下:软件生产专业化
1.有利于功能模块化。
2.有利于提高代码质量。
3.有利于保护知识产权。
4.有利于提高生产率,降低工业成本。
当福特研发出世界上第一个流水线后,福特降低了员工工作时间,开出的工资是其它汽车厂商工资两倍之多,并且还大幅度降低了汽车价格,为此亨利•福特也被评为20世纪为世界装上轮子的人,这是专业化分工的利刃,也忘此利刃划开软件实施的天空。
[该贴被cuwkuhaihong于2012-02-23 09:21修改过]