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