Ruddy Lee 分享空間

Emergent Design 演化設計

消化需求,拯救這個世界

with 2 comments

.

程式碼不會改變這個世界,需求才會。

.

專家.png

PO及開發團隊對需求了解程度圖示(註1)

.

》工程師在開發程式的過程中,經常會覺得自己才是最了解這個行業的人士(上圖中的藍色曲線說明了這一點)。

.

【圖示說明】

縱軸是對需求了解的專業度,橫軸是開發的時間,描述的是ㄧ個sprint 的開發週期。

.① 是程式設計人員一邊進行程式開發,一邊持續吸收專業知識,迅速成為行業的專家。

.② 綠色的線條,指的是需求的提出者 PO,他由對產品的初步構想一直到工程師交付產品後的知識變化曲線。

.③ 藍色的線條,指的是開發團隊,由對產品的一無所知開始學習的路程,一直到達 ① 的至高點成為行業的專家,再到交付後對專業知識的迅速遺忘的曲線。

.④ 通過定義完成(DOD)點時,工程師的專業知識迅速下降,但 PO 透過對產品的學習操作,維持了它對產品的認知。

 

.

寫程式是一種學習的過程

程式設計人員是知識的消化者。他們在大量的訊息中尋找有用的知識。透過無數次的排列組合,努力的從凌散龐大的訊息中尋找組合出一幅看起來有意義的簡單圖示,它們是一串讓我們感覺得出意義來的模型圖示。然後在似懂非懂又隱含著抽象跟模糊不清的一堆想法下,我們開始以嘗試錯誤的方式來撰寫程式的過程(此時;在我們腦海裡的模型越是清晰明確,寫出來的程式就越加實用持久)。

其實一開始我們知道得很少,知識隱含在很多人和許多文件中,當然其中也夾雜著許多無用的知識,所以在寫程式的過程裡我們必需持續的去請教專家或通過搜尋再進行過濾學習。一直到上圖 ① 的地步,程式設計人員經由學習而逐漸成為行業的專家。

.

成為高效的知識消化者

好的程式設計人員需要能夠迅速累積專業知識,當然我們不可能真正成為所有建構軟體的從業人員,所以我們快速獲得的知識也會迅速的遺失。但上圖中那個紅點的高度以及那條曲線的斜率,決定了程式設計師交卷時的品質及時間。(請注意,程式設計人員往往是一個團隊,而不僅僅是一個人)如果我們學得越快越好,也就是對所開發軟體的行業知識認識得越深(也就是上面提到的那個知識模型,一般我們稱它為領域知識模型),則明顯的開發出來的軟體會越優秀對環境的適應性越佳,也就有著較長的軟體生命週期,反之;則可能只是達到使用者足以操作而生命週期十分短暫的軟體。

如 ④ 所顯示的曲線迅速下滑區。所有的專案都會有這個知識遺失期。在團隊裡頭學到這些知識的人員,可能又去做其他的工作了,當然團隊也可能解散或重組去進行其它的任務。要避免或減少大量知識遺失的最佳方法,就是透過作成文件來記錄避免知識的掉失。所以工程師除了高效學習之外,要培養做好文件及使自己能夠從文件中培養迅速學習知識的雙向能力。

.

【圖示說明】

Ready 的綠色區域,我們稱之為 DOR: Definition Of Ready定義「文件備妥區」。Sprint 從這裡開始,它是需求品質的把關點。

Done 的紅色區域,我們稱之為 DOD: Definition Of Done 「定義完成區」。Sprint 結束在這裡,這裡是產品品質的關鍵點。

簡單的解讀:

》當 ① 的專業知識點越高,則表示團隊對需求的了解越深,程式便可能更優秀,有著更高的實用性及擴展度。

》當DOR 與 DOD的區間越小,則表示工程師的學習能力越強,團隊開發的效能越高。

※我們可以透過看板方法的累積流程圖來得到這些數據。

.

是需求在改變這個世界

我是一個軟體工程師,但我立志要拯救這個世界(Save the world. 每回說到這裡大家都會哈哈大笑! 這是多年以前從電影裡學到的,但老實說沒在開玩笑,我終身信奉)。這是我的志願,而達成它的作法則是透過不斷為他人增加價值(是的,是透過為別人增加加值,來提升自己的價值,也就是透過撰寫一些真正有用的軟體來貢獻社會),為人們服務,給人們他們所想要的東西,當然前提是要知道他想要的是什麼,也就是弄清楚需求。原因;是我體會到不是我們的程式碼在改變這個世界,而是需求在改變這個世界,而我們透過持續的努力來滿足他,來創造這個價值,至於成功嘛,則只是伴隨而來的紅利罷了。

.

工程師的職責就是消化需求,拯救這個世界。

.

 

註 1. 參考 Ken.Power 對 DOR: Definition Of Ready 的說明圖示

.

 

 

 

Written by ruddyllee

2016 年 10 月 27 日 於 14:50:46

2 回應

Subscribe to comments with RSS.

  1. 很讚!加油!

    Angel創意記

    2016 年 11 月 10 日 at 10:07:56


發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: