前言:在软件定义汽车趋势下,一方面”快速交付”、“OTA”已成为行业的共识;另一方面“交付质量”虽可适度下降但仍要有底线;这两者的冲突已超出了传统的ASPICE研发流程体系的能力范围,“敏捷开发”是否可以解决这一切呢?这两者是否可以,或者如何结合呢?
研发干的“不好”
-
定义了A,实现出来却变成了B: 产品定义方与实现缺乏沟通,且交付物只在最后阶段可见,再提意见就晚了
-
里程碑快到了,才发现问题仍然一堆:软件开发的过程不透明,难以管控
-
上线后,售后问题急死人:工期的压缩对非必要环节产生冲击,严重影响质量
市场变化“太快”
-
定义了A,干到一半想改成B,基本不可能:传统的瀑布式开发,流程越往后走,变更成本越高 -
定了一年上线,临时想改成8个月,困难重重:瀑布式开发,若未走完全流程则质量问题一大堆,基本无法交付。
黄花菜“凉了”
-
需求从提出到交付,周期太长:单一功能涉及多个专业部门,干系人复杂,沟通成本太高;功能开发流程链条较长,从计划到交付往往涉及10+环节;
2. Tesla和行业里是怎么干的呢?
-
Tesla、Apple、Google应用敏捷基本是不用去考证了,其中Apple在2012年组织架构已经是“敏捷”的[2], Google也在2006年就成功将”敏捷”引入Adwords的开发中,并发表相关论文,被IEEE收录[3]
-
至少是2020年起,Aptiv已经在全球范围内全面推广”敏捷”,且聘请咨询公司专门定制了AutoScrum的敏捷框架,在公司官网也可以看到其已经在"主动安全"、"自动驾驶"、"车辆互联"等领域应用敏捷方法了。[4]
-
Bosch在2015年宣布开始转型为敏捷组织, 管理层率先使用”敏捷”的方式开始工作[5][6] -
Continental在2020年也宣布全面转向敏捷的方法与文化,其VNI部门率先开始全球试点[7]
-
奔驰已经将”敏捷(Agile)的组织文化”写入公司战略[8],并且其子公司Mbition也开始用敏捷的方式生产整车,并要求其供应商也使用敏捷的方式。其主页http://mbtion.io上有一段话 "The essence of our Way-of-Working (WoW) is being agile when it comes to applied values and principles"
-
沃尔沃自2017年起,全球整车研发开始转向敏捷开发[9]。并从2020年开始,使用完全敏捷的方式打造新的量产车型。 -
宝马的智能座舱和IT部门也是使用敏捷方式,其中IT部门在2019年实现100%敏捷[10]
3. 我们的思考与方向
二、敏捷细究
既然提到“敏捷”,虽然网络上关于“敏捷”的介绍不少,我还是简单的讲一讲我的理解吧。
1. 敏捷概况
-
是一种源自“精益”的理念,始于2001年 ,一开始仅用于软件开发,目前已应用于生产、零售、人事资源、预算、审计,企业组织形式等领域。 -
在21世纪席卷全球,最大的5家互联网公司Amazon, Apple, Facebook, Google, Microsoft都在使用 -
全球有许多非营利组织提供相关的培训与认证服务,如Scrum联盟,Agile联盟,PMI(项目管理协会) -
主流问题管理工具都原生的支持敏捷开发:如Jira, Teambition (阿里), TAPD (腾讯)
-
关键角色:Product Owner(产品负责人), Scrum Master(敏捷教练) -
跨职能团队:一个团队内要具备所有的角色 -
迭代快速:需求拆细,2-6周可交付
-
测试驱动开发:在编写任何代码之前,首先编写对应的测试用例;测试用例需要能完全自动化运行。根据IBM和微软的研究,BUG会少40% - 50%[11] -
结对编程: 两位程序员在一台电脑前工作,一个负责写代码,一个负责实时检视代码。两者角色定期更换。生产率低15%,但BUG少15%,考虑到解BUG工作量比写要大几倍,总体效率更高
-
自组织:在完成必需工作后,团队自行决定做什么 -
自驱力:沟通更多为自下而上,充分发挥个人主动能动性
4. 敏捷转型的关键挑战
-
缺乏领导层的支持:实行敏捷,组织架构上的微调是必不可免的,这个就需要领导层的支持。很简单的说,一个SCRUM团队中,有来自产品、开发、测试、集成等各个职能团队的人,他们凭什么听指挥呢?那么至少这个SCRUM master要有考核或比较强的话语权。 -
组织对变革的阻力:三方面吧,一是接受新的观念、流程对很多人都较为困难,且在转型初期会较为痛苦;二,敏捷特别讲究量化数据,这时很多“老油条”或“摸鱼达人”就会被暴露出来,他们当然天然会反抗这种转型;三、敏捷转型后,整个组织自驱力越来越强,需要的管理人员会变少,这些人该去哪?难免又会有内部的阻力.
5. 敏捷转型中会出现的常见问题
-
生产率临时下降(2~3个Sprint):在刚开始实行敏捷转型时,有很多新的习惯要养成,有很多新的流程要遵循,所以必然会出现临时性的生产率下降。但放心,一般来说,经过2~3个Sprint的磨合,就可以明显看到效率的提升。 -
敏捷容易退化:有些组织在实行敏捷一段时间后,比如说站会开了,KANBAN有了,Scrum也跑起来了,会慢慢的松懈,效率会掉下来。这主要因为“敏捷”是“价值观”,而不是“方法”,只用敏捷的方法是不够的。有一句名言叫“Don't do agile, be agile",就是指这个。那么如何保证“敏捷”的价值观能够贯彻并保持下去呢?就靠“工程师文化”了,这个后面详细描述。
1. 敏捷与ASPICE可以结合吗?
-
ASPICE更加注重文档:这里的文档泛指可被第三方检查的证据。ASPICE Level1的认证就是根据你的文档输出(outcome)来倒推你是否有按Base Practice干的。如果你没有这些,Level 1过不了。 -
ASPICE更加注重流程和计划,GP(Generic Practice)2.1.1~2.1.6基本讲的就是流程、计划。如GP2.1.6里面写明了:必须识别、准备、安排合适的资源来保证流程按计划的进行。要知道,你想通过ASPICE Level 2的认证,GP2.1.1~2.1.6是必要条件。
2. ASPICE的种种弊端
-
3~5倍工作量:一个项目,严格采用ASPICE后,是常规项目的3~5倍工作量。这个是很多Tier1实践下的结果,不信的可以自己试试 -
Traceability——看上去很美的骨感现实:ASPICE几乎每个流程都会讲双向可追溯性(Traceability),大部分项目要么就是把所有的需求全部链接到一个模块上,要么就是只拿一个小模块来做这事。因为,工程实践中,Traceability确实可以帮助发现问题,但是性价比极低,你当架构师做架构设计时是只看一遍需求吗? -
改需求或重构时怎么办:我在上一家公司时,曾经有2个月独自做一个大模块,代码量大概4万行左右,其中还有几千行是用于生成代码的代码。然后2个月内,我一边做设计一边写代码,写不通了就重构设计,一共搞了3遍。如果按ASPICE来,我该怎么办?
-
成就感:实现了某个复杂功能,解决了某个疑难问题 -
以自己代码的健壮性、可维护性、可扩展性为荣 -
吹牛:老子10年前写的代码他们现在还在用呢
-
成就感:我所有的文档(泛指)都写完啦 -
以严格遵守流程,不给QA添麻烦为荣 -
吹牛:(想不出来了...)
3. ASPICE vs 敏捷 总结
四、工程师文化与DevOps
1. 工程师文化
-
质量为导向:充分信任工程师,在不达交付标准时不上线,且不追责. 优秀的工程师的自我要求都是非常高的,到了交付时间点若未达心中的交付标准,其实是不愿意上线的。这时要尊重工程师的意愿,且不追责,因为他往往已经尽力了。 -
追求新技术:使用和关注最新的技术和工具,并允许因尝试新技术而带来的时间成本。尝试新技术就有失败的风险,一味只想提高效率而不愿承担可能的后果就是耍流氓。 -
专注的时间:尽量减少不必要的会议与其他打扰,否则工程师的“灵感”可能就被打断了。这里的小提示就是,在非必要时,尽量留言,而不是打电话或者直接找过去。 -
内部技术论坛:内部建立技术的充分沟通与交流的氛围。这里,有个简单粗暴的办法来判断公司是否有技术氛围,就是看那几百人的大群里,都在聊什么?是经常有技术的交流和分享呢?还是都是些行政类的通知?
2. DevOps
-
代码的提交直接触发:消除等待时间,快速反馈
-
每个变化对应一个交付管道:使问题定位和调试变得简单
-
全开发流程高效自动化:稳定,快速,交付结果可预测
-
持续进行自动化回归测试:提升交付质量
-
设施共享并按需提供:资源利用最大化
参考
-
^1 https://www.36kr.com/p/847294138930688 -
^2https://www.forbes.com/sites/stevedenning/2012/02/03/is-apple-truly-agile/?sh=d209df6641e6 -
^3 https://www.agilearena.net/google-case-study-agile-software-development/ -
^https://www.aptiv.com/en/careers/competencies/join-our-agile-revolution -
^4 https://flyntrok.com/2020/07/07/agile-owl-edition-3/ -
^5 https://hbr.org/2018/05/agile-at-scale -
^6https://www.continental.com/en/press/press-releases/2020-10-21-new-project-organisation-vni-238392 -
^7 https://www.daimler.com/company/strategy/ -
^https://www.forbes.com/sites/stevedenning/2020/01/26/how-volvo-embraces-agile-at-scale/?sh=50690f454cf0 -
^https://www.itpro.co.uk/agile-development/31552/how-bmw-embraced-agile-to-hit-new-speeds -
^https://zhuanlan.zhihu.com/p/257174601
说明:文章来源网络;文中观点仅供分享交流,不代表本公众号立场,转载请注明出处,如涉及版权等问题,请您告知,我们将及时处理。
扫码关注公众号
关注公众号领精彩彩蛋!