從程序員一路走來,我們中有多少人都曾熱衷于系統功能的大而全,那些可有可無的配置功能,以及僅僅作為修飾的個性化定制。雖然這些功能都似乎能為我們的產品增光添彩,但它們真的是用戶最需要的嗎?如果讓我們回到過去,我們還會堅持付出那些代價去實現這些功能嗎?藍鷗資深講師為大家總結了程序員開發的時候應該注意的一些問題。
優秀的系統絕不可能憑空產生,它也沒有一個統一的標準,眾多選擇中作出平衡與取舍。該使用什么樣的架構,采用哪種技術,在這個功能中使用什么設計模式,采用何種緩存策略等等,這些都需要我們根據當時的環境、資源、用戶等要素做出恰當的選擇。與其提供很多功能而最終用戶卻始終覺得不好用,倒不如做好一個能真正幫助用戶解決問題的功能,讓用戶覺得,“嗯,這樣就挺好”,然后再進一步,“如果能…就會更好了”,這樣一步一步做出理想的產品來。
我們在系統設計與開發時應該盡可能避免的問題:
不盲目使用新技術:新技術意味著風險和不確定的代價(多因修補未知缺陷引起),因此我所在的金融行業里,很少會選擇那些新生技術(1年內),而更傾向于選擇成熟且穩定發展中的技術或框架。
避免過度設計:過度設計源于系統設計者沒有理解用戶的真正需求,而將自認為有必要的功能附加于系統之上。而前面提到的可配置、個性化等就是那些最典型的例子。要避免過度設計其實也很簡單,要做到多看(看那些優秀的系統是如何設計類似功能的),多想(站在用戶的角度去想他們所提需求背后真正的痛點和問題是什么),多做(不要只停留在需求文檔上,盡可能快地做出能夠驗證需求的功能原型,然后與用戶不斷確認和改進),多說(在每一個階段都與用戶保持持續有效的溝通)。
不在項目中技術鍍金:技術鍍金指的是開發人員在項目開發中過于追求技術的完美性,試圖在技術上鍍上一層完美的金殼,導致軟件開發工作量加大,項目時間拉長,而最終有可能導致整個項目的失敗。我們不應該否定程序員追求完美的自我要求,但應該在項目中引導他們正確地理解“這樣就好”的理念,幫助他們平衡追求完美與項目現實要求之間的關系,從而作出最恰當的技術方案選擇。