zoukankan      html  css  js  c++  java
  • 软件项目避免开发儿童玩具

         软件项目管理在快速交付时面临着很多压力。时间就是本质。你如何快速完成呢?

         想像你的开发团队TEAM有两个程序员,分别叫小刘与小李。他们拥有背景相同的业务知识,有相同的编程语言技能。在开发时,你发现小李总是完成他的功能模块所花费的时间比小刘快。当小李关注在快速编写代码的时候,小刘花费时间对已写过代码重构。他使那此变量与方法的命名变得更加易于理解。他总是把代码分成小块小块的,接着他又写在单元测试UnitTest保证这些小块儿代码是期望的那样。他为他所完成的功能模块所自豪。

          th

         但是假设你不知道这些细节。如果你只看功能模快完成的时间你认为小李表现是不错的。

          一个星期过去了,你演示这个功能给客户看。通常,客户喜欢完整的功能,所以现在要求你修改并完善你的软件。你让你的开发人员去实现剩下的功能模块,当你需要加新功能到现有的模块时,小刘这边更加容易的实现它。不幸的是,他们发现一些小李完成功能模块有些奇怪。当小李去增加新功能到原来的代码,把原有的一个功能点儿破坏了。客户认为这是个缺陷,你让小李修复它。 客户后面又去测试这些功能,或新人刚来就直接上手操作软件。

          如果你有个小孩,你知道什么发生了。小李创建是个打地鼠玩具类应用程序。就是那些给小孩玩的,小孩用几块木头就可以搭建的,那很好玩。但是,修复软件中随机出现的缺陷并不好玩。如果失败,不可预料,同时使你整个开发进程变得慢了。小李的精神可嘉,但是他的方向错了。

          外面看到小刘明显较慢,他实际上编写的了优雅的代码。他前进的速度是持续的。更好质量的代码使它们更加容易快速修改。同时,那些UnitTest保证了整个程序每个部分可以正常工作。同时有的代码块可以重用。当用时间来衡量软件功能实现,不到考虑一次性完成就没事儿。花点儿时间去完善,提高代码质量。写高质量的代码与测试代码需要花费时间。短期有损失,但是有长期回报。

          问问你自己是想要速度,或是你想要可持续的进度?

    Measuring programming progress by lines of code is like measuring aircraft building progress by weight.

    — Bill Gates

     

     

    你可能感兴趣的文章:

    尽可能早的让用户参与项目

    团队冲突管理

    软件开发的专业化

     


    作者:Petter Liu
    出处:http://www.cnblogs.com/wintersun/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    该文章也同时发布在我的独立博客中-Petter Liu Blog

  • 相关阅读:
    启动 Appium 自带模拟器
    Android的一些常用命令提示符(cmd)指令
    Eclipse中没有andriod问题解决方法
    selenium键盘操作
    鼠标事件
    appium运行from appium import webdriver 提示most recent call last
    appium for windows 环境搭建
    python+Eclipse+pydev环境搭建
    nmon和nmon analyser的下载和使用
    Linux下使用NMON监控、分析系统性能
  • 原文地址:https://www.cnblogs.com/wintersun/p/3495737.html
Copyright © 2011-2022 走看看