2000/08/27

軟體的技術累積性
分類:系統


世界上所有的品牌產品一定有累積性的用戶,無論是日常的生活用品或者是工業性的產品,而這一點在軟體系統上更有說不出的使用習慣,無論是網頁的編排或者是產品的功能表設計,很少有第一版與第二版的軟體系統會變成完全不同的。

我們在系統創新的過程經常會忽略的就是舊有使用者的操作習慣或者是資料的相容性,一套產品除了不斷地創新改版之外,還要考慮之前的操作介面,還要在舊有的習慣下建立累積性,增加競爭者進入的難度,但是在增加功能與使用操作的安排上面,絕對要考慮的就是簡單性與合理性。

我們經常做的事情就是為了創新而創新,為了與別人有差異而創造出不需要的需求,陷入盲目的產品競爭,要跳脫這一類發展的盲點除了上一次所提的歸零的思考之外,就是累積自己的優點,所以我們在軟體系統的開發上面,除了要了解舊有的程式碼之外,還要知道哪些程式碼是我們的競爭優勢,是必須要被模組化重用的,這樣在未來的發展上我們才可以累積我們的優勢,而一般的程式設計師剛接到一個新的產品或是專案的時候,剛開始非常的痛苦,一個大系統不知道從何下手,要增加心的功能加了老半天,錯誤也一大堆,這時候應該適時的跳出來了解一下產品的特色與競爭優勢,進而分析哪些是我們累積的核心程式。

了解了這些舊有的習慣以後,要新增一個功能的時候第二個要考慮的簡單性與合理性,操作過與複雜的子功能,我們寧願把他放棄,因為不會有太多人會去使用它,除非是非常專業的需求,而這時候應該想到的是簡化操作與一些預設值的設立,幫使用者想好操作的參數,以前操作軟體系統的時候很害怕系統問我一大堆數字,結果光填完這些數字天就亮了,還不知道填的對不對。

每一個軟體系統累積技術的方式不一樣,如果是一般的網頁,除了連結的網頁樹狀結構不要亂掉之外,編排的方式也非常的重要,不要新增了一個連結結果一按了之後就回不來了﹔另外使用者的資料庫的維護也非常重要,不要一直讓客戶重複填寫註冊的資料......如果是一般的Windows程式,新增加的功能表的分類要與原來的操作習慣相仿,不要以前用滑鼠的功能,現在只能用鍵盤的鍵來操作之類的......

產品的累積性非常重要,如果您是做專案,要累積專案經驗的方式不一定適用,所以一個公司商業運作的模式一開始就一定要決定是要走產品化路線,或者是專案性路線,雖然其中有一些模糊的中間路線,確認您的目標才不會白做工。

2000/08/12

先把自己變笨,歸零的思考
分類:創新


所有的人類一定會有先入為主的觀念,如果要想出好的點子,好的系統架構,好的可行方案,除了團隊集思廣義之外,就是簡單歸零的思考,您會得到一個很簡單的結論,會設計出可用的系統,這就是先把自己變笨。

一般人經常犯的兩個毛病就是眼高手低與先入為主,總覺得一個市場已經有人先進去了,就看不到未來而想要避開他,或者是做一件事情如果先前已經有做過的經驗,就不會想回頭去做。

舉例來說,一個軟體系統的開發,如果一個資深的軟體工程師開發過了,他可能很少有機會去繼續維護或是加強的機會,因為他覺得他已經做過了而不會想花心思在上面,大部分的人會繼續追求更新的技術,更快速的開發工具,這一點屢試不爽,如果一段程式碼被同一個人看過三次以後,他就一定不會是這段程式碼的主人了!

也因為如此,程式設計的世界品質的掌握需要大量的人力,我們會利用一些檢查表格,一些流程來保證他的品質,而這一點剛好跟速度是剛剛好相反的,而這些流程剛剛好都讓大家覺得自己很笨,為什麼要做這一堆無聊的事情呢?除了與團隊溝通的功能之外,也是一個很好的歸零的思考!

設計一套系統的時候會想的很多,想要給操作人員使用者非常簡便的操作,但是只要利用很簡單的邏輯,拋開以前的包袱,有時候一套一天寫好的簡單工具程式,也可以讓使用者感覺到非常的貼心的。

當我們回頭不斷地review您以前的程式與當時的想法,試著把缺點一項一項的列出來,挑戰自己的主觀,有時候真的很難,放的下是唯一的解法,變笨,試試看!