“敏捷开发和持续交付就是通过固定节奏,持续实现业务价值。时间是最不可控的因素,而节奏是可控的。”
01
—
保持好的节奏,提高工作效率
有句话说得好,要管理精力,而不是时间。人不是机器,精力是波动的,而精力就是效率。因此,要提高工作效率,建议采用番茄工作法——每持续工作25-30分钟,短暂休息一下,为下一个25-30分钟的冲刺回血。如果刚开完一个1个小时的会议,一定要停下来休息,而不是继续工作,已经疲惫的你是难以为继的。暂停是为了更好地开始。同理,午休对下午工作效率的贡献无需多言。因此,要提高工作效率,不是长时间地持续工作,而是保持好的节奏,有张有弛,维持饱满的精力。
02
—
敏捷开发与持续交付就是保持好的节奏
同理,敏捷开发最重要的特征是迭代开发和持续交付,就是软件交付的番茄工作法。
软件交付是脑力劳动,最好的工作状态是在短时间盒内围绕着当前的某个具体的业务目标集中精力地冲刺,周期结束时放下一切,短暂休息后,投入下一个冲刺。Scrum里的Sprint就是冲刺的意思。如果说瀑布模式是长跑的过程,Scrum就是一次又一次的短跑和冲刺的过程。冲刺开始的时点最好选在周一,结束的时点最好选在周五,这样周末就可以好好休息,迎接下一个冲刺。
从业务的角度上说,迭代开发和持续交付就是通过固定节奏(周期),持续实现业务价值。时间是最不可控的因素,而节奏是可控的。固定节奏的持续交付可以把关注点从时间转移到业务价值上。所谓固定节奏,就是每个迭代的周期不变,但交付范围可根据业务价值、进度进行及时调整,以确保每个周期都有业务价值可以交付。而我们要追求的目标就是使这个节奏达到各方都可以忽略时间这个不可控的因素,这样即使某个需求无法在这次发布周期上线,在随后的发布周期上线也不会对业务有很大的影响。就像班车一样,如果是1小时一班车,人们必须掐点,对发车时间准点率的要求也会非常高。但如果是10分钟一班车,人们对发车时间就不再关注。固定节奏也是一种预期管理,大家都知道每10分钟会有一班车,对班车服务确定性的信心也会大大增强。这样也确保每次交付的范围很小,风险较低。因此我们应该把重点转移到对固定节奏的把控,实现业务与IT的双赢。
要实现固定节奏的持续交付,我们需要与业务共同实现以下几点:
把大需求拆分成最小可交付工件(用户故事),足够小的需求范围才能在短周期内交付,并以此为粒度放入Backlog,根据业务价值进行排序。
共享所有信息,可视化进度,避免信息阻塞,实现高效沟通。
每日例会,及时反馈。
通过看板或Scrum限制在制品,聚焦价值,提高交付速度。
开发前的就绪条件是用户故事已确定具体的验收条件,以便交付团队可以在交付前对验收条件进行测试,形成交付闭环。交付团队甚至可以把验收测试自动化,成为持续集成的一部分。
设计上实现配置即代码(Configuration as Code)、基础设施即代码(Infrastructure as Code)、不可变的基础设施(Immutable Infrastructure,避免对具体服务器的依赖),可随时部署和迁移。
架构上进行解耦,简化依赖关系。
测试驱动编程(TDD)成为一种习惯,无测试,不编程。
持续集成,每日构建,每天自动把最新的代码进行编译、执行自动化测试,从而实现持续的集成和回归测试,一旦构建失败立即修复。
标准化整个交付流程,自动化所有标准化的流程,实现持续部署。
为每次上线提供回滚机制。
领取专属 10元无门槛券
私享最新 技术干货