Application Lifecycle Management
開始之前
小故事
巴格王
小調查
你是怎麼寫程式的?
工作流程
六個階段
需求
OOA(Object-Oriented Analysis)1
對需求的不瞭解
PM想的跟客戶要的不一樣,Developer做出來的不是PM要的
扶把害消防設備無法驗收
設計
OOD(Object-Oriented Design)
3 Layer
根據實際狀況調整
開發
OOP(Object-Oriented Programming)
同一個專案,同時維護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
自動化部署