敏捷开发好的领导力所具备的特征
Francis Adanza 讨论了成为一个优秀的敏捷开发领导人的方式就是持续不断的坚定敏捷开发的态度。
传统的瀑布流式的软件开发方式和敏捷开发方式是有根本性的不同的。对于理解敏捷开发,首先最主要的就是我们必须记住它不是某一个具体的开发流程。相反,敏捷开发是站在一个总体的层次上,去决定如何去组织和执行特定的流程。其实我们可以认为,敏捷开发就是围绕人们的开发的目标,将这些纳入到开发流程中。也就是说以用户的需求为核心。不是每个人都独立的开发自己的函数或者模块,然后将这些推倒下一个阶段,根本不会站在总体上去考虑这些程序。以完成自己手上零落的功能为目的。而是应该所有的部分都应该参与到完成同一目标工作中。这样可以为用户了解市场需求提供一个清晰的解决办法。
上面已经说过,敏捷开发中的领导者一定不能认为是那些构建工作流程的人。当然这其中要除去那些加强敏捷开发的态度的人。要达到这一点需要遵循以下几点:
知道如何去培养团队的协作能力
强有力的合作是敏捷开发的基石。这样可以使一个团队按照一个更好的想法去为用户设计架构并且测试软件。
如果没有协作,那么每个人都在按照自己的假定去完成任务。并且还总是认为他们自己所做的总是和别人正在做的是很协调一致的。如果依照这样进行下去的话,到最后的测试阶段,你就会发现这将是一个臃肿的并且存在很多bug的应用。作为最后的软件的捍卫者,测试人员就处在了一个非常不幸运的位置上了,他们必须匆忙的进行质量管理,或者将解决方法退回给生产线。这样每个人都会不高兴。
因此,敏捷开发的领导者必须能够培养一个开放式协作的开发环境。依此来阻止上述事情的发生。这就不是仅仅使用交流技术和工具让开发者和测试人员达成共识。它还需要一种文化,在这种文化下面,团队的每一步的目标都是非常明确的。比如在整个工作流程中需要给测试管理人员留出一些空间,使他们可以参与进去。而不是将他们放在开发的最后阶段。
要在领导者的领导下,持续不断的探求新的方法,去和QA团队建立工作关系。使敏捷开发的环境成为一个运行良好的机器。
不进行操纵管理
敏捷开发不需要过度的关注严格的流程。相反,需要去按照手边的目标和完成该目标的需求去适应相应的过程。这样,在工作流程中人们就会努力去思考如何完成同样的目标。因此,一个强大的有责任的团队就形成了。为了形成这样的心态,TechTarget 的贡献者Yvette Francino发表了这样的一篇论文:在敏捷开发领导下的项目管理就是一场另类的球赛。
Francino 写到“敏捷开发项目管理者有‘仆人领袖’的角色,是在开发道路上移除障碍的引导者。这非常不同于之前的项目管理方式——先前项目经理处在一个控制并且发布命令的位置上面,并且他就是权威。在敏捷开发中,没有任何一个人是权威,大家互相交流经验。”换句话说,在敏捷开发中没有操纵管理的概念。如果有一个人负责告诉每个人要做什么甚至如何去做,这样对创建一个每个人都对成果负责的团结协作环境会产生负面的影响。
Francino写到“团队作为一个整体,都要对项目成果负责”。
给工作确定正确的工具
对于项目管理来说,在敏捷开发中能够培养处处考虑敏捷的意识的重要性可能有待论证。但是,一旦达到了这个能力,那将会帮助我们知道什么样的工具能适应这种习惯。并且是一个全面提高的过程。这就是实时项目跟踪工具发挥作用的地方,它能帮助支撑目标。并且是同一阶段的每一个人都按照需要做的去开发。
涉及到测试管理的地方尤其重要。敏捷开发的领导者必须保证测试人员将缺陷管理做成流水线的形式。这样当有bug被检测出来的时候,它们能被正确的处理。
事实上,这样可以缩短迭代之间的时间。因此可以按照需要的方式更新解决方案。最后,质量评估是很重要的,它可以使用循环测试的方式跟踪测试用例,这样可以确保万无一失。一个强大的测试系统就是这样做的。对于敏捷开发的领导者,清楚市场上什么样的或者哪一种QA软件测试工具支持这种功能是很重要的。