字體:小 中 大 | |
|
|
2018/09/07 00:51:55瀏覽1019|回應0|推薦3 | |
最近搞一個小系統,應該是小系統,可是複雜度卻很瑣碎繁雜。
照理來說,只是個小系統,也不是什麼太創新難以想像的新東西,但卻搞很久。 裡面有各種細節的情況,要都不遺漏,系統的概念就真的是很瑣碎的。 其實會變成這樣大概也很難避免。 決定需求與設計的兩個主要決策者,都沒有把整個系統完整的想過,想到哪設計到哪。 更重要的是,決策者還不是一個人。 兩個人對系統的理解與想像,又有些細節的矛盾。 最後是只要能擠出來交差就好了,傻蛋就不得不收爛攤子了。 這大概是傻蛋這輩子做得最幹的一個專案,這個專案裡集到的怒氣大概是之前十幾年工作的怒氣全部加起來那麼多吧!
不過反正先求能收個尾吧,別做一半,起碼讓系統能動能用吧。 之前的老闆介紹來的,起碼也要留點口碑,至少別讓人看扁了。 反正領人的薪水,至少也要盡點心,能幫多少算多少啦! 不過值得省思的是,這些莫名其妙的複雜度是怎麼冒出來的。
事實上,每增加一點功能或多允許一種操作,都會增加複雜度。 如果對整個系統的設計沒有特別鮮明強烈的定位的話,呵呵。 真的是呵呵。 可以這樣做也可以那樣做,這也行那也行。 人的本性就是希望不要失去選項吧? 所以這也要那也要。 另一種情況是,因為可能的選擇很多,反而很難選。 做決策的人常常就不想管那麼多,別拿這些細節來煩我這樣。 但不可能不做任何決策取捨,因為那會完全無法行動。 所以呢? 就是接受資訊不足的執行者要自己想辦法。 執行者要自己做決策,等於沒人負責啦! 每增加一個人進來,往往就多了一些設計的解讀與想法。 等於是瑣碎的小設計決策越來越多。 而每一個小功能,要讓其使用體驗完善合理,就必須要擦屁股。 越多人參與設計,整體概念就越混亂,最後常常會設計出不知道是什麼的系統。 哈,其實也沒有那麼複雜。 實際上,多數情況下,缺乏定位與整體掌握能力的團隊,也設計不出太複雜的東西。 因為根本做不下去,往往會不了了之。 所以能夠完成的系統,真正達成的功能與發揮的作用很有限。 雖然系統設計得不好,但反正系統規模也大不起來,剩下來的反而都是簡單的東西。 當然,能產生的競爭力自然也就很有限了。 而後面很多複雜度則是,因為設計的規格有瑕疵,但已交付外包,所以不想改,所以得遷就設計改系統架構甚至數據結構。 甚至連各種錯誤訊息也變得微妙抽象起來。 真的做過軟體系統專案的人會知道,那種微妙的複雜度,是真的很噁心。 一個小地方有問題,要不要改? 是問題就要改吧? 要怎麼改,又要溝通與來回。 到處都是小問題,就要這改那改的。 很多巨難用的,設計得讓人匪夷所思的應用程式很多大概就是這樣鍊成的。
也就是說,複雜度會快速增加,直到難以掌控。 發現掌控不了後,放棄當初的野心或白日夢,再砍砍砍,最後只剩下一點點。 好吧,就算溝通能力與管理能力是比較好的,隨著增加的新要素進入,複雜度也是會持續長大的。 一不注意,就會複雜到,到處藏著微妙的邏輯漏洞的那種情況。 要不就自暴自棄,放棄對品質的堅持,一切隨便,要不就要到處補前後需求矛盾而產生的許多邏輯洞。 照這樣來看,人類是沒辦法做成什麼偉大的事的,因為規模一大就完蛋了。
但,其實複雜度還是可以被控制的。 只要做合適的限制與捨棄,讓整個系統往一個高度具焦的核心概念靠攏,是可以避免掉很多複雜度的。 先讓整個系統有個明確而強烈的使命。 想要怎樣改變世界改變未來,想為別人帶來些什麼的想法,而不是自我感覺良好的自我中心白日夢,才能作為凝聚共識的使命與定位的目標。 因為這個使命目標優先於一切,所以在做各種設計決策的時候,選項就能大幅減少。 所有違背,或對強化使命的發展沒幫助的,都不做。 永遠只做和使命達成最攸關的關鍵任務。 使命越是具體而強烈,越是能夠減少各自解讀,人人在設計過程中把自己的屎攪進來滿足存在感的那種誘惑。 強烈的使命感與具體的定位,會讓很多事情因此而得以簡化。 所以說,如果沒有能夠匹配野心的定位與使命感作為核心,而只是本能的求生存或想賺更多錢或掌握更大權力而已,規模越大就會越無能,會發現自己實在能力太有限了! 沒有強烈偏執的目標使命,就很難在規模變大的時候,讓複雜度不失控,保持聚焦,也就無法保持力量與活力。 然後很容易就會產生逃避現實的心態,然後變得更加自我感覺良好,或是消極悲觀,或兩者兼具吧。 這大概是台灣人的通病。 人確實都有能力的瓶頸。 突破瓶頸,需要的是堅定強烈的使命與明確定位。 唯有這樣,才能讓自己專注於發揮所長。 若非如此,大概就只能常常猶豫要這樣還是那樣,希望能夠靠天真的努力得到莫名其妙的回報,那樣懵懵懂懂的面對人生無窮盡的磨難與考驗了吧! |
|
( 不分類|不分類 ) |