Application Lifecycle Management
開始之前
小故事
巴格王
小調查
你是怎麼寫程式的?
工作流程
六個階段
需求
OOA(Object-Oriented Analysis)1
對需求的不瞭解
PM想的跟客戶要的不一樣,Developer做出來的不是PM要的
扶把害消防設備無法驗收
設計
OOD(Object-Oriented Design)
3 Layer
根據實際狀況調整
開發
OOP(Object-Oriented Programming)
ALM 開發 for C#
LINQ for C#
ADO.NET Entity Framework for C#
同一個專案,同時維護debug和release mode
測試
你如何驗證程式?
需求
實例化
種類
功能驗收測試
效能測試
壓力測試
冒煙測試
ALM 測試
部署
常見問題
應用程式在自己的電腦跑沒有問題
拿到別台電腦就不能跑
建置流程
目的
程式不能只有你自己的電腦能跑
確保每個人拿到程式碼都能夠Build
任何一個人簽入程式碼
TFS會從程式碼版控取得最新的程式碼
然後在TFS上Build
然後在TFS上執行測試
部署流程
自動佈署到測試環境
QA用測試環境測試
QA手動(簽核機制)佈署到正式環境
部署-WebSite
部署-Desktop
部署-SQL
維運
Feedback
Continuous Integration,CI
用途
特性
迷思
『買了CI Server,就可以天下無敵、藥到病除』
流程的改進是要由內至外,由上至下,不論決定使用哪一套CI Server,它不會自動縮短交付時間,不會自動提昇品質,開發/管理人員必需要投入一定的時間持續學習、持續進步。
『犧牲品質可以增加開發速度』
專案不會因為接受低品質的軟體而進行得比較快,也不會因為要求高品質而進行得比較慢,一旦因為低品質而造成無法交付,日後的維護可能要花兩至三倍的時間;我只有在實作Prototype時會犧牲品質
我怎麼做Prototype
『工作單越多代表績效越高』
工作單數量不應該拿來當做績效依據,軟體開發項目有分簡單跟困難,若拿到困難的單子的成員,績效永遠都不好??這會讓工作進度會議看起來像批鬥大會
『軟體工程需要在多人團隊下運行』
管理,最困難的部份在溝通,人數越少,溝通路徑越少,溝通路徑公式P=N(N-1),人數越少溝通路徑越短,就算是一人開發也是能夠使用ALM
Continuous Delivery,CD
自動化部署