无处不在的二八原理[1]:在软件开发中的应用
●项目管理
如果你是个项目经理,在排项目计划时,就得尽量优先安排重点功能的开发/测试,而且要安排能力强的人员来完成。按照我以前的做法,重点功能排计划至少得留出1/3的时间余量,以防万一(事实证明,几乎每个稍大点的项目都会出现 万一)。至于 非重点功能,尽量排到后面,安排能力一般的人开发/测试。
然后,在项目进行过程中,肯定要有定期的例会。作为项目经理,你应该主要关注重点功能的进度情况和风险情况。
一旦项目有延期的风险,就从非重点功能开始裁减(俗称砍功能)。由于是裁减 非重点功能,不至于产生致命的影响。
●设计界面
设计界面时,你得保证 所有的常用功能都放在显著的位置(比如工具条);还得保证它们用起来方便(比如提供快捷键和右键菜单支持)。
对于卖点,它不一定是常用功能,它的目的是激起用户的购买欲望和使用欲望。因此你要把它们设计得比较酷,有噱头。
对于利益相关的功能,大部分情况下都是侧重于业务逻辑实现。如果它既不是常用功能、也不是卖点,那么界面设计方面倒不一定要额外花大力气。
其它的 非重点功能,只要按照常规方法设计,不用花太大精力。
●编写代码
我发现很多开发人员有几个通病:先做有趣或容易的功能,然后再做无聊或者繁琐的功能;对自己有兴趣的功能投入精力多,对自己没兴趣的简单应付。
以上这些都是开发的大忌。作为一个职业的开发人员,不应该以自己的兴趣和喜好来决定开发的轻重缓急。正确做法应该如下:
你首先得用主要精力完成上述所说的重点功能,而且要保证它们的代码质量尽可能好,尽可能方便维护(重点功能往往是经常有需求变更,经常被修改的)。
对于重点功能中的“常用功能”,要保证 时间性能够好(能快速响应)。对于”用户利益相关的功能”,要保证bug尽可能少(尤其是安全性、稳定性、健壮性的bug)。
至于其它的 非重点功能,只要不出明显bug,有点小缺陷无伤大雅。
●测试
如果你是个测试人员,你同样要把主要精力用于测试那些重点功能。对于”用户利益相关的功能”,多进行一些健壮性测试、稳定性、安全性等测试(比如测试保存大文件是否会出错)。对于常用功能,主要进行易用性和性能测试(比如拷贝、粘贴是否易用)。
至于其它功能,只要进行普通的测试,保证它不出现明显和严重bug即可。要知道Windows 2000发布的时候,尚遗留上千个未修复的bug(当然都是低优先级的),微软不也照样发布。
●产品演示
有些软件开发完之后,会搞一些Demo进行宣传。如果你是负责进行Demo的人,你肯定要把主要的Demo时间用来秀软件的卖点,这样给客户的印象最深刻,效果最好;至于 非卖点的功能,都未必要提及。
几种和开发相关工作就介绍到这里,最后送给大伙一句话: Do not work hard, work smart!
下一个帖子打算聊一下二八原理在管理中的应用。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!