80/20法則在軟件設計中可行嗎?
對于80/20法則,我想很多人都比較熟悉。該法則認為,你80%的成就來自于20%的努力;或者80%的收益來自20%的客戶。運用到軟件領域,那就是你80%的客戶往往只使用你軟件20%的功能。因此我們自然會問,在軟件開發的過程中能否只留其中20%的功能,而砍掉其余的80%呢?著名博主John D. Cook認為很困難。
事實上,很多人是反對這個推理的,下面是他的反對理由:
或許你的每一位客戶只會使用整個軟件很小的一部分功能,很多情況下沒有人使用的功能會超過5%。但是所有的客戶都在使用著不同的功能,當你把每一位客戶使用的5%加在一起時,你會發現所有的功能都會被使用。比方說微軟的辦公軟件Word很大,我很懷疑有多少人使用該軟件的功能會超過1%,但是其每一個功能都可能會在其它地方被使用到。
這是一個非常關鍵的點,相比于實現這些功能之前,其實現之后也許才是最重要的。一旦發布了一個新的功能,就會有人去使用它;而一旦有人習慣了使用這些功能,那么他們就想要繼續使用它。 假設你的軟件提供了解決某項任務的兩種不同方案:方案一和方案二。一半的使用者選擇了方案一并且已經對此感到滿意,而另一部分用戶則選擇了方案二。此時你不能說把其中的任何一個解決方案去掉,因為去掉任何一個都會令其中的客戶感到不爽。但是如果一開始就只提供方案一,那么所有人都會使用這個唯一方案并且不會感到不爽。 去掉一些功能幾乎是不太可能的事情,如果要簡化現有產品,那么你往往會冒著得罪客戶的風險。但是當你一開始就提供簡化的產品時,同樣的這些客戶不會有任何意見并且樂于使用。 |
或許這也是為什么有些軟件我們使用起來感覺很復雜,覺得很多功能完全沒有必要但是它仍然存在的原因。因為當我們創造了一個新的功能時,可能就培養了一個新的行為習慣,此時要改變這些行為習慣,面臨的阻力就會比較大。當然這就給許多創業團隊帶來了機會,比方說云端筆記Evernote。從功能上說,微軟的OneNote要比Evernote強大許多,但是為什么Evernote仍有機會取得成功呢?或許這就是微軟很難將OneNote簡化所帶來的機會吧!
如果我們能在軟件功能發布之前就預測到哪部份屬于20%,哪部份屬于80%,那么……。當然,如果是這樣,可能就不會有后來者太多機會了。