初開:一次開發方案決策的系統思考


本文案例已經過藝術加工,請忽略案例本身的真實性。

不久前,完成了一個項目,在制定開發方案時,出現兩個方案的決策問題,我來分享了這里面的一些思考。

一、背景

現談談背景,我們負責了兩條業務線的日常開發和維護工作,就好比淘寶和天貓這種模式,他們背后屬於不同的業務部門,但都有一樣的商品的購買流程。

就是這樣的兩條業務線,它們業務相互獨立,但提供的業務功能是類似的,所以由一個團隊負責,平時相安無事,哪邊有需求,哪邊放人。

我們就叫業務線A和B好了。

后來有一天,在業務線A花了大力氣,投入兩個月時間,開發了一個新的產品功能,代號“剁手”。

“剁手”項目一上線,好評如潮,業務線B就眼紅了,跟開發團隊說,我們也要“剁手”,你們把他們的功能包裝下,快幫我們上了。

二、方案

現在,要出開發方案了。出於軟件開發的原則,盡可能讓功能復用,不要重復造輪子,我們理想的設計方案自然是這樣的。

將剁手功能剝離出來,做成可復用的模塊,給兩條業務線使用,也好維護。

但是,也有不同的聲音,業務線A和業務線B背后的利益人不同,平時井水不犯河水,,不如直接復制一份過去。

所以,對於如下兩方案,你會如何決策?如何說服不同的聲音呢?

三、決策

不知道你是如何想的,我當時是用系統思考來決策的。

首先,我們現在的問題是:應該選方案一,還是方案二?

這兩個方案各有利弊,它們構成的系統之間有不可調合的矛盾,無法做整合。

所以我們可以基於系統思考的一個原則:跳出系統看系統

也就是跳出當前的問題,站在更高的層次來思考。

如何跳出呢?有一個方法:向上歸類

話術是:X是一種什么?X屬於什么?

就“剁手”這個項目而言,它既屬於一個功能,又屬於一條業務線。

這樣,我們可以把要決策的問題重新表述:

  1. 把“剁手”當成一個通用的功能,提供給不同的業務線?
  2. 還是把“剁手”當成不同業務線上實現相同的功能?

這兩種說法的區別是什么?

其實本質的問題在於:團隊在組織定位是什么?

也就是:

  1. 我們是緊密的團隊,給不同的業務線提供相同的功能服務?
  2. 還是我們是松散的團隊,只是恰好兩條業務線類似才合在了一起?

當我把這個問題拋出來,問團隊的成員和管理層。很快就得到了一個答案,我們其實是不同業務線恰好合在了一起,后面甚至會分開。

那么,答案是方案二,直接復制一份功能給業務線B。這是一個完全不符合軟件設計原則的方案,但卻符合團隊的組織定位,基於這個前提,我們必須這么做。

四、組織決定架構

在完成項目不久后,公司做出了組織架構調整,團隊拆分,兩條業務線分家,獨立運行。基於方案二的剁手項目沒受任何影響,為各自的利益運行着。

從這個項目方案的決策中,我明白了一個道理,組織決定架構

很多時候,我們的開發方案,我們的軟件架構,不是由純粹的技術決定的,它往往是技術與多方利益相互妥協的結果。

這導致的另一個的現象是,在一個公司內部,不同團隊會反復造相同的輪子,哪怕是已經有了,也要想自己再去造一個,無論出於什么目的,背后都是競爭與合作的博弈。

五、滿意決策原則

在赫伯特·西蒙的《管理行為》一書中,談到理性的決策模式是追求最優的方案,而人在做實際決策中,往往受各種因素的限制,其實做的是滿意度的決策。

不要去尋求最優的方案,找到令人滿意的方案就好。

在這次的項目中,最終的方案肯定不是最優方案,但無疑讓涉及到的各利益方感到滿意。

再回到我們的工作、學習和生活上,對於內心的訴求,我們是費勁心思、苦苦等待找最好的,還要找讓自己的滿意就行了呢?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM