在我們應該如何構建複雜系統文末提到調節性匹配理論。一個團隊同時需要這兩類人維持彼此間的平衡,一類以危險為關注焦點,他們會提前預防失敗,判斷是不是安全的;另一類是以成功為關注焦點的,他們會創造財富,說幹就幹!
Higgins(1997)提出人類個體為達到特定目標,會努力改變或控制自己的思想、反應,這一過程被稱為自我調節。個體在實現目標的自我調節過程中會表現出特定的方式或傾向,這就是調節定向,調節定向理論(regulatory focus theory),說明了人們如何趨近積極目標狀態和迴避消極目標狀態。
該理論區分了兩種不同的調節定向:促進定向和預防定向,兩者在服務的需要類型、對目標的表徵、對結果的關注點、情緒體驗等方面存在區別,並會產生獨立的動機結果。
促進定向(promotion focus)與提高需要(advancement,即,成長、發展和培養等)相關。預防定向(prevention focus)則是與安全需要(security,即,保護、免受傷害等)相關。
促進定向更關注有無好結果,而預防定向更關注有沒有壞結果。
預防定向的個體關注如何採取所有必要措施來避免損失,能更準確地理解連續事件的內涵,進而更準確地估計連續事件的發生;而促進定向的個體關注如何採取各種可能的方式以獲得收益,能更好地理解獨立事件的內涵,進而更準確地估計獨立事件的發生,因此,促進定向的個體可能高估連續事件的概率,預防定向的個體可能低估獨立事件的概率。
預防定向的人做事的態度是比較保守,盡可能守住擁有的,而不去追逐新鮮事物;促進定向的人,是傾向去冒險、嚐鮮。根據這樣的特質,可以預期到預防定向的人,會傾向停留在原本的狀態。
整理以上的說明,促進定向 promotion focus 的人有下列的特徵:
- 與提高需要(advancement,即,成長、發展和培養等)相關
- 關注有無好結果
- 關注如何採取各種可能的方式以獲得收益
- 可能高估連續事件的概率
- 傾向去冒險、嚐鮮
而預防定向 prevention focus 的人,有下列的特徵:
- 與安全需要(security,即,保護、免受傷害等)相關
- 關注有沒有壞結果
- 關注如何採取所有必要措施來避免損失
- 可能低估獨立事件的概率
- 做事的態度是比較保守,盡可能守住擁有的,而不去追逐新鮮事物
以我個人的理解,公司裡面的業務行為接近於促進定向的方式與策略,而開發單位是屬於預防定向這種特性的個體。
軟體開發最重要的就是要 debug,任何一個功能在撰寫了第一個版本的程式之後,緊接著就是開發者的自行測試,然後接著會跟其他開發者寫的程式整合,進行第二階段的整合測試,接下來到了測試單位,進行初步的系統測試,然後有前期使用者的實際測試,上線後就是使用者的測試。
一連串不斷的測試的過程,都需要回饋給開發者進行 debug 的工作。而一般認為,一個最好的系統開發人員,除了能把程式寫好,寫的速度快之外,還需要有最少錯誤的極高品質,一個系統的設計人員,在決定開發的方法時,已經事先考慮過最壞的狀況,系統能在最糟糕的狀況下存活是基本的要求。
軟體系統開發,其實就是在一連串的趨吉避凶的過程,正好跟預防定向的個體的特徵有相同的狀況,寫程式要事先考慮到可能會出錯的狀況,然後避免程式進入錯誤的邏輯條件。
更簡單的來說,我們這種死工程師,每天都是在寫這樣的程式,在變數可能會出錯的先決條件下,每個使用到這個資料的程式,都必須要增加很多對應的迴避錯誤的方案。
if(A!=null) {
} else {
}
而業務行為,正好相反,在跟客戶協商的過程中,軟體系統不需要達到 100分,而只要有 60~80 分的程度就可以了,最重要的是業務人員需要一個實際可用的系統,對客戶進行前期銷售,剩下來的部份,就是如何說服客戶系統會越來越好,一切都是要以拿到案子為基準,沒有案子就沒有收入,就算有 100分的系統,也是枉然。
業務跟開發總是在天平的兩端拉鋸,業務會希望「盡快」得到可以展示的系統,而開發人員會希望得到「不會出錯」的系統。我覺得重點在於,不管如何,當系統展示出錯時,我們是用接受的態度面對開發人員,還是用「責難」的方式,調侃開發者。
要知道沒有一個系統是不會出錯的,問題在於出錯的頻率與狀況的程度有多少,如果使用者每走一兩步,系統就當機,那麼誰敢使用這樣的系統。而開發人員要如何確定,系統到底有多穩定?除了一直不斷地測試,似乎也沒別的辦法了。
回到一開始的文章,提到建設成功的團隊必須同時容納兩種不同類型的人類個體。究竟這樣兩種不同的方式,要如何「平衡」在公司日常的運作當中,可能需要更有智慧的方式,進行雙邊的協商。