【读书笔记(十)】快速软件开发

之所以看《快速软件开发》,这本书,是源自一个网友的评论:“还能说什么,虽然书里没有敏捷,也没有单元测试,更没有AOP/SOA等时髦名词,但是这绝对不影响这本书的价值!其实我一直觉得,国内那么多小软件公司,搞什么RUP/XP/SOA/AOP,其实好好看看这本书,没有什么项目做不成的~”
虽然上软件工程这门课才半年不到,但是也读过不少关敏捷式开发的书,虽然每本书的质量都很好,但不得不说太专业了,尤其是对于一个小小的计算机专业学生来说,在我看来,那些书可能更适合有经验的项目主管来研究,但是这本书不一样,他面面俱到,但却又深入浅出,虽然没办法学其全部,但是仍然给我不少收获。
在此我分为几个大类来记述以下我的心得:

总体策略

  • 避免典型错误
  • 打好开发基础
  • 管理风险,以避免灾难发生
  • 采用面向进度的实践

这四个策略共同支撑了项目的最佳进度。

开发进度的思维

软件项目有四个重要的维:人员、过程、产品和技术。人员完成任务要么快、要么慢;过程调节人员的时间,或者是铲除一个一个绊脚石;产品以一个自我完善的形式定义,或者是以阻碍人员达到最好效果的形式定义;技术促成或者阻碍开发的实现。
为使开发速度最快,你必须充分发挥这四个维度的作用。任何一维都很重要。

  • 四维中人的因素是第一位的,但我们经常把技术摆在第一位,这也就是我们的项目往往不能成功的原因之一。
  • 时间、成本、质量总是矛盾的。我们必须清楚委托人优先考虑的是哪个指标。
  • 在保证质量的前提下,加快开发进度才是正确的途径。
  • 避免鲁莽编码(code-like-hell)。

人员

人员的选择

  • 用更少更好的人
  • 使任务与人员的技能和动机相匹配
  • 帮助人员自我实现,而不是强制地把他推到他最有经验或最需要他的岗位上
  • 人员选择应强调人员间的互补与协调性
  • 应尽快排除或替换不称职的人员

人员激励

没有比人员激励更能提高员工效率,且适用于任何不同组织、不同项目和不同人员。

过程

  • 避免返工
  • 质量保证
  • 开发基础,使用标准软件工程实践,避免项目失控
  • 风险管理,避免灾难
  • 资源目标
  • 生命周期计划
  • 面向客户的开发,明确谁是你的客户

产品

  • 产品规模,产品规模与开发进度是程几何比例的
  • 产品特性,平衡对性能、内存占用、稳定性、可靠性等特性的要求,选择战役目标,避免设置太多优先级束缚开发人员的手脚

技术

  • 采用高效率的语言、工具。
    这一点让我感同身受,不要拘泥于传统要敢于学习新技术,有时候要懂得取舍,例如做深度学习开发算法阶段用PYTHON要比用C++快速的多,当然可能C++效率更高,但是这个可以放到部署时再考虑。

协同

  • 人员、过程、产品与技术之间存在协同问题。统一组织范围内的编码标准。

猜你喜欢

转载自www.cnblogs.com/Franzkfk/p/9116476.html
今日推荐