喜欢敏捷的很多想法,喜欢它务实的态度。我说“敏捷不能当饭吃”,当然不是说敏捷无用,相反,我倒是挺推崇敏捷的。之前有两篇文字都涉及到一些对敏捷的看法。一篇是
与神对话
,另一篇是 对敏捷的一些想法
。只是看到很多人好像敏捷是他爷爷写的一样,龟孙子似地迷信和追捧敏捷,把工作一条一条跟书上描述的对照,一旦工作中实际操作跟书上有不一致,口诛笔伐,吐沫拳头无影腿就一齐上来了,那就太过了。敏捷跟太极拳一样,是一种思想精髓,它的一招一式体现在实际工作中灵活运用敏捷原则,敏捷并无特定套路。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. **进取向上(常请大家吃饭)**:进取心是正面的,但通过请客吃饭来建立关系可能被看作是不正规的职场...
例如,图中可能是春节或中秋节,家人围坐在一起吃团圆饭,大家脸上洋溢着幸福的笑容,可能在互相祝福,分享美食,孩子们可能会说些祝福的话语,表达对家人的感激和对新一年的期待。 这些知识点涵盖了拼音、汉字基础...
例如,预算编制流程可能包括需求收集、预算制定、审批、执行和监控等环节,每个环节都有固定的时序,不能随意颠倒,否则可能影响预算的准确性和有效性。 时序的可颠倒性是流程设计中的一个重要考虑因素。有些流程的...
它们在逃逸时的敏捷和灵活,让主人在寻找它们时不得不耐心细致,因为它们小巧的身体能够轻易躲藏于家具的缝隙或是各种角落中。 在日常生活中,珍珠鼠的一些行为举止十分可爱。它们会用前爪抓取食物,然后用它们那...
公务员面试中的陷阱类题目是面试官用来考察考生应变能力、思维敏捷度和问题解决技巧的一种策略。这类题目通常在计划组织、沟通协调和综合分析等常见题型中以微妙的方式出现,使得考生在回答时容易步入误区。下面将...
当家里人都外出忙碌时,它竟跳上了冰箱,用它那锋利的爪子轻轻推开了冰箱门,然后悄无声息地把那条鱼从盘子里叼出来,找了一个角落开始独自享用。直到我们回家后发现冰箱门开着,鱼不见了,才意识到是小猫咪的杰作。...
这些词语不仅在日常口语交流中被广泛使用,在写作、文学创作等艺术形式中也扮演着不可或缺的角色。它们能够生动形象地描绘出人物动作的迅捷或事物变化的快速,为语言增添色彩和力度。本文将对这些词语进行分类和解释...
3. 孩子的心理成长:文档中提到了孩子可能存在的问题,如注意力不集中、遇到挫折易放弃等,这些是儿童心理成长中的常见挑战。家长期望老师能帮助孩子建立自信心,学会坚持和勇敢面对困难。 4. 社交技能发展:评语中...
当我们提起笔,想要描述我们心爱的动物朋友时,我们应该如何着手呢?这篇习作以小鸭子为对象,向我们展示了如何捕捉并生动展现动物的特点。写作不仅仅是一场文字的游戏,更是一种情感的传达,是对生命热爱的表达。 ...
例如,问题“什么样的路不能走?”,答案是“电路”。这个问题看似简单,实则考验解答者的思维跳跃能力。常规的“路”意指供人或车辆行走的道路,而这里的“电路”则是电的通路,显然不适合人类行走,幽默之余也让人...
- 出口成章:出口就能说出完整的句子,形容文思敏捷。 - 语惊四座:言语惊人,使周围的人都感到惊讶。 - 娓娓而谈:讲话从容不迫,引人入胜。 - 妙语连珠:连续说出巧妙的话语。 - 口若悬河:说话像河水倾泻,...
1. **理解最简分数和约分的意义**:最简分数是指分子和分母互质(没有共同的除1以外的因数)的分数,而约分就是将分数化为最简形式,即分子和分母都不能再被它们的公约数整除。 2. **掌握约分的方法**:通过找分子和...
在新人教统编版三年级上册语文教学中,有一堂生动有趣的课程名为“猜猜他是谁”。这堂课不仅仅是简单的...通过这样的教学活动,学生不仅能提高语文的综合能力,还能在学习过程中获得乐趣,培养对语文学习的持久兴趣。
12. 思维被洞悉妄想:患者认为别人能知道她的想法,如在饭厅吃饭时的想法,这是思维被洞悉的表现。 13. 意志减退:患者表现出对周围事物失去兴趣,不愿参与活动,懒于料理事务,符合意志减退的症状。 14. 焦虑症的...
"泪潸潸"和"伶伶俐俐"都是叠词,分别表示泪水不断地流下和动作敏捷的样子。学生需要仿写出类似的词语,如"汗津津"、"明晃晃"、"亮晶晶"以及"欢欢喜喜"、"蹦蹦跳跳"、"说说笑笑",这些词语同样能形象地描绘出事物的...
7. **问题解决与适应能力**:“遇到问题能主动寻求帮助”,这与IT行业的故障排查和问题解决能力相呼应,强调了面对挑战时的主动性和适应性。 8. **环境适应**:“环境的改变并未影响他们的正常生活”,这与IT行业中...
比赛开始,从起点出发,孩子的双脚不能离开家长的脚,途中可以设置障碍物。 4. **找影子** 目的:训练孩子的构造和想象能力。 玩法:在暗室里,孩子坐在椅子上,身后贴白纸,用手电筒照亮,将影子轮廓画下来。也...