技术高管们决定将功能交付暂缓,任命库尔特带领数据总线团队利用这一个月的缓冲时间,偿还技术债务。事实上,让数据总线团队为凤凰项目的发布背黑锅,“就像在无端指责一家失事飞机后排的乘客没有把安全带系紧一样“。数据总线包含几十年前的老系统,那时候都没有凤凰项目。
库尔特邀请玛克辛一起参加数据总线团队的工作。她通过让每个线程创建自己对象的副本,使每个对象方法重写为纯函数,即输出完全依赖于输入,不会影响其他部分或全局访问,解决了一个“足以把十级黑带”逼到绝望的问题。她意识到,这正是第一理念,局部性和简单性的一个最佳实践。
然而随着任务范围的不断扩大,参与进来的团队也不断增加。这与第一理念背道而驰,也不符合亚马逊的“两个披萨团队(Two-Pizza Teams)”原则——即用两张披萨饼喂饱的团队就能创建的功能。
玛克辛照例来到了酒吧。反抗军很兴奋,公司的运维团队在接下来的一个月内只做支持凤凰项目的事,偿还技术债务。这就是反转项目。
“几乎每一家科技巨头都被技术债务压垮了......就像凤凰项目一样,他们被技术债务拖累,无法在满足客户的需求。”大佬酒保埃瑞克不知什么时候做到了玛克辛身边,给大家分享起关于技术债务的历史。“技术债务事生活的一部分,就像截止日期一样。业务人员可以理解最后期限,但却往往忽略技术债务的存在。技术债务本质上太不上好坏,它之所以发生,是因为我们在日常工作中做出权衡取舍。”
如果开发人员需要在开发功能特性和提高其工作效率之间做出选择,那么他们应该是种选择后者(微软现任 CEO 纳德拉)。
反抗军意识到,反转项目是他们走出困境的机会,当即列出了一个代办清单。