敏捷开发真正的重点不是 User Story 的拆分, 而是开发人员的能力

谈到敏捷开发, 许多人纠结的第一个问题便是: User Story 如何的划分? 更有不少人, 一遇到在 User Story 上有延迟交付或交付的质量不佳时, 便说是因为 User Story 的拆分不对, 就整天在纠结所谓 User Story 颗粒度大小的问题。

然而, 事实的真相是如何呢?

首先, 先从敏捷开发实践的本身说起:

敏捷开发之所以强调 “敏捷” , 主要是希望藉由 User Story 的划分 , 能帮助开发人员, 有效的管理版本开发上需求的复杂度, 而使开发人员能在最短的时间内 “发现自身的问题”, “发现自身的不足”, “发现因自身的问题、不足与外部的变化所造成的风险” 。

所以, 敏捷开发的核心基础, 最强调的便是: “User Story 必需要是可测的” 与 “User Story 间的持续集成” 。

接下来再谈一下, 人的思维、人的一念之间是如何严重的扭曲了敏捷开发?!

当一个开发人员, 他 (她) 只是在证明自己“没做错事” 时, 而不是在 “发现自身的问题” 时, 那在拆分User Story 上, 便会发生这些场景:

1.       将 User Story 拆的需 3 周甚至一个月以上才能完成; 这样的思维与作法, 只是在证明自身所负责开发的 User Story 是可被 “测试的” 。但, 却只是被 “测试人员可测试的” ; 也就是说, 有的开发人员希望将 User Story 要拆的 “够大”, 只是要掩饰自身无法做 “有效” 的 “开发者自动化测试” 罢了。

2.       将 User Story 拆的只需完成单一且极简单的 “功能点”; 这样的思维与作法, 只是在证明自身所负责开发的 User Story 是可被 “如期交付的” ; 也就是说, 有的开发人员希望要将 User Story 拆的 “够小”, 只是要掩饰自身无法理解与掌握 “完整的业务场景” 与 “软件架构” 罢了。

所以, 我们要纠结的不应该是所谓 User Story 颗粒度大小的问题; 而是应协助开发人员能诚实的发现与面对自身的不足与所面临的问题, 并给予开发人员适当且必要的赋能与协助。因为, 唯有如此, 开发人员的能力提升了, 则开发人员便自然能在 “更短的时间内” “真正有质量 (有品味)” 的完成 “复杂度越高” 的User Story。

所以, 我们要纠结的不应该是所谓 User Story 颗粒度大小的问题; 我们应该真正专注的是: 如何能使开发人员能在 “更短的时间内” “真正有质量 (有品味)” 的完成 “复杂度高” 的 User Story。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏牛客网

百度测试开发实习生一面面经

2775
来自专栏程序员互动联盟

【专业技术】 Linux下如何学习c语言?

引言   尽管 C 语言问世已近 30 年,但它的魅力仍未减退。C 语言继续吸引着众多的开发者,他们为了编写、移植或维护应用程序而必须学习新技能。   本文是为...

4236
来自专栏包子铺里聊IT

[包子分享] 构架模式: Microservices Architecture

http://baozitraining.org ---- ? 微服务构架是近年来比较流行的服务端应用构架,由其非常好的可伸缩性,稳定性以及灵活的协同开发模...

3116
来自专栏我是攻城师

如何学好一门编程语言或技术?

3805
来自专栏华章科技

Python为啥这么牛?跟其他语言相比究竟有什么优势?

导读:选择要学习的技术和选择要上的大学一样重要,如果选错了,你将来不仅得不到自己喜欢的高薪工作,反而会弄得一堆麻烦。如果你打开了这篇文章,说明你已经考虑选择Py...

1032
来自专栏诸葛青云的专栏

C语言学到什么程度可以做项目?

都说编程学习是一个漫长的过程,会的东西越多,感觉懂的越少。要达到可以做项目的状态还是需要下些功夫的。但你非得说没有时间限制,懂一点点你就可以去做项目了。前提是你...

2300
来自专栏马洪彪

C#.Net与MATLAB集成

在数学分析工具方面,MATLAB无疑是佼佼者,除了作为软件工具外,MATLAB的自定义编程语言以及混合编程的支持,使其可以与Python、R之类数学分析语言媲美...

3177
来自专栏HelloCode开发者学习平台

Python 基础部分--了解Python

作为初学者,比起其他编程语言,Python是最容易上手的.Python追求的是找到最好的解决方案,而其他语言追求的是多种解决方案. Python在语言上非常解决...

2052
来自专栏编程

浅谈CPU 并行编程和 GPU 并行编程的区别

CPU 的并行编程技术,也是高性能计算中的热点,那么它和 GPU 并行编程有何区别呢? 本文将做出详细的对比,分析各自的特点,为深入学习 CPU 并行编程技术打...

2018
来自专栏架构师之路

小小的公共库,大大的耦合,你痛过吗?

什么是耦合? 耦合,是架构中,本来不相干的代码、模块、服务、系统因为某些原因联系在一起,各自独立性差,影响则相互影响,变动则相互变动的一种架构状态。 感官上,怎...

3718

扫码关注云+社区

领取腾讯云代金券