让老妈告诉你如何编程

简介:

screenshot

在今天开发人员的周例会上,大家吵的不可开交,我们在讨论在敏捷开发中是否应该将“故事点(story point——敏捷开发中的一种工作量单位)”分配给修改bug和代码整理工作——将它们跟软件功能需求一样对待。我们使用的story类型都是 Pivotal Tracker系统里缺省指定的。概括起来,通常认为软件功能单位是一种能够给用户带来价值的“story”(所有你可以对它们使用这样的套话“做为一个用户,我想要的是…”),但bug和代码整理工作不属于这类(尽管它们有些是必须处理的,例如偿还技术债务)。

根据Pivotal Tracker系统里的设定,只有软件功能特征才配分配给”故事点“。团队的“成绩”依仗于在过去的3-4个迭代开发周期里完成的“故事点”的多少,所 以,如果你将大量的时间浪费在重构代码和修改bug上,你的“成绩”就会下滑。于是,经理会极力反对将“故事点”分配给代码整理和修改bug,因为“只有 把时间用在开发功能上,客户才会认可我们的努力工作”。

遇到这种情况,勾起了我对往事的一段回忆,那是我在童年时整理房屋的事情。如果你跟我小时候一样邋遢懒惰,你会像我一样将脏袜子、糖纸丢的满地都 是,几乎看不到地板。妈妈会反复唠叨说“每天记住把袜子丢进洗衣机,把糖纸丢进垃圾桶,这样你就永远不需要打扫房间。”但有时候,这些事情看起来需要太多 的努力,于是垃圾总是越积越多,直到无法忍受。

问题是,正确的保持室内整洁的方法给人太大的压力。于是,大家最终还是选择了将脏衣服不断的塞到衣橱里,用力的推衣橱门关上(用力,不然会塌落出来),这样屋里似乎整洁了。但事实上,脏乱依旧存在,尽管你看不见(不想看见)它。

修改Bug和整理代码的努力对于软件开发来说是同样的道理。敏捷开发中使用“故事点”的最大好处是,用给用户创造了多少价值来衡量一个程序员的生产 效率,这样正确的激励程序员的工作积极性。将“故事点”分配给bug修改?花一个月时间里重构代码中的数据库层?你的“成绩”的下降是指警告你某些事情有 问题。你需要思考,需要明白这是为什么,以及如何纠正。

也许是你的需求不完整,或根本就是错误的,你并没有开发客户真正想要的东西。也许你没有写出足够的单元测试和集成测试,所以在开发迭代中bug越来越多。也许你们的编码速度太快,没有充分的规划,所以你的架构设计无法接入新来的需求,需要频繁、大量的重构。

不管是哪种情况,如果必须把“故事点”分配给bug和代码整理,这是存在底层问题的一种反映,就像是整理房间一样。让“故事点”充分发挥它的作用,让它提示你在你们的开发过程中存在潜在的问题。但不要只理解我的话的表面意思,就像你妈妈如何告诉你整理房间的话一样。

文章转载自 开源中国社区 [http://www.oschina.net]

相关文章
|
数据可视化 数据库
|
12月前
|
算法 C++
2023_7_21编程题
2023_7_21编程题
59 0
|
6月前
编程题小练
编程题小练
44 0
|
6月前
|
设计模式 算法 Java
什么是编程领域的 verbosity
什么是编程领域的 verbosity
7-81 编程团体赛
7-81 编程团体赛
174 0
|
程序员
编程会是你自由职业的一种选择吗
欢迎来到我的小院,前几天有个曾经我带过小弟问我,大侠我最近想从事自由职业,你能帮我参谋参谋嘛,我很高兴他来咨询我。思考后,我写了这段建议,希望可以帮助到他,同时也能给想从事自由职业的年轻人一些参考。
编程会是你自由职业的一种选择吗
为什么学编程
知识在于点滴积累
741 0
|
JavaScript 前端开发 机器人
你会教自己的孩子编程吗?
​​很多家长都想让孩子学编程。科技行业领导者和教育学家呼吁学校开设更多的计算机课程,家长也认为编程是未来社会的必备技能。 为什么要学编程?为了让计算机解决特定的问题,我们把指挥计算机工作的指令写在程序中,当计算机执行程序时,即可按照这些指令完成工作。
2970 0