如果引用或轉貼,麻煩註明出處與本網誌連結,否則視為侵權。

2004年9月30日

[答客問]開發速度重要還是分析設計重要

就本文我列出幾點看法:
1.有制度的公司會做好軟體的Configuration Management, 在軟體工程學中的Configuration management是指軟體開發專案過程中的所有components均會做好管理, 包含: 專案計畫文件, 需求分析文件, 設計規格, 程式碼, Test Cases and results文件,使用者手冊, 系統管理手冊, 等等, 當任何一部分修改或改版能找到關聯的文件並加以修改.
而這些管理為的好處有:
a. 維持營運: 需求變更能有效率的找到相關應修改的文件, 完成客戶的需求, 功能變更, 加強, 改版, 能從利用既存文件上修定新版, 產品即時上市
b. 永續經營: 不因職務變動或人事異動影響公司營運或產品的維護及發展
c. 知識管理: 借由一個專案經驗的留存, 可以將成功模式複製, 並可借以培訓新人

2.公司營運以獲利為第一考量, 當短期獲利無法達成時則不會考慮上面的管理問題, 另外管理需要成本的, 如人力時間, 工具等, 我認為微軟或HP在車庫創業時代也不會有完整的系統文件的. 不要過於怪罪不合理的現狀.

3.主管觀念不正確時, 溝通是很重要的, 瞭解為何主管不重視文件的建立, 將自己的想法與建議提出, 找出合適於組織的方法, 有時好的理想在推動時會遭遇到許多困難的, 而跨組織的推動更是困難. 從主管的立場思考, 不管將來您昇到甚麼職務都會更順利的

4.>"沒有所謂的文件也沒關係,只要有程式碼就可以了,寫程式是越快完成越好。只要看的懂程式就可以了,對一套系統只要知道它的架構就可以了,也不用花那麼多的時間去瞭解"

在Steve McConnell, "Code Complete: a practical handbook of software construction" 一書中(chapter 19)提到"優良的programming style就是最直接的說明文件", 甚麼是優良的programming style,包含好的program structure,可讀性高的程式, 適當的變數及constant name and routine name, 結構化的程式外觀, 簡捷的程式流程與資料結構,不可少的註解等

這段話是說給programmer聽的, 但是如何讓每個programmer能做好這點就比較困難了, 主管可以做的是inspection management, 訂定一套大家可以遵循的程式設計規範, 如程式開端與程式內註解的規格, 變數,常數,程式,副程式等元件的命名規則, 然後制定檢核文件, 程式publish前先進行inspection(檢核),此工作可由主管,品管人員, 或其它programmer來執行

5.當同為程式設計師的角色, 也許軟體工程訓練不會讓您特別突出及優秀, 但是若為SA or PM時這將會是很重要的, 制度的建立是需要時間及熱忱的推動者與主管的支持, 同仁的配合, 因此建立組織影響力, 分享專業知識, 勇於承擔責任, 那麼不但在工作上或個人價值上都可以提昇

6.在困境中往往更容易刺激人的思考及學習, 因此讓個人成長, 不如意的環境也可能成為您成長的一種動力
-Fred 20030506

沒有留言:

張貼留言

歡迎提供意見, 謝謝 (註 : 留言經過版主審核通過才會發布)