CSS323 Software Engineering Asst.Prof.Dr. Sasiporn Usanavasin
Step-Wise: Project Planning Overview
- Step 0: Select Project → Feasibility Study + Cost-Benefit Analysis
- Step 1: Identify Project Scope and Objectives
- Step 2: Identify Project Infrastructure
- Step 3: Analyze Project Characteristics
- Step 4: Identify Products and Activities
- Step 5: Estimate Efforts for Activities
- Step 6: Identify Risks
- Step 7: Allocate Resources
- Step 8: Review Plan
- Step 9: Execute Plan
- Step 10: Lower Level Planning (for each activity → lower level details → review)
Step 0: Project Selection
Feasibility Study — Content List
- Introduction — identifies what the document is
- Description of current situation
- Problem description
- Proposed development
- Business and financial aspects
- Technical aspects
- Organizational aspects
- Estimated costs
- Development costs
- Operational costs
- Envisaged benefits
- Recommendation
Cost-Benefit Analysis
- The most common way of carrying out an economic assessment of a proposed project
- Compares expected costs of development and operation against the benefits of having the project in place
Two Steps:
- Identify and estimate all costs and benefits
- Estimate development costs
- Estimate operation costs
- Estimate costs/benefits when replacing old system with new system
- Express costs and benefits in common units
- Express in monetary terms
- Evaluate the net benefit = total benefit − total cost
Types of Costs and Benefits:
- Costs
- Development costs
- Setup costs
- Operational costs
- Benefits
- Direct benefits
- Assessable indirect benefits
- Intangible benefits
Cash-Flow Forecasting
- A cash-flow forecast indicates when expenditure and income will take place
- Typically products generate a negative cash flow during development, followed by a positive cash flow over operating life
- There might be decommissioning costs at the end of a product's life
🏗️ ลองนึกภาพการสร้างบ้าน — ช่วงก่อสร้างจ่ายเงินออกตลอด (negative) แต่พอให้เช่าแล้วเงินเข้า (positive) และสุดท้ายอาจมีค่ารื้อถอน (decommissioning)
Example Table (Table 3.2) — Four Project Cash Flow Projections (£)
| Year | Project 1 | Project 2 | Project 3 | Project 4 |
|---|---|---|---|---|
| 0 | −100,000 | −1,000,000 | −100,000 | −120,000 |
| 1 | 10,000 | 200,000 | 30,000 | 30,000 |
| 2 | 10,000 | 200,000 | 30,000 | 30,000 |
| 3 | 10,000 | 200,000 | 30,000 | 30,000 |
| 4 | 20,000 | 200,000 | 30,000 | 30,000 |
| 5 | 100,000 | 300,000 | 30,000 | 75,000 |
| Net Profit | 50,000 | 100,000 | 50,000 | 75,000 |
Cost-Benefit Evaluation Techniques
Four main techniques:
- Net Profit
- Payback Period
- Return on Investment (ROI) / Accounting Rate of Return (ARR)
- Net Present Value (NPV)
Note: NPV and Internal Rate of Return (IRR) are collectively known as **Discounted Cash Flow (DCF)**technique.
1. Net Profit
- The difference between total costs and total income over the life of the project
- From Table 3.2: simply sum all cash flows including initial investment
💰 กำไรสุทธิ = รายรับทั้งหมด − ต้นทุนทั้งหมด ตลอดอายุโครงการ (ไม่คำนึงถึงมูลค่าเงินตามเวลา)
2. Payback Period
- The time taken to break even or pay back the initial investment
- The project with the shortest payback period is preferred — organization wants to minimize time "in debt"
- Limitation: Ignores the overall profitability of the project
⏱️ เหมือนกู้เงินซื้อของ — อยากรู้ว่ากี่ปีถึงจะคืนทุน (แต่ไม่สนว่าหลังจากนั้นจะได้กำไรเท่าไร)
- From Table 3.2:
- Project 1: Payback at Year 5 (arrows indicate breakeven point)
- Project 3: Payback at Year 4
- Project 4: Payback at Year 4
3. Return on Investment (ROI) / ARR
- Provides a way of comparing net profitability to investment required
Example — Project 1:
- Net Profit = £50,000 over 5 years
- Average Annual Profit =
- Total Investment = £100,000
📈 ROI คือ % ผลตอบแทนต่อปีเทียบกับเงินลงทุน — ยิ่งสูงยิ่งดี เหมือนดอกเบี้ยเงินฝากนั่นแหละ
4. Net Present Value (NPV)
- Standard method for financial appraisal of long-term projects
- Used for capital budgeting — measures excess or shortfall of cash flows in present value terms
- Core idea: money today is worth more than money in the future
- = discount rate (expressed as decimal, e.g., 10% = 0.10)
- = number of years into the future the cash flow occurs
🕐 ลองนึกว่า ถ้ามีคนบอกว่าจะให้เงินคุณ 100 บาทในอีก 5 ปี — มันไม่ได้ค่าเท่ากับ 100 บาทวันนี้ เพราะเงินวันนี้เอาไปลงทุนได้ NPV คือการปรับค่าเงินในอนาคตให้เป็น "มูลค่าวันนี้"
What NPV Tells You:
| If... | It means... | Then... |
|---|---|---|
| NPV > 0 | Investment adds value to the firm | Accept the project |
| NPV < 0 | Investment subtracts value from the firm | Reject the project |
| NPV = 0 | Investment neither gains nor loses value | Could accept — shareholders get required rate of return; decision based on other criteria (e.g., strategic positioning) |
Discount Factor Table (Present Value of $1)
| Period | 6% | 7% | 8% | 9% | 10% | 12% | 14% | 16% |
|---|---|---|---|---|---|---|---|---|
| 0 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| 1 | 0.943 | 0.935 | 0.926 | 0.917 | 0.909 | 0.893 | 0.877 | 0.862 |
| 2 | 0.890 | 0.873 | 0.857 | 0.842 | 0.826 | 0.797 | 0.769 | 0.743 |
| 3 | 0.840 | 0.816 | 0.794 | 0.772 | 0.751 | 0.712 | 0.675 | 0.641 |
| 4 | 0.792 | 0.763 | 0.735 | 0.708 | 0.683 | 0.636 | 0.592 | 0.552 |
| 5 | 0.747 | 0.713 | 0.681 | 0.650 | 0.621 | 0.567 | 0.519 | 0.476 |
| 6 | 0.705 | 0.666 | 0.630 | 0.596 | 0.564 | 0.507 | 0.456 | 0.410 |
| 7 | 0.665 | 0.623 | 0.583 | 0.547 | 0.513 | 0.452 | 0.400 | 0.354 |
| 8 | 0.627 | 0.582 | 0.540 | 0.502 | 0.467 | 0.404 | 0.351 | 0.305 |
| 9 | 0.592 | 0.544 | 0.500 | 0.460 | 0.424 | 0.361 | 0.308 | 0.263 |
| 10 | 0.558 | 0.508 | 0.463 | 0.422 | 0.386 | 0.322 | 0.270 | 0.227 |
NPV Example — Project 1 at 10% Discount Rate (Table 3.4)
| Year | Cash Flow (£) | Discount Factor @ 10% | Discounted Cash Flow (£) |
|---|---|---|---|
| 0 | −100,000 | 1.0000 | −100,000 |
| 1 | 10,000 | 0.9091 | 9,091 |
| 2 | 10,000 | 0.8264 | 8,264 |
| 3 | 10,000 | 0.7513 | 7,513 |
| 4 | 20,000 | 0.6830 | 13,660 |
| 5 | 100,000 | 0.6209 | 62,090 |
| Net Profit | £50,000 | NPV: £618 |
NPV Exercise
- Calculate NPV for Projects A, B, C using discount rates 8%, 10%, and 12%
| Year | Project A (£) | Project B (£) | Project C (£) |
|---|---|---|---|
| 0 | −8,000 | −8,000 | −10,000 |
| 1 | 4,000 | 1,000 | 2,000 |
| 2 | 4,000 | 2,000 | 2,000 |
| 3 | 2,000 | 4,000 | 6,000 |
| 4 | 1,000 | 3,000 | 2,000 |
| 5 | 500 | 9,000 | 2,000 |
| 6 | 500 | −6,000 | 2,000 |
| Net Profit | 4,000 | 5,000 | 6,000 |
Step 1: Identify Project Scope and Objectives
- Identify project goals, objectives and measurements
- Establish Authority
- Stakeholder analysis
Goals vs. Objectives
GOALS — the "WHAT"
- Broad statements that indicate what you hope to accomplish
- Should describe the big picture of the final outcome
- Related to the project need statement
- Simply stated
Examples of Goals:
- Website: "Visitors will be convinced that global warming exists"
- Insurance: "The Medical Insurance department will increase provider options by 10%"
- Healthcare: "Patients will not wait longer than 1 hour to see a physician"
OBJECTIVES — the "HOW"
- Specific statements that support the goal
- Every goal has one or more objectives tied to it
- Operational and measurable
- Should start with an action verb
- Describe specific things to be accomplished
- Include quantitative or qualitative degree/amount of achievement
🎯 Goal = "อยากผอม" | Objective = "ออกกำลังกาย 3 วัน/สัปดาห์ และลดน้ำหนัก 5 กก. ภายใน 3 เดือน"
Examples of Objectives (from Goal examples above):
Goal 1: Global warming awareness
- To create a table comparing costs of addressing global warming today vs. 100 years from now
- To illustrate effects of global warming in a photo gallery
- To identify and address "myths" of global warming
Goal 2: Insurance provider options
- To identify provider options and costs
- To survey the customer to find each option's value
- To compare options to competitors
- To increase provider options at least 10%
Goal 3: Patient wait time
- To evaluate personnel requirements
- To purchase new appointment scheduling software
- To set up appointment confirmation schedule
S.M.A.R.T. Objectives
| Letter | Meaning | Description |
|---|---|---|
| S | Specific | What kind of or which problem is to be addressed |
| M | Measurable | How much, how many, how well the problem will be resolved |
| A | Action-Oriented | Uses action verbs |
| R | Reasonable | Result you can expect to achieve |
| T | Time-bound | Gives specific date for its own achievement |
🧠 SMART = เหมือน New Year's Resolution ที่ดี — "ออกกำลังกาย 30 นาที 3 วัน/สัปดาห์ ภายในสิ้นปีนี้" ดีกว่า "จะออกกำลังกายเยอะๆ"
Types of Objectives
Process Objectives
- Typically begin with "To develop" or "To establish"
- Describe a process rather than an outcome
- Attainment = the objective was met (binary)
- Example: "To evaluate personnel requirements"
Outcome Objectives
- Typically begin with "To increase" or "To reduce"
- Describe a measurable, expected outcome
- Example: "To increase options at least 10%"
- Measured by: Medical Insurance department actually increased provider options by ≥ 10%
Measurable Objectives — A-B-C-D-E Method
- A — Audience: Who will be affected (target group)
- B — Behavior: Observable change (knowledge, attitude, behavior, process) in target group
- C — Conditions: How behaviors will be observed or measured; instruments to be used
- D — Data: Levels of attainment that must be met for project to be called a success
- E — Era: Identifies when the effects will be measured
Full Example:
"At the end of three years of implementation (Era), 90% of customers will provide feedbacks and comments about medical insurance options (Behavior) and top five options (Conditions) will be evaluated to find key success factors (Data)..."
Action verbs to use in objectives: Increase, Improve, Eliminate, Implement, Maintain, Seek, Reduce
Writing Objectives — Objectives, Activities, Evaluation
| Objectives | Actions/Activities | Measures |
|---|---|---|
| What do you propose to achieve and to what extent? | What will you do to get there? | How will you know what you did worked? |
| To review, select and implement one of the approved software development projects during 2019–2020 | Form a team to review and recommend a specific project to be selected | A project will be selected and new software will be developed and deployed by January 2020 |
Purpose of Evaluation Plan
- Present strategies for collecting data that prove objectives were met
- Describes how you will decide whether the project was successful
- Demonstrates how you will prove you achieved your objective
Types of Evaluations
| Type | Sample Question | Focus |
|---|---|---|
| Formative / Process Evaluation | "How are we doing?" | Ongoing monitoring; processes and short-term results |
| Summative / Product Evaluation | "How did we do?" | Effectiveness of achieving objectives; outcomes, impacts, and processes affecting outcomes |
Step 2: Identify Project Infrastructure
Project Team Roles and Responsibilities
- Project Manager
- Team Leader
- Project Coordinator
- Business/System Analyst
- Systems Architect
- Software Engineers and Developers
- Testers
- DevOps
- Quality Assurance Auditor
Standards and Procedures
Process Standards
- PSP, TSP, CMMI, ISO, etc.
- Agile
Documentation Standards
- Organizational Templates
- Project Templates
- Personal Templates
Code Standards
- Organizational coding standard
- Project coding standard
- Personal coding standard
CMMI Framework
CMMI_Framework
Capability Maturity Model Integration (CMMI) — Three constellations:
- CMMI-DEV — Requirements Development, Technical Solution, Product Integration, Verification, Validation
- CMMI-SVC — Capacity & Availability Management, Service Delivery, Service Continuity, Strategic Service Management
- CMMI-ACQ — Agreement Management, Acquisition Requirements Development, Acquisition Validation
CMMI Maturity Levels:
| Level | Name | Description |
|---|---|---|
| 1 | Initial | Processes are unpredictable, poorly controlled, reactive |
| 2 | Managed | Processes are planned, documented, performed, monitored, and controlled at the projectlevel. Often reactive |
| 3 | Defined | Processes are well characterized and understood; defined at the organizational level. Proactive |
| 4 | Quantitatively Managed | Processes controlled using statistical and other quantitative techniques |
| 5 | Optimizing | Process performance continually improved through incremental and innovative improvements |
🏆 CMMI Level = "ระดับความสุก" ขององค์กร — Level 1 คือทำแบบ improvise ทุกครั้ง, Level 5 คือมี process ที่ดีและปรับปรุงตลอด
CMMI vs. ISO
| CMMI | ISO | |
|---|---|---|
| Type | Model | Standard |
| Focus | In-depth focus in SE, SW, SA | Broad focus |
| Purpose | Measure process quality | Focus on having a process |
| Rigor | More rigorous | Less rigorous |
| Best Practices | Extensive set | Assists in satisfying CMMI capabilities |
| Tells you | What to do (not how or who) | What to do (not how or who) |
Step 3: Analyze Project Characteristics
- Take into account user-specific requirements concerning implementation
Constraint Categories:
- Systems Design & Technology Constraints — Technology, Tools, Platform, etc.
- Process Constraints — Standards, QA process
- Resource Constraints
- Budget
- Timeline
- Human Resources (HR)
Step 4: Identify Project Products and Activities
Three main tasks:
- Identify Project Activities and Deliverables (Work Products) → Perform WBS
- Document product flows
- Produce activity network → PERT Chart
Work Breakdown Structure (WBS)
- Breaks a project into phases → activities → tasks
- The goal is accomplished when all tasks in WBS are completed
Project
├── Phase 1
│ ├── Activity 1.0
│ │ ├── Task 1.1
│ │ ├── Task 1.2
│ │ └── Task 1.3
│ └── Activity 2.0
│ ├── Task 2.1
│ ├── Task 2.2
│ └── Task 2.3
└── Phase N
Why create a WBS?
- Helps plan out the process needed to accomplish the project
- Helps design the architecture of the project
- Forms the basis for estimating time and effort
WBS: Three Approaches
1. Activity-Based Approach
- Creates a list of all activities the project involves
- WBS to create a task list
Project
├── Analysis Design
│ ├── Non-Functional Req. Analysis
│ ├── Functional Req. Analysis
│ └── Relational Data Analysis
├── Process Design
├── Physical Design
├── Data Design
└── Coding
├── Module A
├── Module B
└── Module C
2. Product-Based Approach
- WBS based on deliverables
- Structured around work products to be produced
Project
├── Installed System
│ ├── Software Components
│ │ ├── Analyze Requirements
│ │ ├── High-Level Design
│ │ ├── Detailed Design
│ │ ├── Code Software
│ │ └── Test Software
│ └── (Integration, System Test, Deliver)
├── User Manuals
│ ├── Analyze Requirements
│ ├── Design Manual
│ ├── Write Text
│ └── Print Manuals
├── Training Course
│ ├── Review Requirements
│ ├── Design Course
│ ├── Write Material
│ └── Deliver Course
└── ...
3. Hybrid Approach
- Activity → Product-Oriented, or
- Product → Activity-Oriented
Tasks in WBS — Work Package Specification
A task is the smallest unit of management accountability — an atomic unit of work for planning and tracking.
Each task (Work Package) should specify:
- Task ID
- Task Name
- Task Description
- Person in charge
- Resource
- Preconditions
- Duration
- Work Product to be produced and acceptance criteria
- Risks involved
Activity Network and WBS
Activity_Network_WBS
- WBS decomposes the project hierarchically
- Activity Network shows the sequencing and dependencies between tasks
- WBS tasks become nodes in the activity network
Activity Network (PERT Chart)
PERT_Chart
Steps for Creating a PERT Chart:
- Identify specific activities and milestones (from WBS)
- Determine the proper sequence of activities
- Construct a network diagram
- Estimate the time required for each activity
- Determine the critical path
- Update the PERT chart as the project progresses
Step 5: Estimate Efforts for Activities
Project Estimation Flow
Project_Estimation_Flow
- Size Estimation feeds into both Effort and Duration estimation
- Effort + Duration feed into Staffing Estimation
- Staffing + Duration feed into Scheduling
Critical Path
- Critical Path = The series of activities which determines the earliest completion of the project
- It is the longest path through the network
🚦 Critical Path คือเส้นทางที่ยาวที่สุด = bottleneck ของโครงการ — ถ้า task ไหนอยู่บน critical path แล้วช้า โปรเจคทั้งหมดก็จะช้าตาม
Critical_Path_Diagram
Example (from slide):
- Path A-C-G-H = 4 + 5 + 2 + 2 = 13 days → Critical Path
- Path B-D-E-H = 3 + 3 + 1 + 2 = 9 days
- Path B-F-H = 3 + 4 + 2 = 9 days
Step 6: Identify Activity Risks
Risk Management Paradigm (4 Steps)
- IDENTIFY — Identify project, product and business risks
- ANALYZE — Assess the likelihood and consequences of these risks
- PLAN — Draw up plans to avoid or minimise effects of the risk
- MONITOR & CONTROL — Monitor and control the risks throughout the project (loops back to Identify)
Risk Management Process Flow
Each step produces:
- Risk Identification → List of potential risks
- Risk Analysis → Prioritised risk list
- Risk Planning → Risk avoidance and contingency plans
- Risk Monitoring → Risk assessment
Risk Identification — Risk Categories
| Risk Type | Possible Risks |
|---|---|
| Technology | Database cannot process expected transactions per second; Reused software components contain defects |
| People | Impossible to recruit staff with required skills; Key staff ill at critical times; Required training not available |
| Organisational | Organisation restructured with different management; Financial problems force budget reductions |
| Tools | CASE tool-generated code is inefficient; CASE tools cannot be integrated |
| Requirements | Requirements changes requiring major design rework; Customers fail to understand impact of requirement changes |
| Estimation | Development time underestimated; Defect repair rate underestimated; Software size underestimated |
Risk Analysis
- Determine probability and seriousness of each risk
- Probability levels: very low, low, moderate, high, very high
- Risk effects: catastrophic, serious, tolerable, insignificant
- Risk Likelihood: scale 1 (least likely) to 10 (most likely)
- Risk Impact: scale 1 to 10
Example Risk Exposure Table:
| Hazard | Likelihood | Impact | Risk Exposure |
|---|---|---|---|
| R1: Requirement changes during coding | 1 | 8 | 8 |
| R2: Specification takes longer than expected | 3 | 7 | 21 |
| R3: Key staff sickness affect critical path activities | 5 | 7 | 35 |
| R4: Key staff sickness affect non-critical activities | 10 | 3 | 30 |
| R5: Module coding takes longer than expected | 4 | 5 | 20 |
| R6: Module testing demonstrates errors or deficiencies in design | 1 | 10 | 10 |
🎲 Risk Exposure เหมือนคูณ "โอกาสเกิด × ความเสียหาย" — อะไรที่โอกาสสูงและเสียหายมากต้องจัดการก่อน
Risk Planning
Three types of risk strategies:
- Avoidance strategies — Reduce the probability that the risk will arise
- Minimization strategies — Reduce the impact of the risk on the project/product
- Contingency plans — Plans to deal with the risk if it does arise
Risk Management Strategies Table:
| Risk | Strategy |
|---|---|
| Organisational financial problems | Prepare briefing document for senior management showing project's important contribution to business goals |
| Recruitment problems | Alert customer of potential delays; investigate buying-in components |
| Staff illness | Reorganise team for more work overlap so people understand each other's jobs |
| Defective components | Replace potentially defective components with bought-in components of known reliability |
| Requirements changes | Derive traceability information to assess change impact; maximise information hiding in design |
| Organisational restructuring | Prepare briefing document for senior management |
| Database performance | Investigate possibility of buying a higher-performance database |
| Underestimated development time | Investigate buying in components; investigate use of a program generator |
Risk Monitoring
- Assess each identified risk regularly to decide if it's becoming more or less probable
- Assess whether the effects of the risk have changed
- Each key risk should be discussed at management progress meetings
Risk Indicators:
| Risk Type | Potential Indicators |
|---|---|
| Technology | Late delivery of hardware or support software; many reported technology problems |
| People | Poor staff morale; poor relationships amongst team members; job availability |
| Organisational | Organisational gossip; lack of action by senior management |
| Tools | Reluctance to use tools; complaints about CASE tools; demands for higher-powered workstations |
| Requirements | Many requirements change requests; customer complaints |
| Estimation | Failure to meet agreed schedule; failure to clear reported defects |
Step 7: Allocate Resources
Triple Constraints in Project Management
Triple_Constraints
The three legs of the "tripod" that hold up Quality:
- Resources (Cost)
- Time (Schedule)
- Scope
⚖️ ถ้าเพิ่ม Scope โดยไม่เพิ่ม Cost/Time → Quality ตก เหมือนขาโต๊ะ 3 ขา — ดึงขาหนึ่งยาวขึ้นโดยไม่ปรับอีกสองอัน โต๊ะจะเอียง
Resource Constraint Overview
Key questions after resources are assigned:
- Will assigned labor/equipment be adequate and available?
- Will outside contractors be needed?
- Do unforeseen resource dependencies exist? Is there a new critical path?
- How much flexibility do we have in using resources?
- Is the original deadline realistic?
Types of Resource Constraints
- People
- Materials
- Equipment
Classification of Scheduling Problems
| Type | Definition | Approach |
|---|---|---|
| Time-Constrained | Must be completed by an imposed date; resources can be added if needed | Minimize resource usage while meeting deadline |
| Resource-Constrained | Level of resources cannot be exceeded; acceptable to delay project but as little as possible | Minimize project delay without exceeding resource limit |
Resource Allocation Methods
Time-Constrained Projects: Resource Smoothing
- Focuses on resource utilization
- Uses resource leveling techniques — delay noncritical activities (using slack) to:
- Reduce peak demand
- Increase resource utilization
- Minimize fluctuations in resource demand
Three goals of smoothing (Botanical Garden example):
- Peak demand for the resource was reduced
- Total number of resources over the project life was reduced
- Fluctuations in resource demand were minimized
Resource_Smoothing_Example
Resource-Constrained Projects: Parallel Method
- Uses heuristics (rules of thumb) to prioritize resource allocation
- Parallel method = most widely used; starts from beginning of project time
- When resources exceed availability, prioritizes by:
- Minimum slack (most urgent first)
- Smallest duration (shortest task first)
- Lowest activity identification number (tie-breaker)
🔀 Parallel Method คือการ "เข้าคิว" — ใครด่วนที่สุด (slack น้อย) ได้ resource ก่อน ใครไม่ด่วนก็รอ
Resource_Constrained_Schedule
Project Planning Process Summary
\text{Scope/WBS} \rightarrow \text{Network} \rightarrow \text{Resource & Cost Scheduling} \rightarrow \text{Master Plan}
- Risk interacts bidirectionally with all four stages
WBS Example (Software Development Project):
WBS_Software_Development
Main phases and approximate effort percentages:
- 1.0 Specification (25%)
- 2.0 Design (20%)
- 3.0 System Implementation (30%)
- 4.0 Testing (15%)
- 5.0 Project Close Out (10%)
End of SPM Notes — CSS323 Software Engineering