--- tags: Software Project Management --- # 02 - ITPM Methodology in Software Development Processes Software development consists of two parts: 1. Software Engineering of developing the IS 2. Project Management of the development ## Engineering the software development ### Software / System development Lifecycle (SDLC) * Planning * Analysis * Design * Implementation * Maintenance ![](https://i.imgur.com/FPm77j6.jpg) ### SDLC Models 1. Sequential approach (序列型):waterfall model 2. Iterative / Cyclic approaches (週期型): * Prototyping * Spiral model * Incremental model * Agile methodology and two models * DevOps model #### Waterfall Model * 各階段都要等完成後才可以進到下個階段 * 適用時機:requirements 清楚定義時 #### Prototyping Model 在 system prototype 持續做迭代 ![](https://i.imgur.com/N3xO1ZZ.png) #### Spiral Model * A risk-oriented model emphasizes on **marketing orientation** * 主要用於開發給企業、大眾的套裝軟體,(e.g., Microsoft 365), 開發時要不斷觀察競品以符合大眾需求 #### Incremental Model * 每次都 focus 在某一個新子系統,待新子系統完成後才可以與已開發子系統做整合 * 會有很多次的驗收與上線 #### Agile 重視 speed & uncertainty。speed 是指 customer 可以快速看到產品部分樣貌,不等於專案早結束。 Some Agiles principles: * early and continuous delivery of valuable software (docs are less emphasized in the development) * working frequently with a shorter timescale (1 - 4 weeks) * embrace changes * work together throughout the project * workable software is the primary measure of progress Some important concepts in Agile 1. User requirements first documented as **user stories** 2. Document user stories in object oriented models called **use case diagrams** (使用案例圖) & **class diagrams** (類別圖) 3. Transfer the system in a series of versions called **Releases** 4. Two major operational model: XP & Scrum * XP: ![](https://i.imgur.com/ouhfIlQ.png) * Scrum: ![](https://i.imgur.com/NmmcJab.png) #### DevOps * early release, partial but working software * continuous integration * requirements include **testing** related * **automation** is the key to enabling DevOps ### 比較 ![](https://i.imgur.com/I7yeezQ.png) ## Managing the software development: ITPM ### Project Lifecycle (PLC) * Projects are divided into phases to increase manageability * ++Checkpoints, milestones at the end of each phase++ (evaluate performance) * Fast tracking: 在某階段驗收時也開始進行下一階段工作 * It can be risky, because 工作依存關係或資金周轉問題 ### Five PLC Phases 1. Initialization * define project goal - ie., MOV, get project approved * deliverables: business case (業務理由、投資構想書) 2. Planning * plan the following: * 4 management objectives - C.S.T.Q. * tasks & resources * risks that may damage the planned C.S.T.Q. * communications, stakeholders involvement & commitment, change control * deliverables: project charter (所有 stakeholders 都要 follow), project execution plan, contract 3. Execution * Execute the project plan and control the C.S.T.Q. * deliverables: test plans, test reports, monitoring reports, change reports 4. Closure * Including Complete (終止) or Premature (中止 - sth. went wrong) * deliverables: acceptance report, user manual 5. Evaluation * review the project - 針對團隊內及團隊外 (客戶) 進行評價 * evaluate if the project meets the MOV * collect **lessons-learned** (developer side) * reusable code / APIs * innovative best practices * new risks & how the team dealt with them * project's **actual data** (時間、成本、資料) * deliverables: project evaluation report ## Combing PLC with SDLC ### Combing PLC with Sequential SDLC ![](https://i.imgur.com/nOQAEgV.png) ### Combing PLC with Iterative SDLC ![](https://i.imgur.com/D5avBUG.png) ## Five Project Management Processes **Different from the 5 PLC phases** 1. Initiating signal the start of the work, 通常是完成前一個任務後 2. Planning plan the work 3. Executing focus on **coordinating** people and resources 4. Monitoring & Controlling * monitoring: measure the performance * controlling: analyze the variances between actual and planned results and take appropriate **corrective actions** 5. Closing take **acceptance test** to end the work **PLC 的每個 phase 都可以 run 完整的 PM processes** ## PM Methodology * 4 Project Management Objectives: Cost, Scope, Time, Quality - 形成 PM 鐵三角 * 5 PM Processes Initiating, Planning, Executing, Controlling, Closing * Project goal vs. PM objectives in PLC * project goal is set in the initializing phase (願景) * 4 PM Objectives are set in the planning phase * use 5 PM processes to carry out the PLC * use 10 PMBOKs to manage C.S.T.Q.