2008年8月23日 星期六

Developer 的試煉

[Original published date: 7/12/2007 9:08:17 PM]

Developer 的工作,將不再只是開發出使用者所需功能而已!

我曾在出版的書籍『Visual C# 2005 資訊安全程式設計』提到程式 Developer 所應具備的基本觀念,也就是 Developer 的工作,將不再只是開發出使用者所需功能而已,還必須具備資訊安全的知識,從系統分析階段開始,直到軟體系統釋出為止,在每個環節都必須顧及到資訊安全的細節,包含程式碼本身的強固性、可靠性等。上述的觀念,乃是因為網際網路興起,系統安全逐漸受到重視,故我認為 Developer 必須具備充足的資訊安全知識,如此方能產出應用在現今複雜、攻擊行為不斷的網際網路執行環境上之系統程式。

該書提到的觀念是完全從技術的角度出發,然而,在整個軟體開發流程中,Developer 除了技術本質學能外,還有哪些觀念必須要建立呢?在目前公司工作了一陣子,出差到美國參加 workshop 後,在我腦中有了個概念,我將他稱之為『匠心』!程式開發在本質上屬於邏輯思維的創作,它跟製造業呆板的製程不同,因此,將程式、軟體比喻成藝術創作,遠比將他形容成產品還來得恰當許多,因此,軟體 Developer 在相當程度上與工匠相當類似。然而,工匠何其多,但被尊為大師的卻非常稀少,有何不同?有無『匠心』而已。

稱職的工匠,打造出的作品能切合使用者的需求,但是大師級的作品,除了切合需求之外,還進一步抓到了使用者的心,那也許是多一點的體貼設計,也許是前所未有的創新,讓人驚豔!更重要的是,對於其每一份作品,他都視為本身的延伸,作品即代表了工匠者本人,故任何符合完成標準的作品,創作者本身皆感到無比的驕傲!這就是匠心。套用在 Developer 上,就是自我激勵、自我要求,對程式碼本身的品質、可靠性及創意不斷精進,進而感到驕傲!這就是 Developer 的匠心!如此一來,Debug 將不再是痛苦的工作,它成為一種邁向完美的試煉!在軟體開發組織當中,如此一來,程式品質自然能提升,遞交到 QA 手上時,自然已有相當程度的水準!

匠心的另一種展現,就是對於使用者的真正體察!一個稱職的 Developer,不僅要釐清功能需求,還需要問為何有此些功能需求!在很多情況下,使用者所提出的需求並不能解決他的真正問題,因為使用者自己並非解決問題的專家,因此,主動的提出質疑,釐清使用者需求背後的真正動機,在修正過後,與使用者一同重新擬定需求列表,方為 Developer 另一種匠心的展現!Developer 若能以提升匠心自我要求,則其作品:程式碼、軟體不僅符合了使用者實用的需求,同時也滿足了使用者的心。達此境界,Developer 的大師風範便於焉行成了!

[re-post this article due to database crash.]

沒有留言: