結構師的互動準則其實就是徹底、謹慎、和諧的與人交流。儘早的交流和持續溝通能夠使結構師有較好的成本意識,以及使開發人員獲得對設計的信心,並且不會混淆各自的責任分工。
面對估算過高的難題,結構師有兩個選擇:削減設計或者採用成本更低的方法。然而後者並不是結構師能夠控制的,這是在向開發人員提出要求。此時,結構師想要發揮自己的作用,必須:
- 牢記是開發人員承擔著創造性功能的實現責任,結構師只能提出建議。
- 能夠為自己所制定的某項說明提供一種建議的實現方法,並且準備接收任何其他可行的方法。
- 對開發人員的建議保持低調和平靜。
- 準備放棄對自己提出的建議的堅持。
- 聽取開發人員在體系結構上改進的建議。
在開發第一個系統時,結構師傾向於精煉和簡潔,他知道自己對正在進行的任務不夠了解,所以會謹慎仔細的工作。當第一個專案結束之後,結構師會信心滿滿,準備設計第二個類似的系統。然而,這第二個系統通常人們所設計的最“危險”的系統,通常都會被過分的進行設計。
在這裡例舉了一個OS/360的例子,大概意思就是,結構人員有了第一次的經驗之後,習慣性的為新系統增加了過多的修飾功能和想法,導致新系統粗糙、浪費、缺乏優雅。
結構師需要避免這樣畫蛇添足的事情發生,需要有意識的運用自我約束準則避免功能的過度裝飾,要根據系統基本理念及目的來權衡功能取捨。結構師必須要有超過兩個以上的系統開發經驗,才能確保原則上的概念和目標在詳細設計中得到完整體現。
在上一章中,作者表名了結構師的工作是一種無需任何歉意的貴族專制,可是專制並不代表任性,反而需要他們認真謹慎,虛懷若谷。不僅要有自己的想法,還要善於聽取他人建議,並最終做出決定。可見,能成為結構師的人並不一定是技術大牛,踏實、善於溝通、有責任心才是最重要的。
無論結構師多麼優秀,他們也會犯過度設計
的錯誤。從現在來看,單個軟體的使用人群需要越來越大公司才能發展,結構師就需要不斷的為許多不確定人群而設計軟體。但是通常來說,設計通用的專案比設計專用的專案更加困難。這時就容易出現許多盲目的功能,過多的向產品新增過於邊際的功能,所以我們能夠看到很多APP都會推出一個“極速版”,這個極速版就是為了防止某些使用者因為功能增加,而放棄使用產品的情況。
數百萬的使用者,能夠提出上千個特色功能,這些需求對於結構師的誘惑是極大的,可是有經驗的結構師往往就懂得權衡整體利益。
例如他們會明確的定義使用者群
,這是獲得概念完整性的一種重要方法,經常需要分析使用者是誰、使用者需要什麼、使用者認為自己需要什麼、使用者想要什麼。
還有另一個方法就是分析需求場景出現的頻率
,之所以頻率需要通過結構師人為分析而來,而不是調查而來,一方面是因為調查成本太高,另一方面通過結構師對頻率進行猜測可以讓產品使用者群的形象更加清晰。不過當那些非常重要的決策需要取決於某些猜測時,還是會花費精力來取得更準確的估計。
總之,為了避免過度設計,一定要清晰使用者群體和需求頻率,哪怕是錯誤的也比不清晰來的強。