最近看了些关于Scrum的资料,也看多很多公司使用类似的开发模式。总觉得,敏捷的开发模式要求开发人员要有很高的责任感和主动性。不管怎样,Implementing Lean Software Development一书中,作者提出来敏捷开发的的7个习惯还是值的一读的,在这里做个记录。似乎是定律来着,但是我习惯习惯了,:)。
Scrum开发过程

Scrum是相对传统的瀑布式软件开发过程较新的敏捷软件开发过程,Scrum主要希望消除瀑布式软件开发过程中的各种问题和缺陷。Scrum的重点是开发人员和他们之间的交流。Scrum过程认为如果开发人员得到尊重,并能够有效的交流的话,那么他们就能发布好的产品,从而提高客户满意度。

Scrum敏捷软件开发的7个习惯:

  1. 消除浪费
    • 提供领先的市场和技术 – 你的公司能通过提供创新或是技术领先的产品获得成功,但是你必须首先明白你能给客户的价值是什么,怎样才能把你的价值提供给他们。
    • 只创造价值 – 你必须仔细的遵循你采取的过程,确定所有你遵循的过程都是在专注创造价值的过程中必须的。
    • 代码少就是多 – 更多的代码意味着更多的测试工作,因此时刻提醒自己更多的新功能、代码、测试,如果那不是最终需要的,就是浪费。
  2. 创造知识
    • 建立能自我设计+制造的团队 – 开发团队的领导者必须充分听取团队成员的想法,提出有建设性的问题,鼓励团队成员去发现问题、解决问题、及时的创造性的提出解决方案
    • 保持持续不断提高的文化 – 创造一个团队成员能持续不断的改进在做的产品或项目的环境。团队成员要理解,我们不是完美的、也做不到完美,我们总有些地方还需要改进,并且在不断的持续改进。
    • 学会解决问题的方法 – 开发团队应该像一个聪明的研发机构,要能自己提出假设,并通过快速的试验来验证假设的可行性。
  3. 构建的时候时刻保证质量
    • 构建与质量同步考虑 – 为了构建出高质量的产品,我们应该在一行代码都没写之前就考虑如何保证质量。不要等到开始做了在想怎保证质量,那只会有害无益。
    • 自动化 – 测试自动化、编译自动化、安装自动化,任何日常要做的,就想办法试试能不通过自动的方式完成。通过建立自动的处理流程,人员被解放出来,能够更多的思考如何改进流程。改进需要改进的流程,不要被改进的过程会影响现有工作流程吓倒。
    • 重构 – 消除所有的充分代码。发现重复的代码,就应该立即重构他。重构代码、测试代码、文档,把复杂度降到最低。
  4. 推迟承诺
    • 把不可逆转的决定设定在最后 – 我要知道我们要达到哪里,但是我们不太清楚具体怎么做才能达到,这时候我们只能坚持每天检查自己的方向对不对,最重要的就是不要迷失方向。
    • 打破依赖关系 – 组件之间耦合度越小越好,这样能以任何顺序来实现这种组件。
    • 保留多个选项 – 为关键决策提供多个解决方案,看哪个方案实际上更有效。
  5. 从整体角度做优化
    • 专注在整个价值流 – 把精力集中在赢得软件开发的整场比赛,不要只是着眼于局部的优化,从大局上着眼优化整个组织。
    • 交付一个完整的产品 – 团队是由优秀的领导者、优秀的工程师、优秀的销售、优秀的市场专员等等组出的,团队必须紧密合作才能为客户交付优秀的产品。
  6. 快速发布
    • 较小迭代 – 减小项目的大小,缩短发布周期,稳定工作环境,在小迭代的过程中坚持证明是好的、有效的实践,改进任何不良的实践。
    • 量力而行 – 保持任务池的最小化(规划将来的1、2个迭代周期就够了),不要担心从移走任务。拒绝任何塞进来的工作,除非你任务池中有空档。
    • 关注迭代周期,而不是利用率 – 把不会阻碍流程的小任务放入任务池中,缩短迭代周期,消灭任务池中的任务。
  7. 尊重人员
    • 培训团队主管 – 培训团队主管,给予一定的指导,但也要给一定的自由发挥的空间,让他按自己的想法在团队中实施敏捷开发管理。
    • 让最直接做事的人来做决定和承担责任 – 让组员自己思考和作出决定,因为他们更了解如何实现复杂的算法,如何使用最流行的软件框架。
    • 培育团队成员的成就感 – 鼓励团队中有激情的参与者,让他们对自己做的事情有成就感。

原文见:Seven Principles of Lean Software Development

相关文章

    共享到: