有效的敏捷开发是一种提高工作效率的锐利工具,然而误用则可能造成反效果。在项目中实践敏捷开发,需要我们经过大量经验的积累与反思。
敏捷开发:任务列表详解
在产品开发过程中,故事的核心位置不可忽视。我们通过故事的重要性划分来决定其实施的优先级,并依靠任务列表将故事的具体实现细化至技术层面。
常用的任务列表报表包含四个部分:未开始、开始、已完成的任务以及燃尽图。
前三部分的任务分配可以细化到人天工作量,这有助于我们在每日早会中统计并每日的工作进度。而燃尽图则是对整个故事实现进度的综现。
燃尽图由时间和任务点两个维度构成。若任务进展迅速,则需适时加入新的任务点以保持进度;若进展缓慢,则应相应减少任务点,并努力保持任务完成线的平稳下滑。
团队结构与敏捷开发
团队组成是敏捷开发中不可或缺的一环。根据项目规模,团队可由一位项目经理及一个或多个技术团队构成。项目经理负责流程进度的管控,担当着Scrum Master的角色。而技术团队则可根据各自的技术职责进一步细化,如产品、前端、后端、QA、实施、运维等团队。
还有一种特殊的团队类型——救火团队。
救火团队的主要职责是及时解决出现的问题,确保开发团队能在不受干扰的情况下高效完成任务。
XP实践与团队效率提升
极限编程与Scrum虽有所区别,但它们都强调进度与质量的保证。将二者的理念相结合,是一种非常实用的实践方法。
以下是XP方法论的一些补充:
第一,实施5天制工作制及工作时间管理制度。保持持续的开发速度和员工精力充沛的工作状态是提高工作效率的关键因素。如何确保团队成员在一天6小时内保持高效专注的工作状态,末位淘汰制可以作为一种有效的补充机制。
第二,建立统一的代码标准并严格执行。这包括采用统一的代码库、实施TDD开发模式以及进行代码。标准化的代码实现和测试驱动的开发模式能有效提高代码质量并确保项目进度。如果QA团队在测试时频繁发现问题,而开发团队又不得不频繁返工,那么项目进展将面临巨大挑战。
第三, 提倡简洁设计并进行代码重构。设计越简单,开发效率往往越高。程序设计是一个循序渐进的过程,过度设计和过多考虑不一定会带来后续的实际应用价值,反而可能浪费时间和资源;而代码重构则能保证程序的扩展性和代码的整洁性,使开发工作更加得心应手。
第四, 实施持续集成和小型发布策略。我们可以利用一些工具来更好地实现这一点,如git+k8s+rancher或git+jenkins等。