新产品开发后期的主要技术工作:质量、性能、效率和推广
2011-10-28 21:35
260 查看
新产品开发的后期以及发版后的一段时间内,很多的工作要做,作为技术人员,我的观点是,重点技术工作应落实到质量、性能、效率和推广。
质量
对于一个新产品来说,质量真的是比任何事情都重要了,一个动不动就死机的手机,其它方面再好估计你也不会用。第一个版本一旦出现质量差的影响,一般很难再翻身了,即所谓的第一印象。
要控制好质量,最好的方法我认为就是大量的单元测试,在产品开发后期,平台接口相对稳定了,不像早期的时候,接口一改,大量的单元测试要重写。在后期,最怕的是修一个BUG又制造了一堆的BUG,单元测试是最好的工具。顺便提一句,所有的单元测试必须保持全部通过,注意是全部通过,否则单元测试将毫无用处,因为当你改动了一个功能后,你很难知道未通过的测试用例是你造成的还是原先就不能通过。
性能
质量是第一步,第二步就是性能,这个教训,在Windows上是最好的佐证了。你看,微软这不Win8强调很低的配置也可以跑的很快吗?在没有选择的情况下,大家也就忍了,有选择的时候你客户跑的有多快啊,哈哈。
关于性能,我认为不要走火入魔,一个买十几万的产品,要搞千万级产品的负载是不妥的,性能优化也是要成本的。再比如,已经优化某个指令在100毫秒内完成,就没有必要要花很大的成本降低到10毫秒,客户能区分10秒比1秒快,但无法区分10毫秒比100毫秒快。
我们知道,底层平台的一个优化,会让上千的上层应用加快。但你也要记得,底层平台好不容易减少的几个毫秒,业务代码可能一个循环SQL就把这个应用搞的糟糕,因此,在调优底层后,代码检查业务代码也很重要。
效率
在新产品的开发过程中,我们知道工具非常重要,可现实是,除非非常重要且相对简单的工具,往往被“更重要”的需求所排队的后面。
在交付新产品后,应该对过去的开发进行总结,访问一线的开发人员,找到影响开发效率的点。例如在我们的开发中:
— 要加载太多的工程文件,机器运行缓慢;
— 附加方式的调试造成VS不能实现“编辑即运行”,每次发现错误都要停止调试;
— 配置的修改不能即时应用,要重新启动产品;
— 不能在运行时,使用即时脚本查看运行的变量值,运行日志;
— 造数据,要花很多的时间
这些点点滴滴的地方,你会发现一天的时间中,你只有很少的时间花在代码的编写上,大部分是在调试。
推广
我这里指的推广,指规范的开发方法在开发组的推广。在产品形成初期,大家也都是在摸着石头过河,代码写的是五花八门。现在,底层也稳定了,该经历的也经历了,有了这些丰富的经验,就需要总结各种应用其开发的模式形成文档和范例,这样,在产品功能的后续开发中才能规范和快速。
我认为可以建立诸如MSDN这样的网站,包含文档库、范例、教程视频和论坛。
质量
对于一个新产品来说,质量真的是比任何事情都重要了,一个动不动就死机的手机,其它方面再好估计你也不会用。第一个版本一旦出现质量差的影响,一般很难再翻身了,即所谓的第一印象。
要控制好质量,最好的方法我认为就是大量的单元测试,在产品开发后期,平台接口相对稳定了,不像早期的时候,接口一改,大量的单元测试要重写。在后期,最怕的是修一个BUG又制造了一堆的BUG,单元测试是最好的工具。顺便提一句,所有的单元测试必须保持全部通过,注意是全部通过,否则单元测试将毫无用处,因为当你改动了一个功能后,你很难知道未通过的测试用例是你造成的还是原先就不能通过。
性能
质量是第一步,第二步就是性能,这个教训,在Windows上是最好的佐证了。你看,微软这不Win8强调很低的配置也可以跑的很快吗?在没有选择的情况下,大家也就忍了,有选择的时候你客户跑的有多快啊,哈哈。
关于性能,我认为不要走火入魔,一个买十几万的产品,要搞千万级产品的负载是不妥的,性能优化也是要成本的。再比如,已经优化某个指令在100毫秒内完成,就没有必要要花很大的成本降低到10毫秒,客户能区分10秒比1秒快,但无法区分10毫秒比100毫秒快。
我们知道,底层平台的一个优化,会让上千的上层应用加快。但你也要记得,底层平台好不容易减少的几个毫秒,业务代码可能一个循环SQL就把这个应用搞的糟糕,因此,在调优底层后,代码检查业务代码也很重要。
效率
在新产品的开发过程中,我们知道工具非常重要,可现实是,除非非常重要且相对简单的工具,往往被“更重要”的需求所排队的后面。
在交付新产品后,应该对过去的开发进行总结,访问一线的开发人员,找到影响开发效率的点。例如在我们的开发中:
— 要加载太多的工程文件,机器运行缓慢;
— 附加方式的调试造成VS不能实现“编辑即运行”,每次发现错误都要停止调试;
— 配置的修改不能即时应用,要重新启动产品;
— 不能在运行时,使用即时脚本查看运行的变量值,运行日志;
— 造数据,要花很多的时间
这些点点滴滴的地方,你会发现一天的时间中,你只有很少的时间花在代码的编写上,大部分是在调试。
推广
我这里指的推广,指规范的开发方法在开发组的推广。在产品形成初期,大家也都是在摸着石头过河,代码写的是五花八门。现在,底层也稳定了,该经历的也经历了,有了这些丰富的经验,就需要总结各种应用其开发的模式形成文档和范例,这样,在产品功能的后续开发中才能规范和快速。
我认为可以建立诸如MSDN这样的网站,包含文档库、范例、教程视频和论坛。
相关文章推荐
- 关于跨语言联合开发接口的经验(非技术,提交工作效率)
- 游戏程序开发的工作主要包括哪些方面
- 问题:AES128和AES256主要区别和安全程度是多少?他们对于机器的消耗是怎样的?两者性能如何?实际开发如何选择?
- 开发人员的不断流动、让我们更加坚定信念,一定要控制好整个系统的底层架构、核心设计、日常质量检查工作
- 改善C++ 程序的150个建议学习之建议35:使用内存池技术提高内存申请效率与性能
- 由操作系统的没落和虚拟机的崛起看性能和开发效率之争
- JavaScript严谨模式(Strict Mode)提升开发效率和质量
- 描述Struts体系结构?对应各个部分的开发工作主要包括哪些?
- 如何使用TestCenter 统计开发工程师工作质量?
- 使用xdoclet辅助Hibernate开发提高工作效率
- 【码云周刊第 20 期】让 Java 开发更简单,提高工作效率!
- 敏捷开发产品管理系列之八:基于业务设计技术架构(兼谈12306性能问题)
- PPT:C&C++,巧用单元测试新技术,实现开发质量效率飞跃
- Atitit. 提升开发效率与质量DSL ( 3) ----实现DSL的方式总结
- 使用对象-关系映射(ORM)系统中间件提升软件开发效率及质量
- 提高开发人员工作效率的六大方法
- 11步提高代码质量和整体工作效率
- 腾讯拍拍完了 淘宝与微软达成合作 用Silverlight技术开发新产品 IE8捆绑
- 为什么5%的技术人员开发效率是其他95%的20倍?
- 现在开发3D游戏主要用到什么技术?