軟體開發與心理學
· 閱讀時間約 3 分鐘
"Soft"ware and "Soft"skill
面對人、組織的問題時,想想如果這是在寫程式的話,可以怎麼處理?
拆分工作與並行
在軟體開發中有並行(concurrency)和平行(parallel)的概念。善用這兩個可以帶來更有效率的工作表現;就像如果能妥善分派工作,將每個工作拆成相對獨立的的任務,同時交付給多個人去處理,就能夠在更短的時間內完成更多的事項。
權責與分工
在軟體開發中有分層(layer)的概念,每個 layer 內只負責和管理好自己應該知道的事,如此可以減少程式耦合、讓程式更好維護與管理;就像組織中,並不是所有部門都需要知道所有的訊息,更有效率的做法應該是每個部門只需知道和自己相關的資訊,並把自己部門內的事項負責好後,再交派給其他部門做處理。
不變的就是總是會改變
軟體的世界變化很快,不論是架構、框架、語言,都以非常快速的方式在成長。即時你今天真的設計出了一個完美的系統架構,它也很有可能在幾個月後,或幾年後被推翻,而且很有可能推翻的人還是你自己。因為隨著時間的改變,人的想法會改變、使用者會改變、需求會改變、能夠拿來解決問題的工具也會改變。最重要的不是想出什麼是完美的做法、而是寫出最有彈性、能夠適應未來改變的程式。