---
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

### 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 持續做迭代

#### 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:

* Scrum:

#### DevOps
* early release, partial but working software
* continuous integration
* requirements include **testing** related
* **automation** is the key to enabling DevOps
### 比較

## 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

### Combing PLC with Iterative SDLC

## 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.