敏捷开发有益于个人发展">敏捷开发有益于个人发展
敏捷项目首先拥有一支支小规模但职能全面的团队,在这样一个普通的敏捷团队里,拥有具备不同职能的 7 名成员,1 名 UCD(User Centered Designer),1 名 Visual Designer,1 名测试人员(Tester), 1 名 Information Developer 和 3 名开发人员(Developer)。因此,每一支敏捷团队中的设计、开发、测试、美工、文档等等工作分属给了这个团队里不同的,唯一的人。每个人在团队里因而必须具有对其所涉及领域强的责任心和领导力。就测试而言,测试人员就是好比一辆跑车里的唯一的驾驶员,项目就好比这辆跑车,测试人员需要及时修正行驶方向的偏差,确保这辆车在正确的道路上稳步前行。如果,测试人员没有具备足够的责任心和领导力,只是人云亦云,恐怕这种测试要与不要没什么分别,敏捷项目的质量也更让人担忧,而敏捷也就失去了原有的意义。因此,作为唯一的测试人员,他(她)将拥有对测试的所有权,计划、设计并且执行所有的测试工作。而也因为拥有了更多的主人翁精神,积极的工作热情,测试人员勇敢的面对工作中的各种挑战,学习新的知识和努力培养自己的工作技能。敏捷无疑对个人发展产生了很大的推动作用。
敏捷团队中的每个人,需定时和团队的其他成员坐下来看看团队的整体进度,计划下一步工作,并一起探讨所遭遇问题的解决方案。也需适时的寻求团队中其他成员的帮助解决时下紧要的问题。通过频繁的合作与沟通,个人的协作能力、沟通能力也得到了较大的提高。下面我们具体就这两个方面进一步谈谈敏捷开发是如何帮助提高个人的协作能力和沟通能力的。
与传统开发不同,敏捷开发更加侧重以人为本,发挥人的积极性,以此提高团队的工作效率。真正实现以结果为导向的职场守则。作为团队的一份子,无论是测试、开发人员,还是设计人员,他们都将为团队成败担当不可或缺的责任。团队是高度协作的团队,个人除了做好本职工作外,敏捷开发模式要求个人能够了解和争取更多的扩展性的工作,也能帮助团队其他成员解决他们的遇到的各种独特问题,以加快实现团队的统一目标,即在更少的时间里生产出能够推向市场的可靠产品。
这里再次提及高度协作,笔者认为高度的团队协作主要表现为以下特点:
- 团队成员积极分享经验,知识,自我培养所需技能和自我成长;
- 团队成员相互帮助,愿意成为他人后备队员,随时做好准备投入新的战斗,因而保障了团队的高昂士气和强大的生命力。
- 任何决策是团队共同的决策,工作是团队共同的工作,团队工作的最后成果因而也是来自团队中每个人的辛勤培养和贡献。而团队的失败更是整个团队的失败,绝不会是某个人的单方面的过失。这种荣辱与共,共生共息的信念将让团队的力量超过团队各个力量之和。同时,项目团队的工作效率在团队成员技能的提升和信念的巩固中不断提高
我们把团队看做一个高度协作整体的同时,不可忽视的是团队内部仍存在的各种矛盾,对这些问题的听之任之将破坏团队的凝聚力、生产力。这中间反映出来的很多问题不是敏捷方式独有,但团队成员因为敏捷,学会了自己解决各种问题。而相应的沟通能力也随着问题的解决得到很大幅度的提高。
在过去的项目经验中,我们不难发现种种人与人之间矛盾的产生。而经典的矛盾论也让我们不得不的接受,矛盾是永远存在的,但这并没有什么可怕。而是一旦我们发现了矛盾的存在,就要迅速找到解决办法,这也是团队的相当重要的工作。尤其是在团队组建初期,团队开始采纳新开发模式时,锻炼团队解决如下矛盾的工作非常重要:
- 测试人员是质量的工程师,开发人员是产品的缔造者,在对质量标准的认同上常有不一致(当然,传统开发也会产生);
- UCD 的设计实时反应用户需要,但有时不能顾及代码的可实现性;
- 开发人员而却更喜欢用想当然的理解,和习惯的方式填写代码,甚至主观的抵制接受新设计思想和拒绝新类型缺陷的修复,因此与团队的整体目标、出发点产生分歧;
- 从整个项目组织结构看来,敏捷团队之间(一个项目通常有多个敏捷团队组成,各个团队有自己的侧重点)存在设计,开发的不一致性,这使得产品在整合阶段产生额外的成本。
正如前面所论述,矛盾总是有能够解决的途径,敏捷项目的组织中用管理方式去干预是一种直接、快速的方式,而今天敏捷方法论者们更加推崇的是鼓励团队内部进行很好的交流和沟通后自行解决。也正是通过不断加强团队间和团队内部的相互理解,不但矛盾得到很好的解决(解铃还须系铃人嘛),个人的交流和沟通技能也得到了进一步提高。
文章来源于领测软件测试网 https://www.ltesting.net/