1703950833
技术管理之巅:如何从零打造高质效互联网技术团队? 第4章 产品研发流程篇
1703950834
1703950836
4.1 玩转互联网敏捷开发
1703950837
1703950839
4.1.1 玩转产品敏捷、项目敏捷、分布式敏捷
1703950840
1703950841
通过第3章的学习,我们掌握了技术团队组织架构的搭建方法,如何让一个技术团队有效地协作在一起,高效地开展开发工作呢?我们需要建立一系列的产品研发方法和流程,比如敏捷开发、项目管理、测试规范、产品发布流程等。本章将给大家介绍,当今互联网业界普遍采用的产品研发方法和流程。首先,我们一起探讨的是敏捷开发方法。
1703950842
1703950843
国内外知名互联网企业,都选择敏捷开发作为主要的产品研发方法,比如国外的Google、Facebook,国内的阿里、百度、腾讯等,都大规模地采用了敏捷开发。主要原因是敏捷开发的小团队组织、角色模糊化、快速迭代交付的特点,很好地支持了互联网企业的发展速度快、业务灵活多变的特点,极大地释放了技术团队的生产力。敏捷开发已经成为当代最具代表性的开发方法论,并且在世界范围内得到了广泛的应用。
1703950844
1703950845
敏捷方法论的书籍和资料都比较普及了,在这里不打算赘述了。本节我们来探讨一些互联网产品开发中比较有特色的敏捷实践。也就是产品敏捷、项目敏捷、分布式敏捷,它们并不是衍生出来的敏捷新流派,只是对一类敏捷实践的归类和总结。
1703950846
1703950847
产品敏捷,就是一个产品开发小组,围绕着软件产品进行的敏捷开发的过程。如“团购系统”开发小组,将团购业务人员提交的开发需求,变成多个Story放入每个Sprint中,进行迭代开发,这个产品开发小组是专注于团购系统的。产品敏捷是最常见的敏捷开发模式,大多数敏捷开发都属于产品敏捷。
1703950848
1703950849
项目敏捷,指的是大项目在项目经理的领导下,由多个敏捷产品开发团队一起协同开发的过程,项目敏捷可以理解为一个大的迭代,里面又包含了许多小迭代。例如,网站速度提升项目,项目的目标是把网站的整体访问速度提升10%,涉及到的开发小组有团购开发小组、网站前台开发小组、网站后台开发小组、搜索开发小组等,项目经理把这个项目的上百个Story分派到各个开发小组中,各开发小组在各自的Sprint里进行开发和程序发布,项目经理负责协调和管理整个项目的进度、风险、成本等。
1703950850
1703950851
大多数互联网公司是以产品敏捷为主、项目敏捷为补充的,这个模式很好地解决了产品和大项目的开发管理问题。如图4-1所示是项目敏捷和产品敏捷协作图,开发需求分成两类,产品需求和项目需求,产品需求由各产品开发小组(图4-1中的Domain指的就是一个产品开发小组),用产品敏捷的方法进行开发工作;项目需求由项目经理采用项目敏捷的方法进行项目管理工作。
1703950852
1703950853
1703950854
1703950855
1703950856
图4-1 项目敏捷和产品敏捷
1703950857
1703950858
分布式敏捷,指的是由异地开发团队协作,进行敏捷开发的方法。传统的敏捷开发方法是强调敏捷开发小组在同一个办公室,集中开发,而实际工作当中,多地研发中心协同开发的现象是普遍存在的,分布式敏捷就是为了解决异地团队进行敏捷开发的场景而存在的。那么,异地团队进行敏捷开发会遇到哪些问题呢?
1703950859
1703950860
首先,日常的沟通问题是最突出的,一般来说需要使用视频电话、即时聊天工具、桌面共享软件来辅助日常的交流,沟通效果会有所提升。而对于管理人员来说,需要一套在线敏捷开发管理工具,以便随时了解异地团队的工作进展,这也要求团队成员把每天的工作进展,录入到敏捷开发管理工具中去。
1703950861
1703950862
其次,要建立高效的异地敏捷团队组织架构,前面的“3.4如何让异地团队更高效”章节中已经提到了解决方法,大家可以参考,这些方法包括高效的组织架构、消除网状沟通等。
1703950863
1703950864
再次,是消除异地团队的陌生感,推荐采用远程视频工具进行异地会议,让团队成员做自我介绍,增进彼此的了解。另外,有条件的话可以让团队成员出差,跟团队面对面工作一段时间。
1703950865
1703950866
最后,异地团队需要增加Demo的频次,以便需求提出人更早地参与到成果物的确认当中,及时纠正因异地沟通产生的理解上的偏差。
1703950867
1703950869
4.1.2 看板(Kanban)适合哪些技术团队
1703950870
1703950871
看板和Scrum是敏捷体系中的不同实践方式,看板更强调单个可交付物的开发周期,所以能够缩短“idea to market”的时间,这一点上跟Scrum要求的固定迭代周期相比,管理的粒度更细一些。看板给业务方的感觉是“这个功能做完就上线,真快”,而Scrum给人的感觉是“这次Sprint的10个功能一起完成了,我的这个功能才能够跟着上线”,想想就知道,哪种方式更受到业务方欢迎了。
1703950872
1703950873
看板的特点是工作流程的形象化,通常会把工作细分成多个任务,写在卡片上,贴在墙上。限制“在制品”(Work In Progress,简称 WIP),明确设定限制在每个状态下同一时间能有多少工作任务。度量生产周期(即完成一个任务的平均时间),优化开发过程,缩短开发周期和使开发时间更易于预测。如图4-2所示是典型的看板,将工作过程完全可视化,很直观地告诉团队,当前的效率瓶颈在哪里,团队一起去改善,以便开发过程更顺畅,效率提升更快。
1703950874
1703950875
1703950876
1703950877
1703950878
图4-2 看板工作墙
1703950879
1703950880
为了更好地区分看板和Scrum,我们来看看它们究竟有哪些共同点和不同点。
1703950881
[
上一页 ]
[ :1.703950832e+09 ]
[
下一页 ]