喜欢敏捷的很多想法,喜欢它务实的态度。我说“敏捷不能当饭吃”,当然不是说敏捷无用,相反,我倒是挺推崇敏捷的。之前有两篇文字都涉及到一些对敏捷的看法。一篇是
与神对话
,另一篇是 对敏捷的一些想法
。只是看到很多人好像敏捷是他爷爷写的一样,龟孙子似地迷信和追捧敏捷,把工作一条一条跟书上描述的对照,一旦工作中实际操作跟书上有不一致,口诛笔伐,吐沫拳头无影腿就一齐上来了,那就太过了。敏捷跟太极拳一样,是一种思想精髓,它的一招一式体现在实际工作中灵活运用敏捷原则,敏捷并无特定套路。Scrum等流程是敏捷的一种成功案例,这个案例在特定环境下工作得非常好,但那只是特定环境而已。敏捷大师们自己也总提醒,很多项目采用敏捷开发,仍然一塌糊涂,是因为应用敏捷并不简单。
Kent Beck是敏捷的发起者之一,很多敏捷的发起者后来都写了关于敏捷的书,但Kent Beck的书是最有影响力的,它的Extreme
programming explained – embrace change可以在这篇博客
中找到。这本书主要阐述敏捷的一系列理念,对实践描述的并不具体。scrum之类讲敏捷流程的书,对实践操作的环节就会讲的很具体。先了解并接受敏捷的理念,再去看敏捷流程的话,比较容易理解流程背后的用意是什么
,只有深刻理解了敏捷精神,才能比较好的实践敏捷。而现实情况很多时候不是这样,直接学习流程总是比较省事儿,于是scrum就被当成圣经直接拿来就用了,人家mc
hotdog早就说过,“照单全收的盲从,就像在吃屎”。我相信通常情况下,scrum的实践在一个项目组,只有一小部分能用得上,当然,这已经是件很伟大的事情了。在一些常见的工作环境中,有些scrum的想法并不适用。
一个方面是,scrum强调“全功能团队”,每个人了解产品的每一个feature;团队人数在敏捷中是有限制的。但如果一个负责某个产品的团队就是有12,3个人,那么怎么办?
再拆成两个敏捷团队以适应敏捷对人数的要求?垂直划分feature提供了细化团队的机会,但产品不总能清晰地一刀切成两半,尤其还要考虑各个程序员有不同的专长,甚至根本用的不是同一种编程语言,如果团队只有一个c程序员,一个js程序员,一个pl/sql程序员,其他做java,那么切分项目组的方式是跟c有关的一组,跟js有关的另一组?底层架构和公共模块都不容易竖切。如果产品比较大并且不易细分,大家都了解每个feature是很难做到的。如果产品使用的技术比较繁杂,pl/sql,
js, java,
c样样都用,全功能团队怎么实现?js的程序员跟c程序员也讲不到一块儿去啊。我可以理解scrum的想法,也认同它的道理,但是在实际工作中,如果确实人数对不上敏捷的要求,或者程序员的技术特长分散在不同层面,这很难照搬scrum的实践。人多开会费时间,效果又不好,鸡同鸭讲,各说各的。写c的人才不关心js有什么技术瓶颈呢。
还有,scrum想了个招儿,用打扑克的方式沟通需求和帮助定schedule。这是建立在全功能团队的基础上的,上面已经论述过了,如果产品比较大,程序员没法兼顾所有story,那成本太大了,打扑克也只能流于形式,尤其术业有专攻,唯一的c程序员的工作只有他自己估计才有意义。更实际的问题是,当你知道story具体需求的时候,还不足以估计出时间,程序员必须知道“怎么做”才能估出来比较靠谱的时间。很多时候需要做一些research的工作以及一点儿prototype才好估时间
,在这样的情况下,你非逼我出张牌,我只能出“问号”。
有时候,虽然我不需要做prototype, 但我确实也不能在5分钟之内理清思路,
知道用什么approach更合理,那么我怎么办,告诉大家容我想想,等我一会儿?技术问题本来也不应该规定在5分钟之内出个计划,非逼我出计划倒也没问题,但是随后我就得重做计划。还有一个问题,大家一起打牌,A知道这工作十有八九落在B头上,A可能出于好心多估时间,B可能为了面子少估时间,这些人为因素如何排除掉?
敏捷强调单元测试,这肯定是没错的。问题是,各个团队之间容易开始攀比覆盖率,其实程序员心里都明白,覆盖率的欺骗性很强,单元测试的有效性更重要
。如果单元测试又没贡献于驱动开发,也没贡献于质量保证(简单的api,诸如getter/setter之类的api就是这样,不用测试驱动直接就知道怎么写了,写了手动测试一遍就知道写的没错,code以后也不可能改),那么就没必要写这种单元测试,写这种单元测试的唯一好处是,成本低,比较容易贡献覆盖率。麻烦在于,太多弱智这么说,咱们敏捷了,单元测试覆盖率应该向某某弱智team看齐,于是人在江湖,身不由己,开始对付覆盖率。好吧,scrum其实也没说具体百分比,这不是scrum的错。
我绝对不想抨击敏捷或者scrum,我觉得这都是很出色的想法。只是听了太多“这不是敏捷”这种话,是不是敏捷根本不重要,能优化流程,让工作更有效才重要
。我喜欢敏捷的地方在于,敏捷强调以人为本,尊重程序员的各种诉求。正视design不能一蹴而就的现实。承认长期计划不靠谱。强调优先级,决定优先级的时候从性价比的角度考虑。scrum的很多实践也很实用,比如backlog应该包含的内容等等不一一罗列。敏捷不是一门玄奥难懂的技术,不需要花钱找培训机构受教育。敏捷的出发点就是务实,用务实的态度拥抱敏捷就足够好。套用二八原则,scrum的实践在实际中也许只需要吸收20%,却能取得80%的效果,剩下那20%要靠基于敏捷精神的创造力。
分享到:
相关推荐
食得快:进食时有很好的胃口,能快速吃完一餐饭而不挑剔食物,这证明内脏功能正常。 便得快:一旦有便意时,能很快排泄大小便,且感觉轻松自如,在精神上有一种良好的感觉,说明胃肠功能良好。 睡得快:上床...
此外,【食品安全】是不能忽视的一环。避免食用不洁食品,尤其是在校门外购买的露天摊贩食物,这些食品可能存在卫生隐患,尤其是在夏季,更容易变质。学习识别和选择安全、营养的食物,是保持健康的基础。 综上所述...
例如,"什么样的路不能走?" 的答案是 "电路",这提示我们在思考时需跳出常规思维,电路是电器走的路径,不适合人类行走。"小王是一名优秀士兵,明明看到有敌人悄悄向他摸过来,为什么他却睁一只眼闭一只眼?" 这个...
6. **思维敏捷(能迅速找到借口)**:敏捷的思维可以是优点,但如果用在找借口上,可能反映了责任承担的问题。 7. **进取向上(常请大家吃饭)**:进取心是正面的,但通过请客吃饭来建立关系可能被看作是不正规的职场...
例如,图中可能是春节或中秋节,家人围坐在一起吃团圆饭,大家脸上洋溢着幸福的笑容,可能在互相祝福,分享美食,孩子们可能会说些祝福的话语,表达对家人的感激和对新一年的期待。 这些知识点涵盖了拼音、汉字基础...
例如,预算编制流程可能包括需求收集、预算制定、审批、执行和监控等环节,每个环节都有固定的时序,不能随意颠倒,否则可能影响预算的准确性和有效性。 时序的可颠倒性是流程设计中的一个重要考虑因素。有些流程的...
5. 饮食与健康的关系:正确的食物选择和适量的运动能保持身体健康和强壮,有助于提高精力和思维敏捷度。 6. 马克·吐温的故事:虽然这部分内容与高二英语试题的主题不太相关,但它提醒我们,即使是著名的美国作家...
1. 传统文化庆祝:元宵节是中国传统的重要节日,通常包括家庭聚会、吃元宵(汤圆)、放烟花、猜灯谜等活动。这些活动不仅体现了中国深厚的文化底蕴,也是增进家庭和谐、社区互动的方式。 2. 环保意识:文中提到的...
2. **避免不良饮食习惯**:快速进食早餐以赶时间上学、忽视午餐质量或常吃炸鱼和薯条作为晚餐都是不健康的饮食习惯。这些习惯可能导致疲劳和思考能力下降。 3. **健康饮食与运动结合**:除了关注饮食,还应该进行...
分针则较长且细,动作敏捷,每小时就能绕表盘一周。在钟面上,通常有12个数字标记着小时的位置,而每一小时又被分为5个小格,总共60分钟。 在描述中提到的7时、8时、10时以及12时,这些都是基本的整点时间。例如,...
公务员面试中的陷阱类题目是面试官用来考察考生应变能力、思维敏捷度和问题解决技巧的一种策略。这类题目通常在计划组织、沟通协调和综合分析等常见题型中以微妙的方式出现,使得考生在回答时容易步入误区。下面将...
这些脑筋急转弯不仅锻炼思维敏捷性,还能提升观察力和创新能力,是寓教于乐的好方式,尤其适合孩子们开发思维,增强解决问题的能力。通过解答这些问题,人们可以学会跳出常规思维框架,拓宽思路,更好地应对生活中的...
3. 孩子的心理成长:文档中提到了孩子可能存在的问题,如注意力不集中、遇到挫折易放弃等,这些是儿童心理成长中的常见挑战。家长期望老师能帮助孩子建立自信心,学会坚持和勇敢面对困难。 4. 社交技能发展:评语中...
当我们提起笔,想要描述我们心爱的动物朋友时,我们应该如何着手呢?这篇习作以小鸭子为对象,向我们展示了如何捕捉并生动展现动物的特点。写作不仅仅是一场文字的游戏,更是一种情感的传达,是对生命热爱的表达。 ...
- 出口成章:出口就能说出完整的句子,形容文思敏捷。 - 语惊四座:言语惊人,使周围的人都感到惊讶。 - 娓娓而谈:讲话从容不迫,引人入胜。 - 妙语连珠:连续说出巧妙的话语。 - 口若悬河:说话像河水倾泻,...
1. **理解最简分数和约分的意义**:最简分数是指分子和分母互质(没有共同的除1以外的因数)的分数,而约分就是将分数化为最简形式,即分子和分母都不能再被它们的公约数整除。 2. **掌握约分的方法**:通过找分子和...
12. 思维被洞悉妄想:患者认为别人能知道她的想法,如在饭厅吃饭时的想法,这是思维被洞悉的表现。 13. 意志减退:患者表现出对周围事物失去兴趣,不愿参与活动,懒于料理事务,符合意志减退的症状。 14. 焦虑症的...
"泪潸潸"和"伶伶俐俐"都是叠词,分别表示泪水不断地流下和动作敏捷的样子。学生需要仿写出类似的词语,如"汗津津"、"明晃晃"、"亮晶晶"以及"欢欢喜喜"、"蹦蹦跳跳"、"说说笑笑",这些词语同样能形象地描绘出事物的...