Software & Project Management Fundamentals
Software & Project Management Fundamentals
When building a product or system, it's essential to follow a series of predictable steps, known as
the software process. This process acts as a road map, guiding the creation of a high-quality
product in a timely manner. Here's an overview:
Each process is described by its inputs, tools & techniques, and outputs.
Linked by Results: The outcome of one process often becomes the input to another.
Iterative Links: Planning provides executing with a documented project plan early on
and updates it as the project progresses.
Overlapping Activities: These processes overlap and vary in intensity throughout each
phase.
Cross-Phase Interactions: Closing one phase provides input to initiating the next.
Example: Closing a design phase requires customer acceptance of the design document,
which then defines the product description for the implementation phase.
Rolling Wave Planning: Planning is iterative and ongoing, detailing current and future
phase activities.
MCQs
Answer: B) Detailed planning of the current phase and preliminary planning of future
phases
Lecture 21
Lecture Notes on Software Development Fundamentals:
Initiating and Planning Processes
3. Processes
The initiating process sets the foundation for a software project by defining key inputs, outputs,
and utilizing specific tools and techniques. Here’s an overview:
Inputs:
Outputs:
Project Selection Methods: Techniques for choosing the project (e.g., cost-benefit
analysis).
Expert Judgment: Involvement of experienced individuals to guide the process.
Phases of Planning:
Specific: Clear and specific goals (e.g., "Write a paper" vs. "Work harder").
Measurable: Quantifiable goals (e.g., "Write a 30-page paper").
Acceptable: Goals that are acceptable to those responsible for achieving them.
Realistic: Achievable goals (e.g., "Write a 30-page paper in one week").
Time Frame: Defined timeline (e.g., "Write one page a day for 30 days").
Extending: Goals that stretch capabilities (e.g., writing on a challenging topic).
Rewarding: Goals that provide a reward for the effort.
MCQs
2. Which input is crucial for the initiating process to align the project with
organizational goals?
o A) Historical Information
o B) Strategic Plan
o C) Product Description
o D) Selection Criteria
3. Which tool is commonly used during the initiating process to guide decisions?
o A) Gantt Charts
o B) Expert Judgment
o C) SWOT Analysis
o D) Critical Path Method
4. In the planning process, what term is used for specific accomplishments needed to
achieve the goals?
o A) Strategies
o B) Objectives
o C) Resources
o D) Tasks
Answer: B) Objectives
Answer: C) Extending
Lecture 22
The planning process involves a series of tasks to ensure a project is well-defined and resources
are appropriately allocated. Here's a breakdown of the planning tasks:
1. Scope Planning: Develop a written scope statement to guide future project decisions.
2. Scope Definition: Break down major project deliverables into smaller, manageable
components.
3. Activity Definition: Identify specific activities needed to produce project deliverables.
4. Activity Sequencing: Document the dependencies between activities.
5. Activity Duration Estimating: Estimate the number of work periods required to
complete each activity.
6. Resource Planning: Determine what resources (people, equipment, materials) are
needed and in what quantities.
7. Cost Estimating: Approximate the costs of the resources required for project activities.
8. Cost Budgeting: Allocate overall cost estimates to individual work packages.
9. Schedule Development: Analyze activity sequences, durations, and resource
requirements to create the project schedule.
10. Quality Planning: Identify relevant quality standards and determine how to meet them.
11. Communications Planning: Define the information and communication needs of
stakeholders: who needs what information, when, and how it will be delivered.
12. Organizational Planning: Identify, document, and assign project roles, responsibilities,
and reporting relationships.
13. Staff Acquisition: Obtain the human resources needed and assign them to the project.
14. Procurement Planning: Determine what to procure, how much, and when.
15. Project Plan Development: Compile the results of other planning processes into a
consistent, coherent document.
The executing process involves performing the work defined in the project plan to achieve the
project's objectives.
1. Project Plan Execution: Carry out the project plan by performing the included activities.
2. Quality Assurance: Regularly evaluate overall project performance to ensure it meets
quality standards.
3. Team Development: Enhance individual and group skills and competencies to improve
project performance.
4. Information Distribution: Provide necessary information to project stakeholders in a
timely manner.
5. Solicitation: Obtain quotations, bids, offers, or proposals.
6. Source Selection: Choose among potential sellers.
7. Contract Administration: Manage the relationship with the seller.
The controlling process ensures project objectives are met by monitoring and measuring progress
and taking corrective actions as necessary.
The closing process formalizes acceptance of the project or phase and brings it to an orderly end.
Contract Closeout: Complete and settle the contract, including resolving any open
items.
Administrative Closure: Generate, gather, and disseminate information to formalize
phase or project completion. This includes evaluating the project and compiling lessons
learned for future projects or phases.
1. Scope Planning: Writing down what the project will deliver to guide decisions.
2. Scope Definition: Breaking down the project into smaller parts for better management.
3. Activity Definition: Listing out all tasks needed to complete the project.
4. Activity Sequencing: Organizing tasks in the order they need to be done.
5. Activity Duration Estimating: Estimating how long each task will take.
6. Resource Planning: Identifying and assigning resources like people and materials.
7. Cost Estimating: Estimating how much the project will cost.
8. Cost Budgeting: Dividing the budget among different project parts.
9. Schedule Development: Creating a timeline for the project.
10. Quality Planning: Ensuring the project meets quality standards.
11. Communications Planning: Planning how to communicate project information.
12. Organizational Planning: Defining roles and responsibilities.
13. Staff Acquisition: Getting the right people for the project.
14. Procurement Planning: Planning what needs to be bought and when.
15. Project Plan Development: Compiling all planning activities into one document.
MCQs
Lecture 23 Planning
Planning is crucial in software project management, involving continuous efforts throughout the
project lifecycle. It begins with project planning activities.
Key Points:
Preliminary planning starts early, even in the pre-project phase.
Planning should be transparent and inclusive.
Planning requires approval and support from stakeholders.
The objectives of software project planning are to provide a framework for making reasonable
estimates of:
Resources
Cost
Schedule
These estimates should be updated regularly and consider best and worst-case scenarios.
Key Estimates:
What is it?
Software project planning involves estimating the necessary resources, effort, cost, and time to
build a software product.
Work Product:
A table outlining tasks, functions, costs, efforts, time, and resources required.
Ensuring Accuracy:
Follow a systematic approach, use historical data, apply multiple estimation methods, and
consider complexity and risks.
The process includes the organization and resource planning to develop the product. The
development schedule is critical, answering "what" and "when" while detailing the "how."
Key Questions:
i. Scope Planning:
Documenting the project work to produce the product.
v. Project Control:
Continuous objective to take remedial actions or risk avoidance measures to protect the project
integrity.
The project development plan details how the project will be developed, resources required, and
their usage. It ensures project activities are well-charted before development begins.
Information Needs:
Steps/Items Required:
Inputs to Software Development Planning (SDP) encompass a variety of elements that guide the
creation of a coherent and consistent project plan. These inputs are critical in ensuring the plan
can effectively direct both the execution and control of the project. Here’s a breakdown of the
primary inputs to SDP:
Base Documents: Outputs from other planning processes, including documents like the
Work Breakdown Structure (WBS), are essential inputs.
Supporting Details: Detailed information supporting the base documents, such as
schedules, resource requirements, and risk assessments, are necessary for comprehensive
planning.
Application Area-Specific Inputs: Specific projects may require additional inputs like
cash-flow forecasts, especially for major projects.
2. Historical Information
Estimating Databases: Historical data on past projects, including cost estimates, time
estimates, and resource usage.
Records of Past Project Performance: Information on how past projects performed in
terms of timeline, budget, and scope can help in verifying assumptions and assessing
alternatives.
3. Organizational Policies
4. Constraints
Budget Constraints: Predetermined budgets that may limit options regarding project
scope, staffing, and schedule.
Contractual Provisions: Constraints that arise when projects are performed under
contract, including legal and regulatory requirements.
5. Assumptions
Structured Approach: Utilizes standard forms, templates, and tools, which can range
from simple forms to complex simulations like Monte Carlo analysis of schedule risk.
Combination of Tools: Employs both "hard" tools (e.g., project management software)
and "soft" tools (e.g., facilitated startup meetings) to guide the project team in plan
development.
Integration and Measurement: Integrates the project's scope, schedule, and resources to
measure and report performance throughout the project's lifecycle.
1. Project Plan
SDP Execution
1. Project Plan
Subsidiary Management Plans: Includes plans like scope, risk, procurement,
configuration management, and performance measurement baselines.
2. Supporting Detail
Additional Information: Detailed information that supports the project plan and
execution.
3. Organizational Policies
Formal and Informal Policies: Policies of all organizations involved in the project that
may affect execution.
4. Preventive Action
Risk Reduction: Actions taken to reduce the probability of potential project risk events.
5. Corrective Action
Alignment with Plan: Actions taken to align future project performance with the project
plan, completing the feedback loop for effective management.
Essential Skills: Leadership, communication, and negotiation skills are crucial for
effective project plan execution.
Appropriate Skill Set: Ensuring the project team has the necessary skills and knowledge
about the project’s product.
Formal Procedure: A system to authorize project work, ensuring tasks are done at the
right time and sequence. Can range from written authorizations to verbal approvals for
smaller projects.
Support System: Provides the tools and techniques for managing project information
throughout the execution phase.
6. Organizational Procedures
Useful Procedures: Formal and informal procedures from involved organizations that
aid project execution.
1. Work Results
2. Change Requests
Scope, Budget, and Schedule Modifications: Requests for changes identified during
project execution to modify scope, cost, or schedule estimates.
1. Preliminary
2. Final
The Software Project Plan is developed iteratively through the Concept and Requirements Phase.
Initial estimates are refined as the scope and requirements become clearer.
a) Scope Planning
Progressive Elaboration: Documenting the project work that produces the project’s
product.
Initial Inputs: Product description, project charter, and initial constraints and
assumptions.
Outputs: Scope statement and scope management plan with supporting details.
Scope Statement: Forms the basis for agreement between the project and the customer,
identifying project objectives and deliverables.
c) Technical Approach
d) Contractual Aspects
e) Schedules
f) Resource Allocation
g) Evaluation Methods
Summary of Elements
Life Cycle Models Overview To ensure the successful execution of a project, it is necessary to
break it down into multiple manageable tasks, performed in a series using processes. A process is
a collection of related tasks with specific milestones, arranged and executed in sequence to
ensure smooth progress. Different process models provide approaches that guide software
development from project conceptualization to formal termination.
Combination of Waterfall and Prototyping Models: Divides the project life cycle into
phases, executed iteratively.
Phases: Each phase is revisited in every iteration, focusing on risk assessment and
reduction.
5. The RAD (Rapid Application Development) Model
Process Models and Organizational Adaptation A process model defines the overall processes
an organization follows to manage a project efficiently. It helps organize, monitor, and execute a
project by defining structured approaches to sequence phases and identify requirements.
Flexibility: Process models do not follow rigid implementation rules; organizations can
deploy new models or customize existing ones.
Example: An organization using a confidential defense applications model (Process
Model A) might merge it with a simpler model (Process Model B) to create an evolved
process model with consistent SDLC phases.
Life Cycle Models: Different models like Waterfall, Prototyping, Incremental, Spiral,
and RAD offer various approaches to software development.
Sequential and Iterative Approaches: Models range from linear, sequential approaches
(Waterfall) to iterative, evolutionary approaches (Spiral, Incremental).
Flexibility and Adaptation: Process models can be customized to fit organizational
needs, ensuring efficient project management and execution.
This overview provides a foundational understanding of various life cycle models and their
application in software development projects.
When selecting a lifecycle model for your project, consider several factors to ensure the chosen
model aligns with project requirements and constraints. Here are key considerations and criteria
to guide the selection process:
Factors to Consider:
Waterfall Model:
Use when the project is large, clearly divided into discrete phases, and each phase has
defined inputs and outputs.
Ideal for projects with clear and unchanging requirements.
Drawbacks include inflexibility, high documentation requirements, and potential delays
due to blocking states.
Prototyping Model:
Use when the client is unclear about requirements or when there is conflict in client
requirements.
Suitable for projects needing frequent client feedback and where the requirements are
likely to evolve.
Types of prototyping include rapid, reusable, and modular prototyping.
Incremental Model:
Use when human resources are scarce and the project can be divided into modules
developed and delivered independently.
Suitable for projects where resources become available over time, allowing phased
development and delivery.
Spiral Model:
Example Scenarios:
Waterfall Model:
A large-scale project with well-defined phases and clear requirements, such as banking
software or airline reservation systems.
Drawbacks: Not suitable for projects requiring frequent changes or those lacking clear
initial requirements.
Prototyping Model:
A project where the client is unsure of the requirements or there is a need to clarify and
refine requirements through iterations.
Example: Developing a new user interface where the design is unclear and needs to be
refined based on user feedback.
Incremental Model:
A project with scarce human resources, requiring phased development and delivery.
Example: Developing an HR system in multiple independent modules, allowing early
deployment of core functionalities.
Spiral Model:
A high-risk project with uncertain requirements, requiring iterative development and
frequent client feedback.
Example: Developing a VOIP telephony system with no prior experience, requiring
continuous risk analysis and prototype development.
In software project management, selecting the appropriate planning documents is crucial for the
successful execution and delivery of the project. Below is an overview of key planning
documents, categorized and described based on their role in the project lifecycle:
3. System Specification
Purpose: To provide a comprehensive description of the system’s scope before the
project planning begins.
Importance: If available, it simplifies the planner's task by providing essential attributes
and boundaries for estimation.
4. Design Specification
Purpose: To define the documentation standards for all phases of software development.
Key Documents:
o Software development plan
o System/segment specification
o Software requirements specification
o Software design document
o Interface requirements specification
o Software test plan and descriptions
o Release manuals
o Maintenance documentation and source code
Flexibility: Allows for tailoring of the document format and presentation styles.
Purpose: To enhance process metrics and improve software quality through rigorous
analysis.
Process:
o Categorize errors and defects by origin
o Record the cost to correct each error and defect
o Analyze data to identify high-cost categories
o Develop plans to eliminate or reduce costly errors and defects
Outcome: Leads to continuous process improvement and higher quality software
systems.
Principles:
o Deletion of non-applicable requirements
o Carried out by the contracting agency
Process:
o Review standard requirements
o Identify non-applicable items
o Justify deletions
o Submit tailoring request early in the project lifecycle
Additional Control:
o Miscellaneous control procedures
o Project-specific control (e.g., security)
A comprehensive document detailing the communication strategy for a project. Key components
include:
Collection and Filing Structure: Methods for gathering and storing information,
including updates.
Distribution Structure: Specifies to whom and how information will be distributed,
aligning with the project organization chart.
Description of Information: Format, content, level of detail, and conventions.
Production Schedules: Timelines for each type of communication.
Methods for Accessing Information: Between scheduled communications.
Updating the Plan: Methods for refining the plan as the project progresses.
A critical component ensuring quality in project development, typically integrated into the
overall project plan. Elements include:
Documents risk analysis and management strategies, either as part of the software project plan or
a separate document. Key objectives:
Development Budget
Schedule
Required Resources: Staff, equipment, etc. Final budgeting and adjustments occur
alongside integration and testing, including user training, site preparation, and team size
reduction.
12. Maintenance Documents
The basis for the contract between proposer and customer, detailing all work to be performed.
Components include:
Referenced Documents
Software Deliverables
Equipment and Hardware Deliverables
Training Requirements
Market Research
Procurement
Supervision of Subcontractors
Documentation Needs
Testing Phases
Installation and Maintenance Services The SOW should be clear, complete, and
concise, covering all agreed work.
Defines project roles and responsibilities, ensuring each work element is assigned. It links the
project organization to the work breakdown structure, clarifying who is responsible for specific
tasks and phases.
A formal document issued by senior management authorizing the project and granting authority
to the project manager.
16. Risk Management Plan
Methodology
Roles and Responsibilities
Budgeting
Timing
Scoring and Interpretation
Thresholds
Reporting Formats
Tracking
4.10 Scheduling
Development Activities
Project Resources (People) The plan should be adhered to and updated as necessary,
using methods like:
Precedence Network Diagrams (PERT)
Gantt Charts
Milestones Lists
Organizations are managed through a hierarchical structure based on four core principles:
Delegation: Assigning tasks and responsibilities.
Authority: Granting decision-making power.
Responsibility: Accountability for assigned tasks.
Supervision: Overseeing and guiding the performance.
Projects are often organized into teams with specific roles depending on the nature and expertise
required. A project manager must choose the appropriate structure based on the project's needs.
Feedback mechanisms ensure alignment with goals, coming from within the organization
(employees, clients) and from external influences (government, economy). Subsystems within an
organization, such as departments or teams, operate to achieve their specific goals, contributing
to the overall system.
The design of an organization affects how it achieves its goals. Key dimensions include:
Organizations that are project-based focus on managing projects. There are two main types:
Non-project-based organizations may struggle with project management due to less developed
project-oriented systems, though some departments may function as project-based units.
5.5 Organizational Cultures and Styles
Organizational culture includes shared values, norms, beliefs, and practices that influence project
outcomes. For instance:
Organizational structures impact resource availability and project management. Structures range
from functional to projectized, with matrix structures in between. The type of structure affects
project management authority, team roles, and resource allocation.
1. Functional Structure:
o Central office oversees various departments (e.g., HR, sales).
o Suitable for small, centralized organizations.
o Limits project scope to departmental boundaries.
2. Projectized Structure:
o Central office with divisions dedicated to specific products or services.
o Divisions operate with their own functional structures.
o Ideal for large, dispersed organizations with diverse offerings.
o Project managers have high authority and independence.
3. Matrix Structure:
o Combines functional and projectized characteristics.
o Employees report to both functional and product managers.
o Facilitates coordination across functions but can create reporting complexities.
o Weak Matrix: Functional focus with project manager as coordinator.
o Balanced Matrix: Equal authority between functional and project managers.
o Strong Matrix: Project-focused with significant authority for project managers.
4. Project Office:
o Varies from support functions to full project responsibility.
o Even functional organizations may have project teams with characteristics of
projectized structures.
i. Project Interfaces
Organizational Interfaces: These are formal and informal reporting relationships among
different organizational units. They can be complex or simple, depending on the project's
scale and nature.
o Example: Coordinating numerous subcontractors for a telecommunications
system vs. fixing a programming error in a single-site system.
Technical Interfaces: Reporting relationships among different technical disciplines
within and between project phases.
o Example: Ensuring site design by civil engineers aligns with structural design by
structural engineers.
Interpersonal Interfaces: Reporting relationships among individuals working on the
project, often involving both formal and informal interactions.
o Example: An architect explaining design considerations to a construction
contractor.
Defines the competencies needed from individuals or groups and their timelines.
A subset of overall resource requirements identified during resource planning.
iii. Constraints
i. Templates
Utilizing role definitions and reporting relationships from similar past projects to speed
up planning.
Familiarity with literature on organizational structure helps the project management team
adapt to project requirements.
Identifying and analyzing stakeholder needs to ensure their requirements are met.
Assigning who does what and who decides what, often using a Responsibility
Assignment Matrix (RAM). RAMs can be at various levels:
o High-Level RAM: Defines which group or unit is responsible for each
component of the work breakdown structure.
o Lower-Level RAMs: Assign specific tasks to individuals within groups.
Describes how and when human resources will be added or removed from the project
team. Includes:
o Resource Histograms: Visual representations of resource needs over time.
o Reassignment Procedures: Ensures effective reallocation of team members to
reduce costs and improve morale.
Staff acquisition involves obtaining the necessary human resources for the project. This can be
challenging when the best resources are not available, so the project management team must
ensure that available resources meet project requirements.
Includes the project’s staffing requirements and outlines how to acquire the needed
personnel.
Previous Experience: Assess if potential staff have relevant experience and have
performed well.
Personal Interests: Determine if individuals or groups are interested in the project.
Personal Characteristics: Evaluate if the team members are likely to work well
together.
Availability: Check if the desired individuals or groups will be available when needed.
Competencies and Proficiency: Identify the required competencies and their required
levels.
i. Negotiations
Negotiate staff assignments with functional managers and other project management
teams to ensure the best fit for project needs.
o Example: A functional manager might prefer to assign available staff who don’t
meet all project requirements due to incentives for staff utilization.
ii. Pre-assignment
Staff may be pre-assigned if promised in a proposal or defined in the project charter.
iii. Procurement
Ensures that appropriate individuals are assigned to work on the project, either full-time,
part-time, or on a variable basis.
A directory listing all project team members and stakeholders, which can vary in
formality and detail based on project needs.
Team development focuses on enhancing both individual and team performance. This process is
crucial for meeting project objectives and involves managing dual reporting relationships
effectively.
i. Project Staff
v. External Feedback
Provides insights from outside the project to gauge the team's alignment with external
expectations.
i. Team-Building Activities
iv. Co-location
Placing team members in the same physical location to enhance collaboration. If not
possible, frequent face-to-face meetings may be an alternative.
v. Training
Includes formal and informal activities to enhance team competencies, with direct or
indirect costs often borne by the performing organization.
i. Performance Improvements
May include enhanced individual skills, improved team behaviors, and better ways of
performing project tasks.
Staff should provide feedback for appraisals of colleagues they interact with significantly.
i. Management Development
Focuses on developing skills in responsibility, authority, competence, resource
distribution, and more.
Involves evaluating skills and forming support groups to enhance team functionality.
v. Progress Reporting
Covers various types of reports, including mandatory periodic and exception reports, and
involves analysis and review processes.
vii. Trade-Offs
A contract is a legally binding agreement that obligates the seller to provide a product or service
and the buyer to pay for it. Contracts vary in complexity based on the product or service. Key
aspects include:
Types of Contracts: Can include agreements, subcontracts, purchase orders, or
memorandums of understanding.
Approval Process: Contracts typically undergo a more extensive review to ensure they
meet the identified needs.
Delegation of Procurement Authority: Defines who can sign agreements on behalf of
the organization.
1. Cost-Plus Contract
Definition: In a cost-plus contract, the developer is reimbursed for the actual costs incurred plus
an additional fee representing profit. This is akin to paying for a car rental where you cover
usage costs and expenses like insurance and gas.
Example: Company Alpha hires Company Beta to develop a software system. Company Beta
bills $80 per hour for engineering work and adds 20% for overheads and other expenses. Any
additional costs (like equipment or travel) are reimbursed by Company Alpha.
Advantages:
Disadvantages:
When to Use:
Definition: A fixed price contract involves an agreed total fee for delivering a well-defined
product or service within a specified schedule, similar to buying a bus ticket for a set price and
destination.
Example: Company Alpha and Company Beta agree on a fixed price of $100,000 for a software
project. Company Beta must deliver the completed project by a specific deadline without
additional compensation for overruns.
Advantages:
Disadvantages:
When to Use:
3. Cost-Reimbursable Contract
Definition: Cost-reimbursable contracts involve payment for actual costs incurred plus a fee.
Costs are classified as direct (e.g., salaries) or indirect (e.g., overhead).
Types:
Advantages:
Disadvantages:
When to Use:
Advantages:
Disadvantages:
When to Use:
Combinations of Fixed Price and Cost-Plus: Hybrid contracts that may apply fixed
price for certain phases and cost-plus for others.
Joint Ventures: Shared risks and rewards, often used for large or complex projects.
Royalty Agreements: Developers receive a percentage of revenues from the project,
aligning their interests with the project's success.
Long-Term Commitments: Ensures ongoing work and income for the developer, often
beneficial for both parties in extending project scope.
Definition: The SOW outlines the work to be performed under the contract. It serves as a
detailed description of the project's deliverables, timelines, and other specifics.
Key Elements:
Scope of Work: Detailed description of tasks, hardware, software, and work nature.
Location of Work: Specifies where work will be performed.
Period of Performance: Timelines, working hours, and billing details.
Deliverables Schedule: Specific deliverables with deadlines.
Applicable Standards: Relevant industry or company standards.
Acceptance Criteria: Criteria for evaluating the work.
Special Requirements: Any specific requirements such as certifications or testing.
1. Referenced Documents
2. Software Deliverables
3. Equipment and Hardware Deliverables
4. Training
5. Market Research
6. Procurement
7. Supervision of Subcontractors
8. Documentation
9. Testing
10. Installation
11. Maintenance Services
12. Other Services and Deliverable Items
13. Method of Delivery
Importance of Estimation: Watts Humphrey's quote, “If you don’t know where you are, a map
won’t help,” emphasizes the importance of accurate estimation in software projects. Accurate
estimates of cost, effort, risks, and resources are crucial for:
Historical Context: In the early computing days, software costs were relatively small compared
to the overall system cost. Today, software often constitutes the largest part of the cost in
computer-based systems. Errors in estimating software costs can significantly impact
profitability, making accurate estimation even more critical.
Human factors
Technical complexities
Environmental conditions
Political influences
1. Delay Estimation: While waiting until the end of the project would provide accurate
estimates, it's impractical as estimates are needed up front.
2. Base on Similar Projects: This approach works well if current projects are similar to
past ones, but historical performance is not always a reliable indicator of future results.
3. Decomposition Techniques: Break the project into smaller, more manageable parts to
estimate cost and effort.
4. Empirical Models: Use empirical models to estimate software cost and effort.
Combining multiple techniques and cross-checking them can improve accuracy.
Estimation Process:
Cost
Effort
Risks
Resources
Experience
Access to historical data
Courage to make quantitative predictions with limited qualitative information
Sizing Methods:
Size and Complexity: Provides insight into the project's size and complexity.
Planning and Scheduling: Facilitates realistic planning, scheduling, and monitoring by
setting measurable targets for each task.
Program Evaluation and Review Techniques (PERT): Analyzes the tasks involved in
completing a project.
Critical Path Method (CPM): Identifies the longest path of tasks and helps in
scheduling project tasks.
Timeline Charts: Visual representation of the project schedule.
Gantt Charts: Displays project tasks against a timeline, showing start and end dates.
Accurate effort measurement is crucial for creating realistic project plans and avoiding cost
overruns. Incorrect effort estimates can lead to project delays and significant budget
discrepancies. Here are the key techniques for measuring project effort:
Human-Based Technique
4. Delphi Technique
o Definition: A consensus-based technique that gathers estimates from a panel of
experts through iterative rounds of discussion and feedback.
o Procedure:
Experts provide estimates and rationales anonymously.
Feedback is shared, and estimates are refined in subsequent rounds.
o Advantages:
Incorporates diverse expert opinions.
Can account for complex, subjective factors.
o Disadvantages:
Time-consuming and dependent on expert availability.
Subject to biases and may require multiple iterations to reach consensus.
Summary
SLOC is useful for straightforward, language-specific projects but may not capture the
full complexity of the project.
Function Points provide a user-centered measure of software size and are applicable
across different technologies but require accurate historical data and can be imprecise.
COCOMO offers a detailed empirical approach but can be complex and data-dependent.
Delphi Technique leverages expert judgment and is useful for complex or uncertain
projects but can be time-consuming and subjective.
Estimating effort accurately is crucial for project management to ensure that project plans, costs,
and schedules are realistic. Here’s a breakdown of the different estimation techniques:
Overview:
Definition: SLOC measures the size of a software project based on the number of source
lines of code.
Measurement: Effort is expressed in terms of thousands of lines of code (KLOC).
Application: Useful when the programming language and technology are known and
stable.
Steps:
1. Count Lines of Code: Calculate the number of lines of code in the software.
2. Estimate Effort: Use historical data or predefined constants to estimate the effort
required per KLOC.
Considerations:
Inclusions: Only the code written by the development team is included; test drivers and
support software are excluded.
Exclusions: Comments and code generated by applications are not counted.
Disadvantages:
Overview:
Definition: FP measures the functionality provided by the software from the user’s
perspective.
Application: Suitable for projects where requirements are well-defined and technology is
not a limiting factor.
Steps:
1. Identify Unadjusted Function Points (UFP): Evaluate internal files, external interfaces,
user inputs, outputs, and inquiries.
2. Calculate General System Characteristics (GSC): Assess the complexity and
characteristics affecting the project.
3. Determine Value Adjustment Factor (VAF): Adjust UFP based on GSC ratings.
4. Compute Adjusted Function Points (AFP): Apply the formula AFP=UFP×VAFAFP =
UFP \times VAFAFP=UFP×VAF.
Advantages:
Language and Technology Independent: Function points are not affected by the
programming language or technology used.
Predictive Accuracy: Useful for projects with uncertain requirements or those
undergoing frequent changes.
Disadvantages:
Data Dependence: Requires historical data and past project experience for accurate
estimation.
Estimation Precision: FP may provide broad estimates and may not always be precise.
Overview:
Definition: COCOMO, developed by Dr. Barry Boehm, estimates effort based on lines
of code and cost driver attributes.
Levels: Basic, Intermediate, and Advanced, with increasing complexity.
Basic COCOMO:
Intermediate COCOMO:
Additional Step: Includes calculating the Effort Adjustment Factor (EAF) based on 15
cost driver attributes.
Formula: E=EAF×EiE = EAF \times EiE=EAF×Ei
Advanced COCOMO:
Enhancement: Applies cost driver attributes to each SDLC phase (e.g., analysis, design).
Applicability:
Suitable For: Complex projects with extensive requirements and where the development
environment is unfamiliar or lacking baseline data.
d) Delphi Technique
Overview:
Steps:
Advantages:
Expert Insight: Combines expertise and collective judgment for more accurate
estimates.
Flexibility: Adaptable to various types of projects and uncertainties.
Disadvantages:
Time-Consuming: The process can be lengthy and may require multiple rounds of
estimation.
Expert Dependence: Relies heavily on the experience and knowledge of the participants.
i. Salient Features:
The WBS is created after the scope statement and before the project schedule.
It acts as a "bridging" document between the scope and schedule.
v. Uses of WBS:
a. Manage Risk:
Helps make management decisions related to costs and identifies tradeoffs if costs are too
high.
c. Assign Work:
Useful for determining acquisition strategies and assigning tasks, helping in the creation
of statements of work.
Ensures all work aligns with the WBS and helps monitor progress, identify new tasks,
and revise estimates.
f. Report Expense:
Acts as a budgetary tool for planning and monitoring expenditure. It integrates with
computerized utilities for scheduling and monitoring tasks.
Summary: The Work Breakdown Structure is essential for breaking down and managing large
projects by dividing them into smaller, more manageable components. It provides a framework
for organizing tasks, managing costs, scheduling activities, and aligning work with the project’s
scope and objectives. The WBS is a vital tool for effective project management throughout the
project lifecycle.
Cost Accounts:
o In a product-oriented WBS, functional categories of work are grouped into "cost
accounts" within WBS elements.
o Each cost account is managed by a cost account manager responsible for its
functional area's contribution.
o Cost accounts from various departments or functions may merge into a single
WBS element.
Work Packages:
o Internal planning for a cost account is done through individual work packages.
o Each work package has its own budget and schedule.
o Work packages should be small enough to be handled by individuals or small
groups and completed in a short duration. For example, a small project might set a
maximum work package size of two weeks, while larger projects may have bigger
work packages.
WBS Implementation:
o The project manager decides how detailed the WBS should be based on the
project's size and complexity.
o For small projects, a formal WBS may not be necessary, but as projects grow in
size or complexity, a detailed WBS becomes more valuable.
o As project management environments mature, the WBS can evolve from simple
task lists to complex, time-phased activity lists, task lists organized by
deliverables, or an end-product-focused WBS integrated with cost accounts and
work packages.
Software Tools:
o When using project management software like MS-Project, the WBS is often
displayed as a vertical list with indents to show hierarchy. This format is
compatible with Gantt chart data entry.
o Some software provides a separate WBS view. Alternatively, you can create a
WBS in a word processor and then import it into your project management
software.
Word of Caution:
i) Types of WBS
j) Sample WBS
Reading References
1. Chapter 6, "How to Handle Large Projects: Divide and Conquer" from "Software Project
Management – A Practitioner Approach" by E. M. Bennatan.
2. Chapter 5, "Software Project Planning" from "SE – A Practitioner Approach" by Roger S.
Pressman.
3. Chapter 7, "Software Project Estimation: Tools and Techniques" by NIIT.
The primary objective of the Work Breakdown Structure (WBS) is to integrate the WBS,
schedule, and budget into a cohesive written plan. The WBS reflects activities associated with
overall project management, requirements, design, implementation, transition management,
testing, training, installation, and maintenance.
Defining Top-Level Tasks: The project manager is responsible for defining all top-level
tasks associated with a project.
Decomposing Tasks: These tasks are further decomposed as planning continues,
ensuring a comprehensive breakdown of all project activities.
1. Outline Format:
2. Graphical Format:
1.0 MANAGEMENT
2.0 DESIGN
3.0 DEVELOPMENT/INTEGRATION
5.0 INSTALLATION
5.3.1 Headquarters
5.3.2 Site 1
6.0 MAINTENANCE
Key Considerations
The WBS must be continually updated to reflect changes in the project scope, schedule,
and budget.
It should clearly communicate the project scope to all stakeholders.
The WBS should be in sync with the scope statement and project schedule, allowing for
continual improvement and updates.
Reading References
1. Chapter 6, "How to Handle Large Projects: Divide and Conquer" from "Software
Project Management – A Practitioner Approach" by E. M. Bennatan.
2. Chapter 5, "Software Project Planning" from "SE – A Practitioner Approach" by
Roger S. Pressman.
3. Chapter 7, "Software Project Estimation: Tools and Techniques" by NIIT.
a) Project Decomposition
Project decomposition involves breaking down a complex project into simpler, more manageable
components. This step is crucial for estimating the work involved and monitoring the activities
of various development teams.
Key Points:
1. Complex to Simple: Just as complex chemical compounds are broken down into simpler
molecules and atoms, complex projects are divided into smaller components.
2. Method of Decomposition: The approach to decomposition depends on the project
manager's objective:
o Functional Decomposition: Focuses on the user's perspective.
o Design Decomposition: Focuses on the project's programming components or
modules.
Iterative Process:
Figures:
Figure 1: Illustrates stepwise refinement, where each component is further divided into
lower-level components.
Types of Diagrams:
Facilitates easier management of large, complex tasks by dividing them into smaller,
manageable units.
The WBS list of project tasks is derived from the SOW, defining the scope of the project.
b) Functional Decomposition
Functional decomposition divides the system into operational components from the user's
perspective, typically occurring during the requirements phase.
c) Design Decomposition
Design decomposition divides the system into lower-level components corresponding to actual
software components.
WBS tasks are derived by asking, "What tasks need to be done to accomplish the project
objective?"
The WBS structure reflects the project manager's preferences and judgment.
As WBS levels become lower, the scope, complexity, and cost of each subtask decrease.
Lowest level tasks, or work packages, are independent and manageable units planned,
budgeted, scheduled, and controlled individually.
WBS Evolution:
The WBS evolves over the course of planning, and its structure may change as
scheduling, estimation, and resource allocation portions of the plan are completed.
IT Projects:
Conclusion
The WBS is an essential tool for project management, providing a structured approach to
breaking down a project into manageable components. This process involves project
decomposition, functional decomposition, and design decomposition, each serving a specific
purpose in the project lifecycle. By using stepwise refinement, project managers can gradually
provide more detail, making it easier to manage and understand the project.
For large systems, early decomposition into smaller components is crucial. Understanding the
rationale for decomposition ensures consistent results. Different reasons for decomposition can
yield different outcomes:
Phases are often handled as top-level WBS elements, with associated tasks defined for each
phase.
The WBS should reflect the project's phases, denoting a hierarchy of task relationships:
The project scope is an iterative process done by the project team using the WBS to capture and
decompose all work. A WBS organizes and defines the total project scope; work not in the WBS
is outside the project scope. Each level represents increasingly detailed project deliverables.
g) Defining Deliverables
Deliverables are shown in the WBS and reflected in the Project Plan's Deliverables section. A
sample template lists all deliverables, their due dates, responsible personnel, and the actual
delivery dates. This comparison helps measure how well the project team meets deadlines.
Tracking deliverables separately helps keep the project on track and serves as a communication
tool with stakeholders and the project team.
A project, like a large system, consists of multiple independent tasks. Each task can be
subdivided into subtasks, known as work packages. Creating a WBS involves:
In a session to divide tasks for the analysis phase, project managers and analysts list tasks based
on prior experience and client requirements:
Assign personnel responsible for each task and arrange subtasks in execution order.
1. Prepare questionnaire
2. Arrange client meeting or document feedback
3. Begin SRS document preparation (after preceding tasks are complete)
These steps ensure that each subtask is organized and executed in a logical sequence, facilitating
smooth project progression.
i. Implementation Strategy
When setting up a project WBS, consider how it will be used throughout the project. Early
planning should address WBS organization, schedule format, manager assignments, and charge
numbers. Mapping charge numbers, managers, and task groups can help track costs and progress.
Use of MS-Project: If using MS-Project, insert "text" columns for project charge
numbers and manager names.
Grouping Items: Follow your project's specific environment conventions for grouping
WBS items.
WBS Design Goals:
o Align with work execution and cost/schedule management.
o Highlight important or risky work efforts.
o Map requirements, plans, testing, and deliverables.
o Clarify ownership by managers and task leaders.
o Provide performance measurement and historical data.
o Be understandable to workers and accountants.
There are multiple ways to design a WBS for a project. Ensure discussions are concise and reach
closure efficiently.
ii. Methodology
i. General Guidelines
Software Development:
o Requirements analysis
o Prototype development (specification, design, implementation)
o Design (top-level, detailed)
o Implementation (coding, unit test)
o Integration (software, hardware/software)
o Testing (alpha, beta, acceptance)
o Installation/Maintenance (error correction, software enhancement)
Management:
o Planning
o Staffing
o Budget administration
o Quality assurance
o Configuration management
Training/Procurement:
o Acquisition of development tools and system components
o Equipment selection
o Vendor selection
Documentation:
o Technical writing
o Development documentation (deliverable and non-deliverable)
o Maintenance/User documentation
Ensure all team members are assigned WBS tasks. Follow a rule: if the task is not on WBS,
it is not worked on.
Remember:
Projects are dynamic; maintain WBS flexibility.
Functional decomposition should consider design for the next development phase.
Good modular design leads to small, simple, independent modules.
8. Scheduling
i. Salient Features:
A well-defined schedule at a detailed level enables effective monitoring and control of the
project. Software project scheduling allocates estimated effort across the planned project
duration to specific tasks.
During early project planning, a macroscopic schedule is developed, identifying major activities
and associated product functions. As the project progresses, this schedule is refined into a
detailed schedule with specific tasks and timelines.
This includes scheduling development activities and project resources, particularly people. Tools
like Gantt charts and network-scheduling techniques aid in this process. A schedule is only
effective if adhered to and updated as circumstances change.
Software projects can easily spiral out of control due to the multitude of activities requiring
monitoring, tracking, and control. When a project loses control, it impacts deadlines, budget, and
effort, affecting both the product and the team's credibility.
Aggressive deadlines, often set externally, are a fact of life in software projects. While
sometimes legitimate, these deadlines must be realistic for the team to meet them effectively.
To prevent delays:
Study past projects for similar situations and use historical data for current estimates
Use an incremental process model to create a realistic schedule
Present schedules and projected delays to clients, explaining the reasons
Use incremental models to deliver modules as they are completed
Balancing limited resources and client commitments requires creating realistic schedules based
on past projects or incremental models.
i. Scheduling Basics:
A small percentage of activities impact the project's on-time completion. Identifying and
ensuring the availability of inputs for these critical activities is crucial. The goal is to determine
the project's duration and phases, distributing the estimated effort accordingly.
a) Classification: Grouping similar tasks using tools like Work Breakdown Structure (WBS) and
decomposition technique helps in successfully managing a software project. This allows you to
divide the project into phases and activities, organizing the schedule accordingly.
b) Interdependence: Activities within a project are linked, with some needing to be completed
before others can start. As a project manager, you must determine and manage these
interdependencies.
c) Time and Effort Allocation: Assign start and end dates to activities and allocate appropriate
effort, managing within time and effort constraints to ensure project success.
d) Validation Criteria: Set validation criteria to ensure optimal resource allocation. For
example, avoid over-allocating resources to an activity requiring less effort.
e) Defined Responsibilities and Outputs: Assign roles and responsibilities, defining the
hierarchy within the team and linking roles to expected results. This helps track individual efforts
and activity progress.
Creating a well-structured and detailed schedule is essential for managing a software project
effectively, ensuring timely completion and resource optimization.
.3 Scheduling Tools
i. Gantt Charts
Introduction:
A Gantt chart is a widely used tool in project management that visually represents the timeline of
project activities. Named after Henry L. Gantt, who developed it, this chart provides a
straightforward and effective way to schedule and track project tasks.
Example:
Activity D: Starts on day 1 and is planned to last 20 days. The lighter shaded bar
represents the planned duration, and the darker shaded bar shows the current status. If the
current status is 19 days, the activity is one day short of completion.
Activity C: Planned for completion by day 40 but shows a smaller length in the chart,
indicating it is behind schedule.
Usage:
A Gantt chart allows you to easily see which activities should be ongoing at any given time. It
helps in comparing planned versus actual progress, identifying delays, and managing project
timelines.
Example Table:
Table 1 might display the following activities and their start and end times:
From this table, you can create a Gantt chart that visually represents these activities. The chart
helps track progress and ensures that tasks are completed on schedule.
Clarity: Provides a clear visual representation of the project timeline and task durations.
Tracking Progress: Easily shows whether tasks are on schedule, ahead, or behind.
Resource Allocation: Helps in managing resources and scheduling tasks efficiently.
Communication: Facilitates better communication among team members by providing a
common reference point.
The sample Gantt chart would illustrate the duration and progress of activities, with planned and
actual durations indicated through color shading. This visual representation aids in quickly
assessing the status of the project and identifying any deviations from the plan.
In summary, Gantt charts are a valuable tool for project scheduling, offering a visual and
intuitive way to manage and track project activities.
4o mini
In a Gantt chart, a status line helps track the progress of the project on a specific day. Here’s how
it works:
You can extend the bars weekly to reflect the work completed, providing an updated status of the
project at any given time.
Automated Tools:
While manual creation of Gantt charts was common in the past, modern software tools have
automated this process. For example, Microsoft® ProjectTM 2000 allows for automatic creation
and updating of Gantt charts, making it easier to manage project schedules.
Figure 3 demonstrates a more detailed Gantt chart with high-level activities and significant
milestones such as:
In Figure 3, you can see overlapping phases and high-level activities, giving a clear picture of the
project timeline. For more granularity, detailed Gantt charts can include the names of engineers
and equipment needed, although this might clutter the chart.
Levels of Detail:
As the project evolves, Gantt charts can become more detailed. For example, Figure 4 breaks
down high-level activities into specific tasks. This detailed chart provides continuity between
various levels of the project, ensuring that specific tasks align with overall project phases.
Limitations:
Gantt charts do not provide details on resource allocation or dependencies between tasks. For
instance, if an activity like integration requires varying numbers of engineers over time, this
might not be accurately reflected in a basic Gantt chart.
To complement Gantt charts, network scheduling techniques like PERT (Program Evaluation
and Review Technique) and CPM (Critical Path Method) are used to plan and analyze project
activities.
Common Components:
1. Activities: Basic tasks that consume time and resources. Each activity is represented with
an arrow in network schedules.
2. Nodes: Points in the network schedule where activities begin or end. Tail nodes mark the
start, and head nodes mark the end.
3. Network: A graphical representation showing all activities and nodes in a project.
4. Critical Path: The longest path through the network, representing the maximum duration
of the project. Activities on this path are crucial, as delays in these activities will directly
delay the entire project.
1. Preceding and Succeeding Nodes: Each activity must have a preceding and succeeding
node.
2. Distinct Node Numbers: Nodes should be numbered such that the head node has a
higher number than the tail node.
3. No Loops: The network schedule should not contain loops.
4. Unique Events: Each activity must have unique preceding and succeeding events.
Example Figures
A Gantt chart is a visual tool used for project management, providing a timeline view of a
project. The chart displays the status of tasks at a specific point in time, with the following key
elements:
To update a Gantt chart, extend the bars weekly to reflect the proportion of work completed.
Modern software, like Microsoft® ProjectTM 2000, can automate this process.
Network scheduling techniques, like PERT (Program Evaluation and Review Technique) and
CPM (Critical Path Method), trace the completion of predetermined activities in a project. These
techniques offer a way to analyze individual activities and their dependencies.
Activity: Represented by an arrow with its duration below it (e.g., "A, 15 Days").
Nodes: Represented by circles, indicating start and end points.
Critical Path: Depicted by a double line, representing the sequence of activities that
determine the project's duration.
Key Takeaways
Gantt Charts provide a timeline view and are useful for quick schedule information.
Network Scheduling Techniques offer a detailed analysis of activities and their
dependencies.
Following the basic rules ensures the accuracy and effectiveness of network schedules.
These tools and techniques are essential for effective project management, helping to plan,
schedule, and monitor project activities efficiently.
Dummy activities are used in network schedules to represent dependencies between parallel
activities. They are imaginary tasks that have no duration or description but help in organizing
the network schedule by showing relationships. For instance, in Figure 11, activities A and B are
parallel and need to be completed before starting activity C. A dummy activity, shown as a
dashed arrow, is introduced to represent this dependency.
css
Copy code
B
|
A | C
1---2---3
PERT: Program Evaluation and Review Technique
PERT was developed in 1957 for the Polaris Fleet Ballistic Missile project by the US
government. It is a probabilistic technique used for projects with uncertainty, such as complex
software projects.
Optimistic Time (T0): The shortest time an activity can take if everything goes well.
Pessimistic Time (Tp): The longest time an activity can take if everything goes wrong.
Most Likely Time (Tm): The most realistic estimate of the time required.
The expected time (Te) for an activity is calculated using the formula: Te=T0+4Tm+Tp6T_e =
\frac{T_0 + 4T_m + T_p}{6}Te=6T0+4Tm+Tp
Example Calculation
The expected time (Te) is: Te=7+4(10)+136=606=10 daysT_e = \frac{7 + 4(10) + 13}{6} =
\frac{60}{6} = 10 \text{ days}Te=67+4(10)+13=660=10 days
A PERT network schedule is created using the expected times for activities. It visually represents
the sequence of activities and their dependencies. Figure 12 shows a PERT network schedule for
the activities listed in the table.
Developed by Riggs and Jones (1990), flow graph representation extends PERT by incorporating
life cycle cost analysis. It includes detailed information about quantities, unit costs, time
variables, staffing costs, and learning curves.
Modern software tools simplify the creation and management of PERT charts. They help with:
These tools save time and reduce the manual effort required to maintain PERT charts, allowing
project managers to focus more on managing the project actively.
Definition: Risk is the possibility of loss, the inability to achieve program objectives
within defined cost, schedule, and technical constraints.
Types of Risks:
o Development Process Risks: Developer errors, natural disasters, disgruntled
employees, poor management objectives.
o Product-Related Risks: Incomplete requirements, unclear project deliverables
and objectives, complexity of the product.
Types of Risks
Development Process Risks: Issues arising from the development process itself,
including:
o Developer Errors: Poor training, inadequate skills, ergonomic problems.
o Natural Disasters: Floods, cyclones, fire, storms.
o Disgruntled Employees: Unauthorized access, sabotage.
o Poor Management Objectives: Ambiguous objectives, lack of contingency
plans, incomplete cost estimates.
Product Risks: Issues related to the product being developed, such as:
o Changing Requirements: Incomplete or unclear requirements, problems meeting
design specifications.
o Technical Issues: Issues with technical data, size, and complexity of the product.
Steps:
1. Risk Identification: Gathering information about potential risks and creating a
risk log.
2. Risk Analysis: Quantifying the level of uncertainty and degree of loss.
3. Risk Mitigation: Avoiding, monitoring, and planning for risks.
Risk Identification Techniques:
o Brainstorming: Team discussions about requirements, technology, manpower,
and environment.
o Risk Identification Questionnaire: A tool to identify and categorize potential
risks.
Risk Analysis Techniques:
o Risk Probability and Impact: Assigning probability values (0-1) and impact
values (1-10) to each risk.
o Risk Factor Calculation: Multiplying probability by impact to prioritize risks.
Risk Mitigation Strategies:
o Risk Avoidance: Preparing a risk management plan before the project begins.
o Risk Monitoring: Monitoring the top 20% of identified risks and mitigation
steps.
o Contingency Planning: Developing alternative plans for when mitigation efforts
fail.
Scenario: A software development project for a bus transport company, involving a new
platform and a large volume of data.
Challenges:
o New platform for the team.
o Large volume of data management.
o Need for intensive training for the project team.
Risk Management:
o Risk Identification: Identifying training needs and data management challenges.
o Risk Analysis: Assessing the impact of inadequate training and data
management.
o Risk Mitigation: Developing training programs and data management strategies.
1. Introduction
This risk management plan outlines the strategies for managing potential risks associated with
the project aimed at building a schedule adherence system. The project has a high confidentiality
requirement and a performance target of less than fifteen seconds for all popular browsers. It is
anticipated that numerous requirement changes will occur during the development process, and
the system will be implemented across several states in the country. The project starts on May 15
and should be completed by November 15.
2. Potential Risks
3. Risk Analysis
Risks are analyzed by estimating their probability of occurrence and their impact on the project.
The risk factor is calculated by multiplying the probability by the impact. Risks with higher
values are prioritized and require close monitoring.
4. Mitigation Plan
Probability: 0.8
Impact: 3
Risk Factor: 2.4
Mitigation: Conduct training sessions for staff before the project commencement.
Responsibility: Project Manager
Timeline: May 15 - July 15
Probability: 0.6
Impact: 7
Risk Factor: 4.2
Mitigation: Massive tuning of the architecture during the design phase and conducting
proof of concepts for the design.
Responsibility: Architect
Timeline: May 15 - End of project
Probability: 0.6
Impact: 5
Risk Factor: 3.0
Mitigation: Using the lowest compatible browser for development.
Responsibility: Developer
Timeline: May 15 - End of project
Probability: 0.5
Impact: 5
Risk Factor: 2.5
Mitigation: Ensure all details pertaining to the technology are available and maintain
close communication with the technology vendor.
Responsibility: Project Manager
Timeline: May 15 - End of project
Probability: 0.6
Impact: 8
Risk Factor: 4.8
Mitigation: Design a flexible architecture that can accommodate future changes and
enhancements.
Responsibility: Architect
Timeline: May 15 - End of project
High-priority risks need continuous monitoring. Contingency plans should be ready to address
issues if they arise. For instance, involvement of new technology, despite being a low-priority
risk, requires a contingency plan due to its relatively high probability.
Mitigation: Discuss with the vendor regarding a workaround for potential issues. Ensure
a backup plan is in place for system failures due to user load exceeding expectations.
6. Conclusion
This risk management plan provides a comprehensive strategy to identify, analyze, and mitigate
risks associated with the project. Continuous monitoring and proactive management of high-
priority risks will ensure the project remains on track and meets its objectives. Regular reviews
and updates of the RMMM plan will be conducted to adapt to any changes during the project
lifecycle.
Identify potential risks and list them in a table with columns for risk description,
probability of occurrence, and impact.
Sort the table by probability and impact, with high-probability and high-impact risks at
the top.
Draw a cutoff line to separate high-priority risks (above the line) from low-priority ones
(below the line).
Risk Evaluation:
2. Risk Assessment
Risk Probability:
Risk Impact:
Assess the consequences of each risk by considering its nature, scope, and timing.
Calculate the risk exposure (RE) using the formula: RE=P×CRE = P \times CRE=P×C
where PPP is the probability of occurrence and CCC is the cost if the risk occurs.
Risk Mitigation:
Develop strategies to avoid or reduce risks. For example, addressing high staff turnover
through better working conditions, competitive compensation, and team organization.
Risk Monitoring:
Risk Management:
Define risk referent levels for performance, cost, support, and schedule.
Develop relationships between risk components and referent levels to predict project
termination points.
Post-Development Risks:
Consider risks that may occur after software delivery, especially in safety-critical systems
(e.g., nuclear reactors, flight control).
Conduct software safety and hazard analysis to identify and control potential hazards.
7. RMMM Plan
Documentation:
Create a Risk Mitigation, Monitoring, and Management Plan to document all risk
analysis work.
Alternatively, use Risk Information Sheets (RIS) to manage risks individually in a
database for easy analysis and tracking.
Continuous Improvement:
Revisit the risk table regularly to update risk probabilities and impacts.
Add new risks, remove irrelevant ones, and adjust the priority of existing risks.
1. Risk Identification
2. Risk Analysis
3. Risk Mitigation
i. Risk Identification
Project manager
Project team leaders
Project team
Risk management team (if assigned)
Subject matter experts (SMEs) from outside the project team
Customers
End users
Other project managers
Stakeholders
Outside risk management experts
Risk Identification is an iterative process as new risks may become known as the project
progresses. The project team should be involved to develop a sense of ownership and
responsibility for risks and associated risk response actions.
The Risk Identification process usually leads to the Qualitative Risk Analysis process or directly
to the Quantitative Risk Analysis process when conducted by an experienced risk manager.
Sometimes, simply identifying a risk may suggest its response, which should be recorded for
further analysis and implementation in the Risk Response Planning process.
A. Risk Description
B. Product Design
C. Reusability
1. Are you reusing the program?
2. Do you foresee any problems in documentation?
3. Do you foresee any problems in performance?
4. Do you foresee any problems in functionality?
The answers to these questions allow the project manager to estimate the impact of risks.
Comparing information from this table with past results helps estimate the criticality of risk. Risk
identification is a systematic attempt to specify threats to the project plan. By identifying known
and predictable risks, the project manager takes steps to avoid or control them.
Risk is characterized by two main factors: uncertainty and loss. Uncertainty refers to the
potential occurrence of an event, while loss measures the potential negative impact if the event
does occur. When analyzing risks, a project manager quantifies these factors to plan effectively
for schedules and costs. This process transforms risk information into actionable decision-
making data, allowing the project manager to focus on the most critical risks.
1. Identify Risks: Define potential risks related to the product, process, organization, client,
or infrastructure.
2. Evaluate Risks: Assess the probability of occurrence and potential impact of each risk.
3. Quantify Risks: Use a scale from 0 to 1 for probability and 1 to 10 for impact to
calculate the risk factor (Probability x Impact).
4. Prioritize Risks: Rank risks based on their calculated risk factors to determine which
require the most attention.
1. Risk Avoidance: Develop a risk management plan before the project begins, identifying
and prioritizing risks, and preparing management plans.
2. Risk Monitoring: Continuously monitor top risks and mitigation steps, adjusting plans
based on real-time data.
3. Contingency Planning: Create alternative plans for the top risks, setting triggers to
activate these plans when necessary.
Risk
Risk Probability Impact Mitigation Start End
Factor Responsibility
Description (0–1) (1–10) Steps Date Date
(PxI)
Inexperienced Conduct training Project May
0.8 3 2.4 July 15
Staff sessions Manager 15
Tune
Performance
architecture, May End of
risk due to high 0.6 7 4.2 Architect
conduct proof- 15 project
data load
of-concepts
Cross-browser Develop using May End of
0.6 5 3.0 Developer
compatibility lowest 15 project
Risk
Risk Probability Impact Mitigation Start End
Factor Responsibility
Description (0–1) (1–10) Steps Date Date
(PxI)
compatible
browser
Ensure
availability of
Involvement of Project May End of
0.5 5 2.5 technology
new technology Manager 15 project
details, liaise
with vendor
Design changes
Design flexible May End of
during 0.6 8 4.8 Architect
architecture 15 project
development
The U.S. Air Force's guidelines categorize risks into four components:
Impact Assessment
Components/Categor
Performance Support Cost Schedule
y
Major
Major delays/increased Unavoidabl
Catastrophic Mission failure financial
costs (> $500K) e delays
shortages
Significan
Significant Non- t financial Possible
Critical degradation/questionab responsive/unsupportab shortages schedule
le success le software (up to slippage
$500K)
Some
Recoverable Realistic
Degradation of financial
Marginal costs/schedule slips achievable
secondary mission resource
($1K to $100K) schedule
shortages
Possible Early
Inconvenience or non- Minor cost/schedule
Negligible budget achievable
operational impact impact (< $1K)
under run schedule
Using the above guidelines, project managers can systematically analyze, mitigate, and manage
risks to ensure successful project completion.
mpact Values:
1: Catastrophic
2: Critical
3: Marginal
4: Negligible
High-impact but low-probability risks should not consume much management time.
High-impact and high-probability risks require attention and should proceed to further
analysis.
Low-impact and high-probability risks should also be carried forward.
RMMM Costs:
Notes:
This structured approach ensures that risks are identified, prioritized, and managed effectively,
minimizing their impact on the project's success.
What is it?
Why is it important?
SQA Encompasses:
SQA Activities:
Variation Control:
Inspections, Reviews, and Tests: Ensure each work product meets its requirements.
Feedback Loop: Measurement and feedback tune the process, minimizing defects.
Common Myths:
1. Quality Costs Money: Quality usually saves money by reducing rework and failures.
2. Software Failures Are Unavoidable: This myth justifies poor quality but should not be
a design parameter.
SQA Plan: Identifies and describes all required quality assurance resources and their
application.
Budgeting and Procurement: SQA resources are part of project development resources
from the start.
Quality Assurance (QA): Quality assurance is the systematic process of auditing and reporting
on product quality to ensure it meets defined standards and requirements. The goal of QA is to
provide management with insights and confidence that the product quality is up to the mark. If
issues are identified, it is management's responsibility to address them and allocate necessary
resources for resolution.
Historical Context
1. Early Days:
o In the early 20th century, quality assurance in manufacturing started with Bell
Labs in 1916.
o Formal approaches to quality control emerged in the 1940s, emphasizing
measurement and process improvement.
2. Software Development:
o Initially, software quality was the programmer's responsibility.
o Formal QA standards for software emerged in the 1970s, particularly in military
software development, and expanded to commercial software.
Key Concepts
1. Planning:
o Prepare an SQA plan outlining evaluations, audits, standards, procedures, and
feedback mechanisms.
2. Process Description:
o Review the software process description for compliance with organizational
policies and standards.
3. Compliance Verification:
o Review engineering activities to ensure adherence to defined processes.
4. Audits:
o Perform audits of work products to verify compliance and report findings.
5. Deviation Handling:
o Document and address deviations from standards and procedures.
6. Reporting:
o Record non-compliance issues and report to senior management.
7. Change Management:
o Coordinate change control and collect software metrics.
1. Purpose:
o Metrics help measure and compare software quality objectively.
2. Examples:
o Reliability: Percentage of operational time.
o Recoverability: Time taken to recover after failure.
o User-Friendliness: Training time required for new users.
3. Measurement:
o Quality should be measured throughout development, not just at the end, to catch
issues early.
General Guidelines
1. Small Projects:
o SQA activities can be managed by the project manager.
2. Testing Independence:
o Testing is best conducted by a separate team, though small projects might not
justify this.
3. SQA Team Independence:
o SQA activities should ideally be performed by an independent team, though small
projects may need different arrangements.
4. Requirement Specification:
o Effective quality control relies on clear and detailed software requirements
specifications.
By following these principles and practices, software development teams can enhance the quality
and reliability of their products, ensuring they meet both explicit and implicit requirements
effectively.
Project management involves complex activities like planning, resource allocation, risk
management, and estimation. Microsoft Project 2000 helps automate these tasks, offering
features for project planning, resource and cost allocation, and tracking.
Effective project management involves breaking down a project into manageable units.
Microsoft Project helps with this by allowing you to define tasks and their details.
Example Scenario:
o XYZ Inc. plans to develop an ERP project in five phases: analysis, design,
development, testing, and implementation.
o In the analysis phase, tasks are defined and managed using Microsoft Project.
Creating Tasks:
1. Access Task Information:
Click the Project menu and select Task Information.
Alternatively, use the shortcut Shift + F2.
2. Define Task Details:
Enter the task name (e.g., Analysis).
Set the duration (e.g., 5 days) and other relevant details.
For estimated durations, use a question mark or select the Estimated
checkbox.
3. Subtasks and Summary Tasks:
Create subtasks (e.g., Project scope determination) and indent them under
the main task (e.g., Analysis).
A summary task aggregates related subtasks and reflects their start and
finish dates.
1. General Tasks:
o Regular tasks without special duration characteristics.
o Example: Analysis task.
o Created using the Task Information dialog box, specifying the task name and
duration.
2. Milestone Tasks:
o Mark significant accomplishments with no duration.
o Example: Analysis Complete.
o Create by selecting the Mark task as milestone checkbox in the Advanced tab of
the Task Information dialog box.
o Displayed as tasks with no duration in the Gantt chart.
3. Recurring Tasks:
o Tasks that repeat at regular intervals (daily, weekly, monthly, or yearly).
o Example: Weekly project meetings.
o Created using the Insert menu and Recurring Task command.
Specify the recurrence pattern and end date.
The task appears with a circular arrow symbol and is shown at intervals in
the Gantt chart.
Summary:
Microsoft Project 2000 offers tools to efficiently manage project tasks, including creating
general, milestone, and recurring tasks. It helps visualize project schedules and track progress
using Gantt charts and other features.
Constraints are limitations or conditions that impact a project’s schedule and quality. They can
affect various aspects, such as the project’s duration, resources, and performance goals. Here’s a
detailed overview of how to handle constraints in project management using Microsoft Project:
Microsoft Project allows you to apply various constraints to tasks to manage scheduling more
effectively. These constraints help in controlling when tasks can start or finish.
Set a Finish No Later Than constraint with the date August 10.
Deadlines are strict finish dates for tasks. They act as target dates without affecting the overall
project schedule. Deadlines help in tracking task progress and ensuring timely completion.
Example: Set July 15 as the deadline for the "Assign development staff" task.
Dependencies define how tasks relate to each other. Four types of dependencies can be set:
1. Finish-to-Start (FS):
o Definition: The successor task starts after the predecessor task finishes.
o Example: The high-level design begins after the SRS document is completed.
2. Start-to-Start (SS):
o Definition: The successor task starts at the same time as the predecessor task.
o Example: Functional and integration testing start simultaneously.
3. Finish-to-Finish (FF):
o Definition: The successor task finishes at the same time as the predecessor task.
o Example: Preparing a checklist cannot end until implementation testing is
complete.
4. Start-to-Finish (SF):
o Definition: The successor task cannot finish until the predecessor task starts.
o Example: Testing phase starts only after the coding phase begins.
Lag Time: The delay between the predecessor and successor tasks. Set as a positive
value.
Lead Time: The overlap between tasks. Set as a negative value.
These functionalities in Microsoft Project enable you to manage your project schedule
effectively by setting constraints, deadlines, dependencies, and timing adjustments.
4o mini
Splitting Tasks
Assigning Resources
Types of Resources:
o Work Resources: People and equipment that are not consumed by the project
(e.g., developers).
o Material Resources: Resources that are consumed by the project (e.g., hardware,
software).
Steps to Assign Resources:
1. Create a task (e.g., "Develop prototype").
2. Go to the Tools menu, then Resources, and select "Assign Resources."
3. In the Assign Resources dialog box, select the resource (e.g., hardware) and
specify the units.
Assigning Costs
Types of Costs:
o Standard Rate: Normal rate for a resource.
o Overtime Rate: Rate for resource use beyond standard hours.
Steps to Assign Costs:
1. Go to the Resource Sheet view.
2. Select the resource (e.g., "Tester").
3. Open Resource Information from the Project menu.
4. Enter standard and overtime rates in the Cost tab.
Progress Lines:
o Always Display: Shows current progress status.
o Selected Dates: Shows progress on specific dates.
o Recurring Intervals: Displays progress lines at regular intervals (daily, weekly,
etc.).
o Steps to Set Progress Lines:
1. Go to the Tools menu, then Tracking, and select "Progress Lines."
2. Choose the appropriate display options (e.g., daily every third day).
Project Baselines:
o Definition: Baselines represent the planned schedule and cost for comparison
against actual performance.
o Steps to Save a Baseline:
1. Go to the Tools menu, then Tracking, and select "Save Baseline."
2. Choose to save the baseline for the entire project or selected tasks.
These features help manage tasks and resources efficiently and track the progress of your project
accurately. If you need more details or have specific questions about these concepts, feel free to
ask!
4o mini
Rescheduling Tasks
Purpose: Adjust the start or finish dates of tasks to reflect changes in the project timeline.
Steps to Reschedule Tasks:
1. Select Task: Choose the task to reschedule (e.g., "Create user manuals").
2. Open Update Project: Go to the Tools menu, click Tracking, and then Update
Project.
3. Select Reschedule Option: Choose "Reschedule uncompleted work to start after"
and specify the new start date.
4. Confirm: Select whether to reschedule the selected task or the entire project, then
click OK.
Purpose: Adjust the project’s start and finish dates to accommodate changes or delays.
Steps to Modify Duration:
1. Open Project Information: Click the Project menu, then Project Information.
2. Adjust Finish Date: In the Project Information dialog box, select "Schedule
from" and choose "Project Finish Date."
3. Set New Finish Date: Select the new finish date from the calendar (e.g., June 15)
and click OK.
Purpose: Create and view reports to analyze project status and details.
Creating Standard Reports:
1. Open Report Menu: Go to the View menu and select Reports.
2. Choose Report Type: Select Custom to create a new report.
3. Define New Report: Click New in the Custom Report dialog box, choose the
Resource or Task option, and click OK.
4. Specify Report Details: Enter the report name, sort information, and click OK.
5. Preview Report: Click Preview to view the report. Ensure a printer is configured
to print if needed.
Modifying and Printing a Standard Report
Purpose: Adjust the content or format of reports to better suit project needs.
Steps to Modify Reports:
1. Access Report Dialog Box: Use the Task report dialog box to modify report
display settings.
2. Save and Print: Adjust as necessary, save changes, and print the report if needed.
These features in Microsoft Project help ensure that project tasks, schedules, and resources are
managed effectively, providing clear visibility into project performance and status. If you need
further clarification or additional details, let me know!
Software Implementation
Implementation Prerequisites:
1. Finalize Licenses:
o Confirm the number of software licenses required.
2. Error Logging Procedures:
o Establish procedures for logging and handling errors.
3. System Changeover Scheduling:
o Plan the schedule for transitioning to the new system.
4. Data Backup Procedures:
o Implement procedures for maintaining data backups.
5. Coordination Committee:
o Set up a committee to oversee implementation, including members from various
departments.
1. Implementation Plan:
o Details methods of system transfer, hardware/software requirements, and
implementation schedule.
o Includes sections for Resource List, Software Components, and Data Migration.
2. Training Plan:
o Contains focus areas, training courses, schedules, and roles/responsibilities.
o Ensures both users and operators are trained effectively.
3. Acceptance Plan:
o Details acceptance testing procedures, including testing schedule, criteria,
resource list, and bug reporting.
4. System Support Plan:
o Outlines post-implementation support, including warranty details and support
personnel.
Implementation Activities:
Summary:
Modification and Printing: Adjust report settings to show summary tasks, add gridlines,
and print as needed.
Implementation: Involves planning, training, acceptance testing, data migration,
installation, and closure activities to ensure successful product deployment and user
satisfaction.
Project-End Activities
1. Data Collection
o Collect and organize data accumulated during the project.
o Analyze actual cost per task, cost overruns and underruns, unplanned tasks, and
planned but unnecessary tasks.
o Record software change requests and bug statistics.
o Evaluate the project team's performance based on task completion, quality, cost
adherence, schedule adherence, innovation, teamwork, communication, and self-
assessment.
2. Post Mortem
o Document valuable information and lessons learned from the project.
o Make recommendations for future project enhancements.
o Submit project-related items to the project library.
o Conduct feedback sessions among team members regarding interpersonal
communication and work processes.
o Prepare a project closedown report with:
Project description
Success assessment
Schedule, budget, and technical details
Implementation problems
Data updates on cost estimation
3. Product Delivery
o Transfer packaged software, documentation, and contract items to the
maintenance team.
o Ensure smooth knowledge transfer from the development team to the maintenance
team.
Software Maintenance
1. Importance of Maintenance
o Continuous adjustments are necessary due to changing environments.
o Maintenance can be in-house or outsourced.
2. Types of Maintenance Activities
o Corrective Maintenance (17%): Fixing bugs and defects.
o Adaptive Maintenance (18%): Modifying the code to adapt to new features or
environments.
o Perfective Maintenance (60%): Improving code maintainability and
functionality.
o Preventive Maintenance (5%): Protecting code against potential failures by
adhering to coding standards.
3. Maintenance Phases
o Initiation Phase:
Knowledge acquisition from the development team.
Baseline assessment and understanding operating procedures.
o Preparation Phase:
Setting up administrative and support procedures.
Finalizing and implementing procedures from the initiation phase.
o Execution Phase:
Executing maintenance activities and maintaining communication with the
development team.
4. Maintenance Curve
o High Effort: Immediately after implementation due to numerous changes and
issues.
o Stable Effort: During the system’s maturity phase with fewer major changes.
o Increasing Effort: As the system becomes obsolete, requiring significant updates
and enhancements.
5. Maintenance Process
o Prerequisites: Complete and up-to-date documentation, available
hardware/software/network, and a constituted maintenance team.
o Corrective Maintenance Process: Involves reporting, analyzing, fixing, testing,
and releasing modifications.
o Adaptive Maintenance Process: Includes planning and implementing changes
due to external environment modifications.
o Perfective Maintenance Process: Enhancements for better performance and
additional functionalities.
These elements outline how project completion and maintenance processes are managed to
ensure the software continues to meet users' needs and remains functional over time.
Maintenance Processes
1. Preventive Maintenance
o Objective: Make software more adaptable, correctable, and enhanceable.
o Steps:
Risk Identification: Project coordinator identifies potential risks.
Recommendations: Suggestions for maintenance actions are prepared for
management approval.
Detail Plan: The project detail plan for the changes is prepared.
Team Formation: A maintenance team is formed based on the work required.
Implementation: Changes are made according to the request procedure.
Deployment: Changes are deployed based on the deployment strategy.
2. General Maintenance Process
o Initiation: User requests changes, and the process involves impact analysis and
planning.
o Execution: Testing and releasing system changes based on a deployment strategy.
o Coordination: Managed through change management to ensure smooth operation.
Reengineering
1. Definition
o Objective: Modify and evolve software to meet changing business requirements.
o Importance: Prevents obsolescence and supports continuous adaptation.
2. Types of Reengineering
o Reverse Engineering:
Purpose: Recover design from source code to understand and improve old
systems.
Steps:
Analyze and gather information about the existing system and code.
Create draft documents and update based on user feedback.
Reengineer requirements, design, and construction to enhance the
system.
Tools: Rigi, Refine Language Tools, static analyzers, and test editors.
o Forward Engineering:
Purpose: Build new programs from old system requirements and design
specifications.
Steps:
Recover and use old design information to improve and reconstitute the
system.
Move from high-level abstraction to low-level implementation.
1. Risk Identification:
o Project coordinator identifies potential risks.
2. Recommendations:
o Maintenance actions are proposed to management for approval.
3. Detail Planning:
o A detailed plan is prepared for implementing changes.
4. Team Formation:
o A team is assembled based on the scope of work.
5. Implementation:
o Changes are made following the request procedure.
6. Deployment:
o Changes are deployed according to the strategy.
7. Process Flow:
o Start: User requests a change.
o End: Changes are tested and released for operation.
o Coordination: Managed through change management.
Reengineering
Objective: Evolve and modify software to meet changing business requirements and maintain
competitiveness.
1. Reverse Engineering:
o Definition: Recover the design from source code to understand and improve old
systems.
o Purpose: Identify system components and interactions, and represent the system at a
higher abstraction level.
o Process:
Gather information about source code, design documents, and developer
knowledge.
Create and refine draft documents with user feedback.
Perform requirement, design, and construction reengineering.
Test the reengineered system through various testing methodologies.
2. Forward Engineering:
o Definition: Build new programs from old design specifications to enhance and
reconstitute the system.
o Purpose: Improve performance and add new functions by moving from high-level
abstraction to low-level implementation.