敏捷开发必然促成团队的全栈式属性;全栈或全功能团队必然更加拥抱敏捷。敏捷开发与全栈团队建设紧密相连,实施敏捷开发的过程实际上就是向全栈团队建设的过程。以下是我对全栈团队建设的一些浅薄思考和实践。
一、 开发测试不分家
不少开发人员都不愿意做测试,测试人员也不愿意编码;而且很多开发人员总认为故事开发完成就算自己的工作结束了,竖井思维严重。
敏捷教练的工作就是要不断向团队成员灌输“开发测试不分家”的思维理念,让大家明白在每一个迭代中,负责某故事的开发人员要将故事推进到“待验证”状态(即测试完成后),并能成功向验收的业务人员做该故事的功能演示为止,才算该故事的负责工作告一段落,当然最后上线完成交付价值才算终结。
在实践上,在前期缺乏测试人员的情况,正好鼓励开发人员自行结对互为AB角进行测试,学会站住测试人员的角色上思考问题,认识到测试的必要性。后期测试人员到位的基础上,要学会和测试人员沟通,解决缺陷推进故事的测试。增加团队规则:业务人员验收前负责该故事的开发人员要向业务人员进行功能演示,演示过关才会进入验收。
将来还可以引入的实践:比如开发人员,测试人员结对,开发人员指导测试人员进行自动化测试脚本编写和简单的功能开发,测试人员指导开发人员案例编写与测试。让开发测试彻底不分家。
二、前后端开发通吃
传统开发中,往往前端开发人员与后端开发人员分属不同的团队,中间靠接口文档进行沟通。如果文档间存在理解差异,经常会出现争执返工的局面。
前后端开发通吃,这就要求团队成员要做好必要的学习和培训。这是需要一个持久的过程。在分享会上进行全面普及基础知识,团队成员业余时间自行学习,后端开发人员试着进行简单容易上手的前端界面开发,前端开发人员尝试简单的后端功能逻辑开发,通过某个故事的结对编程,互相学习共同促进。
目前的实践还是一个团队内既有专职前端人员也有专职后端人员,但不允许跨团队发生。要达到每个团队成员前后端开发通吃还需要一定的学习成本和时间成本。
三、结对工作培养提升
结对工作有助于知识传递,培养新人,提升产品质量。前面2点也提及到了结对工作,结对要成为一种团队文化,一种惯性思维。结对切不能固定不变,要根据故事随时变化:结对编程——有助于代码检视,久而久之整个团队形成一种统一风格,且编码质量逐步提升,“木桶效应”的那根最短的木板会变长。
四、 建立分享机制
(1) 知识库搭建。
在线共享的知识库非常重要,这是大家统一思想的源泉所在,也是团队经验积累的宝库。并为新人搭建自发学习的平台。打破知识垄断。
(2)每周分享会形成。
每个成员自我成长的展示舞台。也是促进团队成员共同进步,实现全栈团队的有力“锤子”。
(3)迭代showcase机制。
功能展示会的开展能够进一步提高团队成员的自信和成就感。当然最重要是拉拢和业务与客户对产品的期望。
五、需求管理、项目管理深入人心
需求管理并不仅仅是产品经理(业务)的事,在每次需求故事地图、需求梳理、需求澄清的过程中,开发,测试都会参与其中。
项目管理也不仅限于项目经理,应该形成一定的传递和轮换,将管理工作下放。实践上形成了领导力小组,重点培养小组长参与管理。并将每日晨会以及日报开始让团队成员轮流组织和编写。
小结
很多团队把目标仅仅放在交付上,寄希望于工具、外部力量能够快速地解决问题,往往对小步前进不够耐心,不关心团队的成员。这是不对的,一个团队的经营,最重要的还是在人上,把全篇总结为一句话:把团队建设目标放在人员能力提升上,让项目成功成为能力提升的副产品。
网友评论