Bob Cheng
Other

軟體開發管理 期中複習

Overview

Software development lifecycle (SDLC)

  • 5 stages: Planning, Analysis, Design, Implementation, Maintenance
SDLC modelStatus of req.Type of ISExample
Waterfallmust be clearmission critical,zero tolerance for mistakes飛安系統
Prototypingbetter be clearUI, UX centric遊戲
Spiralunclear / risk-drivenmass-produced套裝軟體
Incrementalbetter be clearlarge, customized客製 ERP
Agileunclear is OKUI, 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:
    1. Impact areas: customer / strategic / financial / operational / social
    2. Value: better / faster / cheaper / do more
    3. Metric
    4. Time: when the MOV be achieved?
    5. Verify: use MVPA
    6. 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:

    1. Define MOV
    2. Seek support from BC stakeholders
    3. Identify alternatives (default + 5)
      • do nothing
      • 不使用 IT 來改善流程
      • 採用同業系統
      • 租用市面上的系統
      • 改造現有系統
      • 客製新系統
    4. Identify feasibilities
    5. Define cost and benifits
      • tangible or intangible?
      • one-time or recurring?
    6. Analyze alternatives using financial models and scoring models
    7. Propose and support the recommendation
  • Financial models

    • Breakeven Point

      • Breakeven Point=Initial Investment/Net Profit Margin\text{Breakeven Point} = \text{Initial Investment} / \text{Net Profit Margin}
      • 某系統開發成本 100,000 元,單品獲利 5 元 → 20,000
    • Cost-Benefit Analysis

      • Net Present Value=I0+(Net Cash Flow/(1+r)t)\text{Net Present Value} = -I_0 + \sum{\left(\text{Net Cash Flow} / (1+r)^t\right)}
        • II: total cost
        • rr: discount rate
        • tt: time period
      • ROI=NPV/I\text{ROI} = \text{NPV} / I

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.

  1. Planning scope
    • Scope is largely determined by requirements:
      • Functional requirement: to make the system run
      • Non-Functional requirement: to make the system run better
  2. Collect requirements
    1. Gathering: interview, survey, field study, workshops, JAD...
    2. Prioritizing:
      • MoSCoW: must, should, could, want
      • The Kano Method: 缺少當然會失敗、一維需要維持、魅力是獲利關鍵
    3. Defining (the 7 criterias)
      • correct: 符合所需
      • unambiguous: 定義明確
      • verifiable
      • consistent: 跟其他需求不衝突
      • complete: 描述需有使用者與動詞
      • traceable
      • modifiable
  3. 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
  4. 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
  5. Verifying Scope
  6. 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
      • Scope change request form

Project Time Mgt.

  1. Defining tasks using activity list

  2. 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)
  3. Estimating task resources

    • 3 major resources: People, Equipment, Material
    • consider technical difficulty & availability
  4. 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:
      • Estimate Time=(o+4r+p)/6\text{Estimate Time} = (o + 4r + p)/6
        • oo: optimistic completion time
        • pp: pessimistic completion time
        • rr: most likely completion time
        • obtain by previous project's actual data
  5. 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: ES,LS,EF,LFES, LS, EF, LF - slack time = LSEFLS-EF = LFEFLF-EF - Critical Path: the bottleneck path with 0 slack time
    • PERT 5 steps:

      1. establish WBS to obtain tasks
      2. determine the sequences of the tasks
      3. use 3-point estimation to compute duration
      4. establish project's PERT
      5. eastblish a Gnatt chart
  6. 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

Project Cost Mgt.

  • PM approach:

    1. Compute & Sum up direct costs of each tasks in WBS
    2. 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
        • Early-phase FP:
          1. Obtain context diagram
          2. Indentify the 5 function types and weight by complexity level (given by company)
            • UFP=weighted FP\text{UFP} = \sum \text{weighted FP}
          3. Consider adjustment factors by answering the 14 questions
            • VAF=0.65+0.01×i=114Xi\text{VAF} = 0.65 + 0.01 \times \sum_{i=1}^{14}X_i
          4. Calculate the adjusted FP
            • AFP=UFP×VAF\text{AFP} = \text{UFP} \times \text{VAF}
        • 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)
      • COCOMO (COnstructive Cost Model)

        1. Decide TypeOrganicSemi-DetachedEmbedded
        2. Effort=M×KLOCN\text{Effort} = M \times \text{KLOC}^NM=2.4,N=1.05M=2.4, N=1.05M=3,N=1.12M=3, N=1.12M=3.6,N=1.2M=3.6, N=1.2
        3. Duration=2.5×EffortN\text{Duration} = 2.5 \times \text{Effort}^NN=0.38N=0.38N=0.35N=0.35N=0.32N=0.32
        4. People=Effort/Duration\text{People} = \text{Effort} / \text{Duration}

Project Risk Mgt.

  • Definition:

    • Risk: the effect of uncertainty on objectives, includes both negative & positive impacts
    • If not well handle: RiskCrisis (loss caused by risks) → Disaster
    • Residual Risk: same risk remains after all response implemented
    • Secondary Risk: side effects of implementing a response
  • Risk Management:

    1. Create a Risk Plan

    2. Indentify Risk

      • common risks: Technical, Managerial, Organizational, Customer, Supplier
      • Systemic Framework: 從中心 (MOV) 開始,依序向外檢查每一層是否有危害到上一層的因素
      • Risk Register: register identified risks and assign risk owner
    3. Analyze Risks

      • Qualitative risk assessment: Risk Exposure=Probability×Impact\text{Risk Exposure} = \text{Probability} \times \text{Impact}
        • 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
    4. 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): 全公司共用,發生時由高層動用
    5. Monitor and Control

    6. 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: CV=EVAC\text{CV} = \text{EV} - \text{AC}
      • Cost Performance Index: CPI=EV/AC\text{CPI} = \text{EV} / \text{AC}
    • Schedule Metrics
      • Schedule Variance: SV=EVPV\text{SV} = \text{EV} - \text{PV}
      • Schedule Performance Index: SPI=EV/PV\text{SPI} = \text{EV} / \text{PV}
    • forecasting: Estimate at Completion (EAC)
      • typical (we believe the variances WILL continue): EAC=Cumulative AC+(BACCumulative EV)/Cumulative CPI\text{EAC} = \text{Cumulative AC} + (\text{BAC} - \text{Cumulative EV}) / \text{Cumulative CPI}
      • atypical (we believe the variances WILL NOT continue): EAC=Cumulative AC+(BACCumulative EV)\text{EAC} = \text{Cumulative AC} + (\text{BAC} - \text{Cumulative EV})
  • 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. 設計驗證、開發測試)
  • 品管進化歷程: (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

    1. Establish Quality Policies
    2. Develop Metrics for selected Standard
      • consider the 3 types of requirements
    3. 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
      • 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)
    4. Plan Quality Control (QC)
      • monitor the quality of results, take corrective actions on the deviations
      • QA 和 QC 的區分需要看成果的定義
        • 在成果產出之前的預防 → QA
        • 在成果產出之後的檢查 → QC
    5. Continual Improvement: PDCA, IDEAL