在敏捷开发中成就训练有素

《从优秀到卓越》这本书中有一章专门提到了训练有素的文化,給我留下很深的印象:“每个人都想成为最好的,但大多数组织缺乏纪律,不了解自己,不清楚自己的最大优势是什么,凭借什么把潜力变成现实。他们缺乏严格的训练有素的文化规范自己。”一个优秀的企业,一个优秀的团队的特质就是训练有素,一只训练有素的军队能打赢所有硬仗,一个训练有素的团队能创造出过硬的产品。

对于敏捷开发模式,我更愿意把它的贡献看作打造一支训练有素的团队,一个高效执行的团队。一个训练有素的团队,一个高效执行的团队有四个基本特性:自主性,开放性,思考性和协作性。

在敏捷开发中,所有故事的认领都是自愿和主动的,团队成员能够真正地明白这是在为自己工作,而不是为了完成差事和被动完成指派的任务。自主性的开发工作是真正的高效工作,当全身心投入时,散发出的巨大能量不可小觑。

敏捷开发团队是开放的,在团队中,不再有公司的行政级别的差异。所有成员在一起开放的交流,讨论需求,探讨方案。为一个最佳的解决方法而各抒己见。这时的团队体现的协作是真正的协作,能够迸发出最大的能量。

在任何社会活动中,人体现了最核心的价值。一个团队的思考性是所有团队成员思考性的集体体现。还记得一个周末的午后,在和团队成员一起做迭代周期的回顾时,我花了一个多小时的时间在讲《猿族崛起》这部电影,并不是讲这部电影的特技有多么华丽,情节有多么震撼,而是在感叹当动物都学会思考时,是多么的可怕。恺撒(电影中主猿公的名字)在服食了激活大脑思维的药品后,开始了人类的思考。当时我笑言这部电影可以作为一本管理课程来学习,恺撒在归拢研究所的所有猩猩时用的是经管,商务活动中多种技巧和理论,最终在桥头狙击人类时使用的也是欲擒故纵的技巧。思考性被我认为是在开发工作最重要的特性,只有不断思考,不断学习才能更上层楼。

软件开发中,一个人的训练有素表现在对待出现的问题总是去采用最为(或较为)合理的工具和方法,充分考虑了软件的各种特性(扩展性和鲁棒性等)和要求,一个训练有素的开发人员开发的代码是赏心悦目的,简洁而合理的。一个团队的训练有素体现在这个团队的产品是简洁而合理的,所有产品都体现的是高标准和规格,表现了良好的延续性。

就像团队的进步离不开个人的进步一样,团队的训练有素离不开团队成员的训练有素。敏捷开发模式可以作为我们打造团队的助力器,但并非使用敏捷开发模式就能解决所有问题。打算训练有素的团队成员是一个长期的过程,是一个循序渐进的过程。

余世维的《赢在执行》这本书中说到了缺乏执行力的四个现象:1.对于偏离标准的错误没有感觉。2.没有追求完美的态度。3.标准只是挂在墙上的废纸。4.不会尽职尽责地做好份内的工作。非常遗憾的是,这些现象在我们公司中还不少见。

去年刚刚开始进行敏捷开发的时候,我就决定把以前开发中出现的一些陋习在敏捷开发中彻底解决掉。在以前瀑布式开发时,设计,开发,集成测试之间的时间间隔都比较长,而且基本上每人分一个模块开发,之间的交流很少,导致出现了“功能差不多就行了”,许多低级问题在系统测试才被发现的问题。在进行敏捷开发之后,团队成员的交流多了,在功能验收时更多的人参与了进来,更多的思想火花发生了碰撞,每个人的思维能力在潜移默化中逐步在提高,每个人对别人的严要求也逐渐变成了对自己的严要求。

如我前面所谈到的,思维性我认为是高效团队中最重要的一个特性。一个训练有素的开发人员,一个训练有素的团队是善于思考的,在遇到开发问题总是选择最合理的办法解决。一个训练有素的团队的不同成员在解决相同问题时一般想法都是一致的,采用的都是基于当前条件下最为合理的方案。

林伟贤在一个培训课程中,提到了如何带领团队赚钱,需要实现的三个特性:标准化,科技化和人性化。我认为这三个特性同样适用于我们的软件开发团队。我们的成功应该建立在大师的肩上,实际上如今的软件行业,很多问题都可以在一些经典的著作中找到答案。所以当我们的敏捷团队有了一点奖金的时候,第一时间就买了一些软件业界的经典书籍和工具书放在开发团队中,推荐他们阅读(我发现对于软件开发人员,更愿意读纸质书而不是电子书),统一大家对相同问题的认知,这就是执行标准化和科技化的过程,敏捷开发中随时进行的头脑风暴式讨论也是对这个过程最好的诠释。软件产品中的人性化更多的是对软件质量,易用性和可维护性的要求,要求我们在敏捷开发的持续集成中更注重这些特性的要求,并在互相协作中提升对这些特性的认识。

所有的开发模式都不是万能的,适合自己的开发模式才是最好的。敏捷开发可以助力打造训练有素的团队,但需要根据团队的实际情况走出合适的路,希望大家都能找到这条路,并在这条路上走好。

时间: 2024-07-30 17:31:08

在敏捷开发中成就训练有素的相关文章

敏捷开发中的10大错误认识

敏捷开发中的10大错误认识 原文:http://www.computerweekly.com/opinion/The-top-10-myths-about-agile-development 作者:Peter Measey 译者:张某人ER  http://blog.csdn.net/xinxing__8185/article/ 摘要:对于快速发展的敏捷软件开发领域,本文将对其最常见的错误认识进行分析. 在如今全球市场的背景下,如何可以灵活变通,对于一个企业来讲,已然变得至关重要,因此,IT系统

传统的项目经理在敏捷开发中怎么弄?

非常好的一篇文章,为了自己学习和方便大家,翻译了一下~~ Who handles conventional project manager duties in agile development? 在敏捷开发中谁来分担传统项目经理的责任? Traditional project managers usually take on a great deal of responsibility. They are responsible for managing scope, cost, qualit

让敏捷工具在敏捷开发中发挥高效作用

敏捷软件开发绝不再是一个新名词了,但理解还是时时有偏差.敏捷宣言中的第一条“个体和互动高于流程和工具”,有人就误读为“有了沟通,一切都迎刃而解” ,因此花费大量精力整顿团队合作,却轻视了工具(技术).其实宣言中的意思只是想强调个人和沟通更重要而已. 实际上,既然是软件开发,在所难免得面临工具的选择,而且很多优秀软件实践离开强有力的工具支持都玩不转.在如今的软件开发世界中,工具(这里谈的是软件工具)层出不穷,数不胜数,那么到底该怎么去选择适合的工具呢? 本文将根据我十几年的企业级软件开发经验给出一

如何编写敏捷开发中的user story

http://blog.csdn.net/chengyb74/article/details/4762247 对于敏捷开发来说,User Story是开发的基础,它不同于传统的瀑布式开发方式,而是把原本需求拆成最小粒度的Story,以方便拆分Task,估计开发时间,领取开发任务. 优点和好处 Being very short. They represent small chunks of business value that can be implemented in a period of

什么是Scrum(四)敏捷开发中,做好Sprint规划

什么是Sprint规划? Sprint规划是scrum中用来启动Sprint的事件.迭代规划的目标是定义Sprint可以交付的内容,以及如何完成各项工作.迭代规划需要整个scrum团队合作完成. 与体育概念中的最后冲刺不同,scrum中的‘冲刺’(sprint)要求团队一直保持极速状态以提供可工作的软件,与此同时还需要不断学习和提高. 在scrum中,Sprint是所有工作都得以完成的一段时间.只是在开始行动前,需要设置Sprint的相关条件:例如要决定时间周期的长度.Sprint目标以及从何处

以一则LUA实例说明敏捷开发中“分离构造和使用”原则

分离构造和使用 构造含义是功能的实现, 此功能是一个定义明确的处理过程, 开放出明确的接口给调用者使用. 则使用者可以直接调用接口进行使用, 但是使用者需要搞清楚, 那些是构造, 那些是使用. 不要再使用的地方, 将构造的代码也实现. 否则, 构造的代码会淹没掉 使用地方的 业务逻辑. LUA需求 在一个lua表中, 查询指定参数名称的参数值,  并将此参数值转换为 html encode编码方式. instData = { ["para"] = "paravalue<

敏捷开发

学习内容: 敏捷开发 Agile Development 是一种软件开发流程,开发方法,能够知道我们按照规定的环节一步步的去完成项目的开发任务,主要驱动核心是人,采用的是迭代式的开发. 是相对于瀑布开发模式的缺点改进的一种开发模式,就是把一个大项目切分成多个子项目,然后分别开发.测试. 是以用户的需求变化为核心,采用迭代和循序渐进的方式进行软件开发. 四句开发宣言: 个体和互动  胜过     流程和工具 可用的软件    胜过     详尽的文档 客户合作 胜过     合同谈判 响应变化  

瀑布式开发、迭代开发、敏捷开发、XP与SCRUM的区别

瀑布式开发.迭代开发,区别[都属于,生命周期模型]         两者都是一种开发模式,就像设计模式一样,考虑的角度不一样,个人感觉谈不到取代一说. 传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好.特别是前期阶段,设计的越完美,提交后的成本损失就越少.我现在从事的外包项目就是这样的流程. 迭代式开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来为目

敏捷开发和极限编程

敏捷软件开发(Agile software development): 它是一种用来应对软件需求的不断变更的新的软件开发技术. 强调整个开发过程中业务人员和开发人员紧密协作在一起,面对面交流,频繁性的交付软件,随时应对需求的变更.追求在尽可能短的时间内交付较小的可用的功能,并在整个项目周期中持续改善和增强. 极限编程(Extreme programming,简XP): 极限编程是敏捷开发中最富有成效的几种方法学之一. XP是一种近螺旋式开发方法,它将复杂的开发过程分解成一个个小的开发周期,对需求