軟體開發管理 期中複習
Overview
Software development lifecycle (SDLC)
- 5 stages: Planning, Analysis, Design, Implementation, Maintenance
SDLC model | Status of req. | Type of IS | Example |
---|---|---|---|
Waterfall | must be clear | mission critical,zero tolerance for mistakes | 飛安系統 |
Prototyping | better be clear | UI, UX centric | 遊戲 |
Spiral | unclear / risk-driven | mass-produced | 套裝軟體 |
Incremental | better be clear | large, customized | 客製 ERP |
Agile | unclear is OK | UI, UX centric | 任何軟體都可以使用,但須考慮 communication cost & entire time frame |
ITPM methodology
-
4 PM Objectives:
pm iron triangle
-
Project Liftcycle (PLC)
-
5 phases: Initialization > Planning > Execution > Closure > Evaluation
-
SDLC happened at Execution phase
4 lessons learned
- reusable code
- best practices
- new risks & how the team dealt
- actual data
5 PM Processes
- Initiating > Planning > Executing > Monitoring&Controlling > Closing
- happened each phase in PLC
Project Initialization
define measurable organizational value (MOV)
- should be measurable, verifiable, provide value, agreed
- 6 steps:
- Impact areas: customer / strategic / financial / operational / social
- Value: better / faster / cheaper / do more
- Metric
- Time: when the MOV be achieved?
- Verify: use MVPA
- Summarize: e.g. Increase 1000 new HL newsletter subscribers within 2 years
establish business case (BC)
-
a proposal that states the reason for an IS investment
-
四大關鍵要素
- MOV
- Alts to achieve MOV
- Cost-Benefit Analysis
- Perceived risks
-
7 steps:
- Define MOV
- Seek support from BC stakeholders
- Identify alternatives (default + 5)
- do nothing
- 不使用 IT 來改善流程
- 採用同業系統
- 租用市面上的系統
- 改造現有系統
- 客製新系統
- Identify feasibilities
- Define cost and benifits
- tangible or intangible?
- one-time or recurring?
- Analyze alternatives using financial models and scoring models
- Propose and support the recommendation
-
Financial models
-
Breakeven Point
- 某系統開發成本 100,000 元,單品獲利 5 元 → 20,000
-
Cost-Benefit Analysis
-
- : total cost
- : discount rate
- : time period
-
-
Project Planning
- after BC approved, establish Project Infrastructure
- Project Charter: 給所有 stakeholders 的原則
- Project Plan: 給內部 stakeholders 的細節
- to close the planning phase need 3 things:
- PC + PP + kick-off meeting
Project Scope Mgt.
- Planning scope
- Scope is largely determined by requirements:
- Functional requirement: to make the system run
- Non-Functional requirement: to make the system run better
- Scope is largely determined by requirements:
- Collect requirements
- Gathering: interview, survey, field study, workshops, JAD...
- Prioritizing:
- MoSCoW: must, should, could, want
- The Kano Method: 缺少當然會失敗、一維需要維持、魅力是獲利關鍵
- Defining (the 7 criterias)
- correct: 符合所需
- unambiguous: 定義明確
- verifiable
- consistent: 跟其他需求不衝突
- complete: 描述需有使用者與動詞
- traceable
- modifiable
- Defining Scope
- scope statement: what is and what is not, to be delivered in the project?
- product scope: what features need in the product?
- using use-case diagram + context diagram
- project scope: what deliverables need to support the development
- using Deliverable Structure Chart
- Creating WBS
- a tool to define tasks to fulfill the deliverables
- Tasks are the lowest level, each < 80 hrs
- Work package is a group of tasks
- we can define Milestones at the end of work package
- three types:
- procedure oriented: focus on process (suit for Waterfall)
- product oriented: focus on output (suit for Agile)
- hybrid
- Verifying Scope
- Controlling Scope
- mitigates the 4 typical scope mgt. problems:
- Scope Grope (定義不明確)
- Scope Creep (增減原本不在範圍內的功能)
- Scope Leap (範圍巨變)
- Gold Plating (幫不必要的功能鍍金)
- tools
- Requirement Traceability Matrix (RTM):
- House of Quality
- House of Quality
- Scope change request form
- Requirement Traceability Matrix (RTM):
- mitigates the 4 typical scope mgt. problems:
Project Time Mgt.
-
Defining tasks using activity list
-
Sequencing tasks
- 4 relationships:
- Finish to Start (FS): 大隊接力
- Finish to Finish (FF): 最後的 task 結束後專案才能結束
- Start to Start (SS): 開始寫 testcase 之後測試才可以開始
- Start to Finish (SF): 老師開始講課後助教才能離開
- 4 dependencies:
- Mandatory (強制)
- Discretionary (不強制)
- Extrenal (between project and non-project activities)
- Internal (between project activities)
- 4 relationships:
-
Estimating task resources
- 3 major resources: People, Equipment, Material
- consider technical difficulty & availability
-
Estimating task duration
- Top-down: sponsor determine overall time, then breakdown with WBS
- Bottom-up: task-owners determine task time, then sum up
- Delphi Method: involves experience experts
- 3-Point Estimate:
-
- : optimistic completion time
- : pessimistic completion time
- : most likely completion time
- obtain by previous project's actual data
-
-
Developing project schedule
-
establish the paths/network of tasks using PDM (Activity on Node) or ADM (Activity on Arrow)
-
evaluation using PERT
- for per task: - slack time = = - Critical Path: the bottleneck path with 0 slack time
-
PERT 5 steps:
- establish WBS to obtain tasks
- determine the sequences of the tasks
- use 3-point estimation to compute duration
- establish project's PERT
- eastblish a Gnatt chart
-
-
Controlling the schedule
-
Time-Boxing
- fixed time allocated to a planned task, stop working once time up
- often used in Agile
-
Resource Leveling
e.g. A1, A2, B1, B2 shared same resources- splitting a task need to consider cost for Interruption of switching and Resuming a task
-
Critical Chain Project Mgt. (CCPM)
-
people often inflate their estimateion since
- your work depends on someone unreliable
- past bad experience that things did not go as planned
- the worry of project change
-
but project still late since
- Student's Syndrome: 拖延症
- Parkinson's Law: 如果提早匯報完成,下次能運用的時間可能會減少
- Multitasking / Resource Contention: 通常一個人不會只參與一個 task
-
CCPM approach: place 3 safety buffers instead of adding safety to each task
- Feeding buffer: add when a task is a feeder to tasks on critical path
- Resource buffer: add when a task has shared resources - End-of-project buffer
-
-
Schedule Compression
- Crashing (趕工)
- increase cost to decrease the duration of tasks
- Fast Tracking (同步進行)
- parallel performaing the ordered tasks
- no dependency between parallel tasks
- only useful for tasks on critical path
- Crashing (趕工)
-
Project Cost Mgt.
-
PM approach:
- Compute & Sum up direct costs of each tasks in WBS
- Add other costs for the project
- Indirect costs: 日常營運支出,通常用 coefficient 來當參考
- Sunk costs: 已發生的成本 (e.g. cost of previous failed project)
- Learning curve
- Reserves: 用於突發事件的預備金,無使用(風險管理得當)則成為獲利
-
SE approach
-
non-coding work can be estimate by the PM approach
-
to estimate software program:
-
Lines of Code
-
Function Points
- estimate based on functionality defined by users
- available in the earlier stage
- 5 function types in 2 categories
- Data Function Type
- ILF: Internal Logical File (內部資料庫) (讀取不算)
- EIF: External Interface File (外部資料庫)
- Transaction Function Type
- EI: External Input
- EO: External Output
- EQ: External Inquiry
- Data Function Type
- Early-phase FP:
- Obtain context diagram
- Indentify the 5 function types and weight by complexity level (given by company)
- Consider adjustment factors by answering the 14 questions
- Calculate the adjusted FP
- Design-phase FP:
- As layout become clearer, we can obtain following information to better determine the complexity:
- RET: Record Element Type (sub-tables)
- DET: Data Element Type (data field)
- FTR: File Type Reference (# of tables = ILF + EIF)
- As layout become clearer, we can obtain following information to better determine the complexity:
-
COCOMO (COnstructive Cost Model)
1. Decide Type Organic Semi-Detached Embedded 2. 3. 4.
-
-
Project Risk Mgt.
-
Definition:
- Risk: the effect of uncertainty on objectives, includes both negative & positive impacts
- If not well handle: Risk → Crisis (loss caused by risks) → Disaster
- Residual Risk: same risk remains after all response implemented
- Secondary Risk: side effects of implementing a response
-
Risk Management:
-
Create a Risk Plan
-
Indentify Risk
- common risks: Technical, Managerial, Organizational, Customer, Supplier
- Systemic Framework: 從中心 (MOV) 開始,依序向外檢查每一層是否有危害到上一層的因素
- Risk Register: register identified risks and assign risk owner
-
Analyze Risks
- Qualitative risk assessment:
- Decision Tree Analysis
- Risk Impact Table
- Tusler's Risk Identification Scheme
- Probability/Impact Risk Rating Matrix
- Quantiitative: observe the likeliness of a risk by probability distribution
- Qualitative risk assessment:
-
Develop Risk Strategies
-
Strategies:
- Accept/Ignore: for low prob. and low impact
- Avoidance: eliminate the possibility
- Mitigate: to reduce the likelihood or impact
- Transfer: transfer risk ownership, e.g. buying insurance
- Diversify: spreading risk out to limit negative effects on us
- Escalate: reporting to higher level for help
-
Reserve:
- 已知風險 → Contingency Reserve (CR): 風險發生時由 PM 支用
- 未知風險 → Management Reserve (MR): 全公司共用,發生時由高層動用
-
-
Monitor and Control
-
Respond and Evaluate
-
Project Progress Mgt.
- Burn-down chart: managing the progress to implement the scope
- Earned Value Method
- Parameters:
- Planned Value (PV): the budget we planned to pay for an task
- Budgeted At Completion (BAC): total budget for project
- Actual Cost (AC): actual cost we have to pay for completing an task
- Earned Value (EV): the budget we should pay for the completed work
- We expect to complete 4 tasks (10k each) in this month. (BAC = 40k)
However only 2 task complete in the end (EV = 20k), and each task cost 15k. (AC = 30k)
- Cost Metrics
- Cost Variance:
- Cost Performance Index:
- Schedule Metrics
- Schedule Variance:
- Schedule Performance Index:
- forecasting: Estimate at Completion (EAC)
- typical (we believe the variances WILL continue):
- atypical (we believe the variances WILL NOT continue):
- Parameters:
- Managing by Issue
- Anomalies (異常): cost, time , scope related
- Defects (缺失): quality related
- 沒有 follow SOP 也算缺失
Project Quality Mgt.
-
the 3 types of requirements:
- Project: budget, time, resources, people
- Product: include software and non-software deliverables
- Process: how the products are made
-
Costs of Quality (CoQ)
- CoPQ: cost of poor qulity
- ICF: internal costs (e.g. 測試時發現的錯誤)
- ECF: external costs (e.g. 使用者客訴)
- CoGQ: cost of good quality
- AppC: appraisal costs (e.g. 評鑑、認證)
- PrevC: prevention costs (e.g. 設計驗證、開發測試)
- CoPQ: cost of poor qulity
-
品管進化歷程: (quality by) Ispection → Manufactoring → Design → Management → Culture
-
Quality Management Standards
- For Product: 食品標章...
- For Process: ISO, 6-Sigma, CMMI
- CMMI (Capability Maturity Model Integration) v1.3
- project's Maturity level is determined by process areas and their Capability levels
- 22 process areas
- each has specific goals, where each goal has specific proctices
- develop generic goals and generic practices for sustainability
-
Establish PQM Plan
- Establish Quality Policies
- Develop Metrics for selected Standard
- consider the 3 types of requirements
- Plan Quality Assurance (QA)
- V&V:
- Verification (VER): Are we building the product in the right way?
- focus on process
- ensure the process are repeatable, the artifacts are of quality
- Validation (VAL): Did we build the right product?
- focus on product
- ensure the system to serve user needs in intended environment
- Verification (VER): Are we building the product in the right way?
- Methods of V&V:
- Review (most VER):
- Management review
- Technical review
- List-based inspection
- Walk-through
- Audit
- Test (both):
- unit testing
- integration testing
- systems testing
- acceptance testing
- regression testing
- Simulation (most VAL)
- Demonstration (most VAL)
- Pilot Try (most VAL)
- Review (most VER):
- V&V:
- Plan Quality Control (QC)
- monitor the quality of results, take corrective actions on the deviations
- QA 和 QC 的區分需要看成果的定義
- 在成果產出之前的預防 → QA
- 在成果產出之後的檢查 → QC
- Continual Improvement: PDCA, IDEAL