第一种原因,原本方案只需要直接改动系统 service1,但由于团队1并没有解决该问题的动力,其他人不得不绕道去修改系统 service2,service3,service4 来解决该问题。
在一个大型电商系统中,有四个团队负责不同的服务:商品团队(负责service1,即商品信息服务),订单团队(负责service2,即订单处理服务),支付团队(负责service3,即支付服务)和物流团队(负责service4,即物流服务)。
有一天,公司决定举办一场促销活动,需要显示促销标签在某些商品上。这个任务原本只需要商品团队对service1(商品信息服务)进行简单修改,添加促销标签功能即可。然而,商品团队由于正在忙于其他项目,没有足够的动力来解决这个问题。
为了按时完成促销活动,其他团队不得不绕道解决问题。订单团队、支付团队和物流团队决定共同合作,通过修改自己的服务来支持促销标签的显示。
具体来说:
1、订单团队(service2)在生成订单时,判断商品是否参与促销活动,如果是,则在订单详情中添加一个促销标签。
2、支付团队(service3)在支付页面根据订单信息展示相应的促销标签。
3、物流团队(service4)在发货通知中也包含促销标签信息。
这样,虽然增加了其他团队的工作量,但最终还是实现了促销标签的显示功能。当然,这种解决方案并不是最优的,因为它增加了系统的复杂性,并可能导致未来的维护困难。然而,在现实工作中,有时为了应对紧急情况或团队合作问题,我们可能需要采取这种临时解决方案。
第二种原因,原本方案只需要直接改动系统 service1,但迫于团队2负责人或者上司的压力,方案不得不演进成同时改 service1,service2,甚至引入 service3。
有四个团队分别负责四个核心系统:商品系统(service1)、用户系统(service2)、推荐系统(service3)和库存系统(service4)。这四个系统共同支撑了整个电商平台的运营。
某天,公司决定引入一种新的商品属性,以便用户能更精确地搜索和筛选商品。原本,只需要商品系统(service1)的团队进行简单的改动即可实现这个需求。
团队2的负责人可能对原始方案有异议,或者与团队1存在紧张关系,因此他提出要求同时改动service1和service2,可能是为了强调团队2在项目中的重要性,或者是试图扩大团队2的影响力和话语权。
其实还有一种情况,比如团队2的负责人比较弱势,团队1的负责人强势把一些工作量分给团队2,即使这并不是合理的解决方案。我们这里举一个团队2负责人凸显自己影响力的案例,当然这个现实中也是消耗组织的恶例。
他向上级施压,要求同时改动用户系统(service2)以适应这个新属性。上级在权衡之后,同意了这一要求。
为了满足这一新需求,商品系统(service1)的团队不仅需要修改自己的系统来支持新属性,还需要与用户系统(service2)的团队紧密合作,确保新属性在用户端得到正确的展示和应用。
更糟糕的是,由于改动的复杂性增加,两个团队的工作效率受到了一定的影响,导致项目进度延误。为了尽快上线新功能并缓解团队压力,上级决定引入推荐系统(service3)的团队来协助。
推荐系统(service3)的团队经过评估,认为可以通过优化算法来更好地利用这个新属性,提高商品推荐的准确性。于是,他们决定对推荐系统进行一定的调整,以便更好地适应和支持这个新功能。
最终,原本只需要改动一个系统的方案,由于团队之间的压力和合作问题,不得不演进成同时改动三个系统的大工程。这不仅增加了项目的复杂性和成本,还可能导致更多的沟通和协调问题。
需要注意的是,这种情况并不是理想的工作状态,应该尽量避免。在项目管理中,应该加强团队之间的沟通和协作,确保资源的合理分配和高效利用。同时,上级也应该有明确的决策和权衡利弊的能力,以避免不必要的改动和浪费。