Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

Software Project Management: The Forward Pass and Backward Pass are two components of the Critical Path

The Forward Pass and Backward Pass are two components of the Critical Path Method, Which is a
It is the process of planning, organizing, and controlling resources to successfully deliver software project management technique used to determine the most efficient schje4dule for completing a
projects. it involves overseeing the development of software applications from conception to delivery, Overview of software Project Planning: project.
while ensuring that the project is completed on time, within budget, and to the required quality Software project planning is a critical process that lays the foundation for the entire software By using the Forward Pass and backward Pass, Project managers can determine the float or slack
standards. development project. It involves the creation of a comprehensive pro0ject plan that outlines time for each activity. Float or slack time is the amount of time an activity can be delayed without
Key activities: the project scope, objectives, goals, and requirements, as well as the resources, timelines, and affecting the overall project duration or the critical path.
1. Project Planning budget required to complete the project. Here is an overview of the key steps involved in i. Forward Pass: This technique is used to calculate the earliest start and finish times for each
2. Project Monitoring software project Planning: activity. It involves starting at the first activity in the project schedule and calculating the
3. Risk management i. Defining the project scope: This involves identifying the goals and objectives of the earliest start time by adding the duration of the activity to the earliest start time of its
4. Resource Management Project, understanding the project requirements, and identifying the key deliverables. predecessor.
5. Quality Assurance ii. Creating a project plan: The project plan is a roadmap that outlines the task required to ii. Backward Pass: This technique is used to calculate the latest start and finish times for each
6. Communication management. complete the project, the timeline for each task, and the resources needed for each task. activity. it involves starting at the last activity in the project schedule and calculating the latest
Project: iii.Identifying project risks: Identifying potential risks to the project is an important step in finish time by subtracting the duration of the activity from the latest finish time of its successor.
A project is a temporary endeavor with a defined scope, objectives and a specific set of tasks and project planning. This helps to anticipate and mitigate risks before they occur, minimizing The latest start time is then calculated by subtracting the duration of the activity from the latest
activities that need to be completed to achieve the project goals. it typically involves a team of people the potential impact on the project. finish time.
working together to create a unique product, service, or result. Projects can be related to a wide range iv. Defining the project team: This involves identifying the team members, their roles and
of industries, including construction, engineering, marketing, and technology. responsibilities, and the resources required to complete the project. Work breakdown structure:
Characteristic of Project: v. Establishing a project schedule: The project schedule outlines the timelines for each task, A work Breakdown Structure (WBS) is a hierarchical diagram that breaks down the scope of a
 Non routine tasks are involved, Planning is required, Specific objectives are to be met identifies milestones and deadlines, and ensures that the project is completed on time. project into smaller, manageable components. The WBS is a deliverable oriented decomposition of
 Work is carried out for someone other than yourself, Work involves several specialism, work is vi. Allocating resources: This involves allocating the necessary resources, including staff, the project scope that defines the total scope of the project, and breaks it down into smaller, more
carried out in several phases, and the project is large or complex. budget, equipment, and software, to ensure that the project can be completed on time and manageable work packages or activities.
Software Project: within budget. The WBS is a useful tool for project planning and control as it helps in defining the project scope,
It is a specific type of project that is focused on developing software applications. it involves a team In summary, software project planning is critical for the success of any software identifying task and activities, allocating resources, and establishing a project schedule. it also
of software developers, designers, testers, and other professionals working together to design, build, development project. by defining project goals, outlining the necessary tasks, allocating helps in tracking progress, identifying potential risks, and communicating project information to
test, and deploy software applications that meet specific user needs. Software projects are typically resources, and monitoring progress, project managers can ensure that software projects are stakeholders.
undertaken to create new software products, improve existing software products, and customize completed on time, within budget, and to the required level of quality. The WBS starts with the overall project objective at the top and breaks it down it smaller, more
existing software products to meet specific user requirements. manageable components. The level of detail included in the WBS depends on the size and
Characteristic of software project: complexity of the project, and the level of detail required for effective management and control.
i. Complexity: software projects can be highly complex, often involving numerous interrelated Software project Scheduling: Each element in the WBS is a work package or an activity that contributes to the completion of the
components, dependencies, and technical challenges. Objectives of activity planning: project. Each work package or activity has a clearly defined scope, deliverables, schedule and cost
ii. Continuous evolution: Software projects are often subject to continuous evolution, as requirements The objectives of activity planning are as follows: and is assigned to a responsible person or team for execution.
and user needs change over time. 1. Clearly define the activities: One of the primary objectives of activity planning is to identify and Overall, the WBS is an essential tool in Project Management as it provides a clear and structured
iii.Creativity: Software projects often require a high degree of creativity and innovation, as define the specific activities that need to be completed to achieve a particular goal or project. By approach to breaking down the project scope into manageable components and effectively
developers seek to solve complex technical problems and create novel solutions. clearly defining the activities, it is easier to understand what needs to be done, who is managing the project.
iv.High degree of customization responsible for doing it, and how it fits into the larger project or goal.
v. Uncertainty and risk 2. Sequence the activities: Another important objective of activity planning is to sequence the A typical Project life cycle:
vi.Collaboration and teamwork activities in the most logical and efficient order. This helps to ensure that activities are Requirement analysis
Differences between a Project and Software Project: completed in the correct sequence and that resources are used effectively. Specification
Project Software Project 3. Estimate the time required: Activity planning also involves estimating the time required to Design
Projects can have a broad scope. It typically have a narrower scope. complete each activity. This helps in scheduling activities and setting realistic timelines for the Coding
project or goal. Verification and validation
4. Allocate resources: Activity planning involves allocating resources, such as staff, equipment, Implementation/installation
Software project VS other project:
and funding, to each activity. This helps to ensure that the necessary resources are available Maintenance and support.
Software projects have several differences when compared to other types of projects. Here are a few
when needed. i. Requirement Analysis: This is finding out in details what the users require of the system that the
key differences:
5. Identify dependencies: Activity planning involves identifying dependencies between activities. project is to implement. Some works along these lines will almost certainly have been carried
1. Complexity: Software projects are often more complex than other projects because they involve
This helps to ensure that the activities are completed in the correct order and that one activity is out when the project was evaluated, but now the original information obtained needs to be
the development of complex software system, which require specialized knowledge and expertise.
not started before another related activity is completed. updated and supplemented. Several different approaches to the user’s requirements may be
2. Requirements: Software projects often have changing requirements, as customers may not have a
6. Monitor Progress: Finally, activity planning involves monitoring progress to ensure that the explored.
complete understanding of their needs or may want to modify requirements as the project
project or goal is on track. This helps to identify and delays or issues that need to be addressed ii. Specification: detailed documentation of what the proposed system is to do.
progresses.
to keep the project on schedule. iii.Design: a design has been drawn up which meets the specification. Design will be in two stages.
3. Technical Challenges: Software projects often involve complex technical challenges related to
Overall, the objectives of activity planning are to ensure that a project or goal is completed One will be the external or user design concerned with the external appearance of the
software development, such as the need for specific programming languages, platforms, and
efficiently and effectively, with the necessary resources and activities completed in the correct application. The other produces the physical design which tackles the way that the data and
frameworks, as well as the need to test software across multiple platforms and devices.
sequence and timeline. software and procedures are to be structured internally.
4. Rapid change: Software development moves at a faster pace than many other industries, which can
Network Planning Model: iv.Coding: This may refer to writing code in a programming language or use any application builder.
make it challenging to keep up with changing technology and customer demands.
A network planning model is a project management tool that uses a visual representation of a Even where software is not being built from scratch, some modification to the base package
5. Collaboration: Software development often requires close collaboration between team members, as
project’s tasks and dependencies, commonly known as a network diagram, to help plan, could be required to meet the needs of the new application.
well as with customers and stakeholders, to ensure that the software is meeting the needs of all
schedule and manage the project. v. Verification and validation: Whether software is developed specially for the current application or
parties.
Components of a Network Planning Model: not, careful testing will be needed to check that the proposed system meets its requirements.
Overall, software projects are unique in their complexity, technical challenges, and requirements
1. Activity Definition: This is the process of identifying and defining all the tasks required to vi.Implementation: Whole of the project after VS. Installation of the system after the software has
which can make them more challenging to manage than other types of projects. Effective project
complete a project. been developed. The latter case includes setting up operational data files and system parameters,
management, specialized expertise, and collaboration among team members are all critical to the
2. Activity sequencing: This involves determining the order of tasks and identifying their writing user manuals and training users of the new system.
success of software projects.
dependencies. A network diagram is used to depict the tasks and their relationships. vii. Maintenance and support: once the system goes live, there is a continuous need for error
Importance and Problems in Software project management:
3. Activity Duration Estimation: This is the process of estimating how long it will take to correction as well as extensions and improvements to the system.
Importance:
complete each task. Problems with software Projects:
SPM is important because it helps ensure that software projects are delivered on time, within
4. Resource planning: This involves identifying the resources needed to complete each task,  Poor estimates and plans
budget, and to the required quality standards. Here are some of the key reasons why software
such as staff, equipment, and funding.  Lack of quality standards and measures
project management is important:
Critical Path Method (CPM):  Lack of guidance about making organizational decisions
1. Cost control: Effective software project management helps control costs by managing resources,
CPM is a project management technique used to determine the sequence of activities that are  Lack of techniques to make progress visible.
identifying cost overruns, and ensuring that the project stays within budget.
critical to the completion of a project. it is a mathematical algorithm that helps project managers  Poor role definition
2. Time management: Software project management helps manage the project schedule, identify
to estimate the duration of a project and identify the activities that can affect its overall
potential delays, and insure that the project is delivered on time.  Incorrect success criteria.
completion time. The critical path is the longest sequence of activities that must be completed
3. Quality assurance: SPM helps ensure that the software is delivered to the required quality Types of Project Plan:
on time to ensure the project is completed on schedule. it determines the minimum duration of
standards, meets customer expectations, and is free from defects. i. Quality Plan: describes the quality procedures and standards that will be used in a
the project, and any delay in activities on the critical path will result in a delay in the project’s
4. Risk management: SPM helps identify potential risks and develop strategies to mitigate or avoid project.
completion.
them. ii. Validation Plan: Describes the approach, resources and schedule used for system
CPM Technique:
5. Communication: SPM helps ensure that all stakeholders are informed about the project status, validation.
i. Identify all the activities that are required to complete the project and their respective
potential issues, and other important information. iii. Configuration management plan: Describes the configuration management
durations.
Problems: procedures and structures to be used.
ii. Define the sequence of activities and the dependencies between them.
1. Changing requirements: Software projects often face changing requirements, which can iv. Maintenance Plan: Predicts the maintenance requirements of the system,
iii.Create a network diagram that shows the activities and their dependencies.
make it challenging to plan and management the project effectively. maintenance costs and effort required.
iv. Calculate the earliest start time, earliest finish time, latest start time, and latest finish time for
2. Technical complexity: Software development is often technically complex, and requires v. Staff development plan: Describe how the skill and experience of the project
each activity.
specialized knowledge and expertise, which can be difficult to manage. teamn members will be developed.
v. Identify the critical path, which is the sequence of activities that have no slack or float time
3. Resource allocation: Software project management requires effective resource allocation, Project Scheduling:
and must be completed within their estimated duration to prevent delays in the project.
which can be challenging when dealing with changing requirements and uncertain timelines. Scheduling distributes estimated effort across the planned project duration by allocating the effort
vi. Monitor and control the project to ensure that it stays on track and any delays are identified
4. Team coordination: Software development often in valves teams of people with different to specific tasks. During early stages of project planning, a macroscopic, schedule is developed.
and mitigated.
skills and expertise, which can make it challenging to coordinate their efforts effectively. Later each task is refined into a detailed schedule. Project scheduling can be viewed from two
Program Evaluation and Review Technique (PERT):
5. Project scope: Defining the scope of a software project can be challenging, as it requires a different perspectives.
It is a project management tool used to plan and manage complex projects. PERT was developed
deep understanding of the customer’s needs and the project requirements. Principles of Project scheduling:
in the late 1950s for the U.S. Navy’s Polaris missile program, and it is designed to analyze the
Overall, effective software project management requires specialized knowledge and i. Compartmentalization: The project must be compartmentalized into a number of manageable
tasks involved in completing a project and determine the minimum time needed to complete the
expertise, and can face a number of challenges related to changing requirements, technical activities, actions, and tasks; both the product and the process are decomposed
project. PERT allows for uncertainty in the estimates of task durations by using three estimates for
complexity, and team coordination. However, by using effective project management ii. Interdependency: The interdependency of each compartmentalized activity, action or task must be
each task: optimistic, pessimistic, and most likely. By using these three estimates, PERT calculates
techniques, teams can manage these challenges and deliver high-quality software projects on determined. Some tasks must occur in sequence while other can occur in parallel.
a weighted average duration for each task that takes into account the range of possible durations.
time and within budget. iii.Time allocation: Each task to be scheduled must be allocated some number of work units.
Overall, PERT is a powerful project management tool that can help project managers to plan and
Process: iv.Effort validation: Every project has a defined number of people on the team.
manage complex projects effectively.
0In general, a process is a set of steps or activities that are undertaken to achieve a particular v. Defined responsibilities: Every task that is scheduled should be assigned to a specific team
PERT Technique:
goal or outcome. In the context of business or organizational management, a process member.
i. Identify all the tasks that are required to complete the project and their respective durations.
typically refers to a set of structured activities designed to accomplish a specific business. vi.Defined outcomes
ii. Define the sequence of tasks and the dependencies between them.
Process of SPM: vii. Defined milestones
iii.Estimate the time required to complete each task.
Software project management typically involves the following process: Objectives of Project scheduling:
iv. Calculate the earliest start time, earliest finish time, latest start time, and latest finish time for each
1. Project Planning: This involves defining the project goals, objectives, scope, and Completing the project as early as possible by determining the earliest start and finish activity.
task.
requirements. The project plan should also include a project schedule, budget, and Calculating the likelihood a project will be completed within a certain time period.
v. Identify the critical path, which the sequence of tasks that have no slack or float time and must be
resource allocation. Finding the minimum cost schedule needed to complete the project by a certain date.
completed within their estimated duration to prevent delays in the project.
2. Requirement Analysis: This involves gathering and analyzing the requirements for the Progress control
vi. Monitor and control the project to ensure that it stays on track and any delays are identified and
software project. This can be done through meetings with the customer, interviews, Smoothing out resource allocation over the duration of the project.
mitigated.
surveys, and other techniques. Types of Project Schedules:
Precedence Diagramming Method (PDM):
3. Design: This involves creating a detailed design of the software system, including the i. Master schedule: Master schedules are general summaries of the overall project, from start to
It is a project management technique that uses a graphical representation of project activities and
architecture, data structures, algorithms, and user interface. finish.
their dependencies. PDM is also known as the Activity-On-Node (AON) network diagramming
4. Implementation: This involves coding the software system using the chosen programming ii. Milestone Schedule: Milestone Schedule list all of the project’s significant events, and are often
method, and it is commonly used in Project Management Software.
language and development tools. This may also involve testing and debugging the presented to senior managers so that they can see the project’s progress.
In PDM, the project activities are represented by boxes or nodes, and the dependencies between
software to ensure that it works as intended. iii.Detailed schedule: This is the most operational of the three, breaking down all of the activities,
them are represented by arrows. The nodes are labeled with the activity name, duration, and other
5. Testing: This involves testing the software system to ensure that it meets the requirements tasks and action steps that need completing.
relevant information. The arrows indicate the dependencies between the activities and the direction
and quality standards. This may involve unit testing, integration testing, system testing, Task Network:
in which they must be completed. Using PDM, project managers can identify the critical path,
and acceptance testing. It is also called an activity network
which is the sequence of activities that determines the minimum duration of the project.
6. Deployment: This involves deploying the software system to the production environment. It is a graphic representation of the task flow for a project
PDM allows for the use of four types of Dependencies:
This may involve installation, configuration, and training. It depicts task length, sequence, concurrency, and dependency.
i. Finish-to-start (FS): the start of the successor activity depends on the completion of the
7. Maintenance: This involves maintaining the software system, fixing bugs, and adding new Tools for Project Scheduling:
predecessor activity.
features as needed. PERT Chart: a graphical representations of a project’s schedule. It shows the sequence of tasks,
ii. Start-to-Start (SS): The start of the successor activity depends on the start of the predecessor
Throughout the software project management process, effective communication and which tasks can be performed simultaneously.
activity.
collaboration among team members, stakeholders, and customers are critical. Project Gantt chart: Illustrates the start and finish dates of the terminal elements and summary elements of
iii.Finish-to-Finish (FF): The completion of the successor activity depends on the completion of
manager should also monitor and control the project schedule, budget, and quality to a project.
the predecessor activity.
ensure that the project is delivered on time, within budget, and to the required quality Work Breakdown Structure: What are tasks to be done to complete the project?
iv. Start-to-Finish (SF): The completion of the successor activity depends on the start of the
standards. Timeline Chart:
predecessor activity.
Characteristics of good project manager: Also called as Gantt chart. A Gantt chart provides a graphical illustration of a schedule that helps
Shortening Project Duration:
Effective project management is critical to the success of any project, and a good project to plan, coordinate, and track specific tasks in a project. Developed in 1917 by Henry L. Gantt. It is
Shortening the duration of a project is often necessary to meet deadlines or achieve business
manager plays a key role in achieving that success. Here are some of the characteristics of constructed with a horizontal axis representing the total time span of the project, broken down into
objectives. Project managers can use several techniques to shorten project duration while
a good project Manager: increments and a vertical axis representing the tasks that make up the project. I is common in
maintaining the quality of the project deliverables. Ultimately, the most effective approach to
1. Leadership: A good project manager is a strong leader who can motivate and inspire reporting status and defining the schedule for simple and small projects with few
shortening project duration depends on the specific project, its objectives, and its constraints.
team members to work together towards a common goal. interrelationships.
Project managers should carefully evaluate each technique and its potential risks before
2. Communication: A good project manager is an effective communicator who can clearly What is activity Plan?
implementing it, and communicate and changes to stakeholders to ensure everyone is aligned with
and concisely communicate project goals, expectations, and deadlines to team An activity plan is a document that outlines the tasks, actions, and resources required to achieve a
the new plan.
members, stakeholders, and customers. specific goal or objective. It is a detailed and structured plan that breaks down a project or
Techniques to shorten project duration:
3. Organization: A good project manager is highly organized, with strong planning and initiative into individual activities or tasks, along with timelines, dependencies, and assigned
i. Fast-Tracking: this involves overlapping activities that would normally be done in sequence to
time management skills. They should be able to prioritize tasks, manage resources, and responsibilities.
complete the project faster. For example, rather than waiting for one activity to finish before
keep the project on schedule. Activity plans are typically used in project management, where they provide a roadmap for
starting the next, the project manager can start the next activity as soon as possible, even if the
4. Problem-solving: A good project manager is a skilled problem solver who can identify achieving project goals and objectives. They can be used to plan and coordinate the work of
previous one is not yet complete. This approach may increase the risk of rework or other issues, so
potential issues and develop effective strategies to address them. multiple teams or departments, ensuring that everyone is working towards the same objectives and
it’s important to carefully manage it.
5. Adaptability: A good project manager is adaptable and able to adjust to changing timelines.
ii. Crashing: This involves adding additional resources to critical path activities to reduce their
project requirements, timelines, and budgets. What is contract management?
duration. For example, the project manager can add more staff, work overtime or weekends, or use
6. Technical expertise: A good project manager has a strong understanding of the It is the process of creating, negotiating, implementing and monitoring contracts between two or
more efficient equipment. This can be expensive, so it’s important to weigh the costs and benefits
technical aspects of the project, and can work effectively with technical team members more parties. It involves the administration of contracts to ensure that each party fulfills its
of each approach.
to ensure that the project meets the required technical standards. obligations and that the terms and conditions of the contract are adhered to.
iii. Reducing Scope: This involves reducing the project scope to shorten the duration. This could
7. Customer focus
involve eliminating certain features or requirements, or reducing the number of deliverables.
8. Team Management
However, this approach should be carefully evaluated to ensure that the project6 still meets its
Overall a good project manager is a strong leader, effective communicator, highly
overall objectives and does not compromise its quality.
organized, skilled problem solver, adaptable, technically proficient and an effective
iv. Improving processes: This involves identifying and eliminating inefficiencies in the project
team manager.
processes that are causing delays.
Successful software project Manager:
v. Prioritizing: This involves focusing on critical path activities and prioritizing them to ensure they
A successful software project manager possesses a combination of technical, interpersonal, and
are completed on time. This may involve shifting resources or reprioritizing work to ensure that
project management skills. Here are some of the key characteristics of a successful software
critical path activities are completed first.
project manager:
Identifying Critical Activities:
1. Technical expertise: A successful software project manager has a strong understanding of
Identifying critical activities is an important aspect of project management. Critical activities are
the technical aspects of the project and can work effectively with technical team members
those that have the most significant impact on the overall duration of the project. if any of these
to ensure that the project meets the required technical standards.
activities are delayed, the entire project will be delayed. Therefore, it’s essential to identify and
2. Communication Skills: A successful software project manager is an effective
focus on critical activities to ensure that the project is completed on time.
communicator who can clearly and concisely communicate project goals, expectations,
Steps to identify critical activities:
and deadlines to team members, stakeholders, and customers.
i. Develop a project schedule: The first step is to develop a detailed project schedule that includes all
3. Leadership skills: A successful software manager is a strong leader who can motivate and
project activities, their dependencies, and their durations.
inspire team members to work together towards a common goal. They should be able to
ii. Identify the critical path: The next step is to identify the critical path, which is the sequence of
provide guidance, support, and direction to the team as needed.
activities that determines the minimum duration of the project. Activities on the critical path have
4. Project management skills: A successful software project manager has strong project
no slack or float time, and any delay in the critical path activities will cause the project to be
management skills, with the ability to plan, organize, and control project activities. This
delayed.
may include creating a project plan, identifying and managing risks, monitoring project
iii. Calculate slack or float time: For activities that are not on the critical path, calculate their slack or
progress, and adjusting the project plan as needed.
float time. Slack or float time is the amount of time an activity can be delayed without affecting the
5. Customer focus: A successful software project manager is customer-focused, with a deep
project duration.
understanding of the customer’s needs and requirements. They should be able to manage
iv. Review the risk management Plan: Review the risk management plan to identify activities that are
customer expectations and ensure that the project meets the customer’s needs.
critical from a risk perspective.
6. Team Management skills: A successful software project manager is an effective team
v. Consult with stakeholders: Consult with key stakeholders, such as the project sponsor, customers,
manager who can manage and motivate team members, resolve conflicts, and foster a
or team members, to identify activities that are critical to project success. Their insights may help
collaborative and positive team environment.
identify activities that are critical but may not have been identified in the project schedule.
Forward Pass and Backward Pass:
These are two techniques used in project management to calculate the earliest start and finish times
and latest start and finish times for each activity in a project schedule. These times are used to
identify the critical path of a project, which is the sequence of activities that determine the shortest
possible duration of the project.
By evaluating risks to the project schedule and implementing effective risk management
strategies, project managers can help ensure that the project stays on track and is delivered on
time.

Risk Management:
Risk Management is the process of identifying, assessing, and mitigating risks that may impact an
organization’s operations, finances, reputation, or other areas of concern. It is a crucial aspect of
modern business and is typically integrated into an organization’s overall strategy and decision-
making processes. Software Quality Management: Software Estimation Techniques:
It is important because Risk affects all aspects of your project your budget, your schedule, your Software Quality Management is the process of ensuring that software products and services Software Effort Estimation:
scope, the agreed level of quality, and so on. Increase probability of positive event. Reduce the meet the defined quality standards, as well as the customer and user requirements. Effective It is the process of predicting the amount of time and resources that will be required to complete a
occurrence of negative events. software quality management is critical to ensuring that software is reliable, secure, user- software development project. This is an important task in software development because it helps
How do we manage risk? friendly, and meets the needs of users. ensure that projects are completed within the available time and budget constraints.
To manage risk we use the risk management process TQM (Total Quality Management): Techniques for Software effort estimation:
1. Identify and assess risks: The first step in managing risk is to identify and assess potential risks. TQM stands for Total Quality Management. It is an approach to quality management that aims i. Expert judgment: This involves relying on the expertise and experience of developers and
This can involve a risk assessment process, which may include identifying internal and external to improve the quality of products and services by involving all employees in the organization. project managers to estimate the time and resources required for a project.
risks, assessing the likelihood and potential impact of each risk, and prioritizing risks based on TQM emphasizes the importance of continuous improvement, customer satisfaction, and ii. Analogous estimation: This involves using historical data form similar projects to estimate the
their significance. involvement of all employees in the quality management process. time and resources required for a new project.
2. Develop a risk Management Plan: Once risks have been identified and assessed, it is important TQM Based on the following principles: iii.Parametric estimation: This involves using statistical models to estimate the time and resources
to develop a risk management plan. This plan should outline strategies for mitigating or 1. Customer focus: it focuses on meeting and exceeding customer expectations by required for a project based on project size, complexity, and other factors.
managing each risk, including contingency plans and risk transfer mechanisms such as understanding their needs and preferences. iv.Three-point estimation: This involves estimating the most likely, optimistic, and pessimistic
insurance. 2. Continuous improvement: It emphasizes the need for continuous improvement in all areas of scenarios for a project and using these estimates to calculate a range of possible outcomes.
3. Implement risk management strategies: After developing a risk management plan, it is the organization, from processes and products to employee skills and knowledge. v. Bottom-up estimation: This involves breaking a project down into smaller components and
important to implement the strategies outlined in the plan. This can involve implementing 3. Employee involvement: it involves all employees in the quality management process, estimating the time and resources required for each component, then adding these estimates
security protocols, establishing contingency plans, or transferring risk to insurance or other encouraging them to take ownership and responsibility for the quality of their work. together to arrive at a total project estimate.
parties. 4. Process approach: It focuses on improving processes to improve the quality of products and Expert judgment:
4. Monitor and review risks: Risk management is an ongoing process, and it is important to services. It is a technique for software effort estimation that involves relying on the expertise and experience
continually monitor and review risks to ensure that the risk management plan remains effective. 5. Data-driven decision-making: it emphasizes the importance of data and analysis in making of developers, project managers, or subject matter experts to estimate the time and resources
This can involve regular risk assessments, periodic reviews of risk management strategies, and informed decisions to improve quality. required for a project. Thus technique is based on the assumption that experienced professionals
ongoing monitoring of the external environment to identify new risks. Six Sigma: can provide accurate and reliable estimates based on their knowledge and past experience.
5. Communicate and educate: Effective risk management requires communication and education It is a methodology for quality improvement that focuses on reducing defects and errors in Expert judgment can be a useful technique when there is limited historical data available, or when
throughout an organization. This includes communicating the importance risk management, processes. The approach was first developed by Motorola in the 1980s, and has since been a project is complex and difficult to estimate using other techniques. It can also be used to validate
training employees on risk management procedures, and ensuring that all employees understand adopted by many other companies and organizations. The goal of Six Sigma is to improve the estimates obtained using other techniques, by comparing them to the expert’s judgment.
their roles and responsibilities in managing risks. quality of products or services and increase customer satisfaction while reducing costs and Estimating by analogy:
Risk Identification: increasing efficiency. Estimating by analogy is a technique for software effort estimation that involves using historical
Risk identification is the first step in the risk management process. It involves identifying potential The methodology is based on a data-driven approach that involves defining, measuring, data from similar projects to estimate the time and resources required for a new project. The
risks that may impact an organization’s operations, finances, reputation, or other areas of concern. analyzing, improving and controlling processes. The name “Six Sigma” refers to the goal of technique is based on the assumption that projects that have similar characteristics or requirements
Here are some steps to identify risks: reducing defects to less than 3.4 per million opportunities, which represent a high level of will have similar effort requirements.
i. Review organizational objectives: Start by reviewing the organization’s objectives and quality and consistency. Estimating by analogy Technique:
identifying potential risks that may impact them. This can involve reviewing past performance, Six Sigma methodology key steps: i. Identify a reference project: Identify a reference project that is similar in terms of size,
identifying potential changes in the external environment, and considering the impact of these 1. Define: The first step is to define the problem or issue that need to be addressed and clearly complexity, and requirements to the project being estimated.
factors on the organization. articulate the project goals. ii. Collect data: Collect data on the effort and resources required for the reference project. This
ii. Review internal processes: Review internal processes and operations to identify potential risks. 2. Measure: The next step is to measure the current state of the process and collect data to data may include information on the size of the project, the number of developers involved, the
This can involve reviewing existing policies and procedures, identifying potential areas of quality the problem. time taken to complete the project and the resources used.
vulnerability, and assessing the effectiveness of existing controls. 3. Analyze: Once the data has been collected, the next step is to analyze the data to identify the iii.Adjust for differences: Adjust the data obtained from the reference project to account for any
iii.Brainstorm potential risks: Hold brainstorming sessions with key stakeholders, including root causes of the problem and determine where improvement can be made. difference between the reference project and the project being estimated.
employees, customers, and other relevant parties, to identify potential risks. Encourage open 4. Improve: Based on the analysis, the next step is to identify and implement improvements to iv.Apply the estimate: Apply the adjusted data to the new project to arrive at an estimate of the
and candid candid discussion to identify risks that may not be immediately obvious. the process. time and resources required.
iv.Use risk management frameworks: Use risk management frameworks, such as the ISO 31000 5. Control: The final step is to establish controls to ensure that the improvements are sustained v. Validate the estimate: Validate the estimate obtained by comparing it to historical data from
risk management framework, to identify potential risks. These frameworks provide a structured over time. similar projects, or by using other estimation techniques.
approach to risk identification, assessment, and mitigation. Software Quality: Bottoms-up estimating:
v. Review external factors: Consider external factors that may impact the organization, such as Software quality refers to the degree to which software products meet the requirements, needs, It is technique for software effort estimation that involves breaking down a project into smaller,
economic, political, social, and technological trends. These factors may create new risks or and expectations of customers and stakeholders. It involves a wide range of attributes, such as more manageable components, estimating the effort required for each component, and then
exacerbate existing risks. reliability, performance, security, maintainability, usability, and functionality. aggregating those estimates to arrive at a total effort estimate for the project.
vi.Consider worst-case scenarios: Consider worst-case scenarios and identify potential risks that It is critical because it impacts the user experience, the ability of the software to meet business Bottom-UP Estimating Technique:
may lead to these scenarios. This can help to ensure that the organization is prepared for even needs, and the organization’s reputation. Poor software quality can result in increased costs due i. Identify the components: identify the individual components or tasks required to complete the
the most severe risks. to rework and lost business opportunities, as well as potential safety and security risks. project. These components should be small enough to estimate accurately.
Hence it is important to involve stakeholders from across the organization in the risk Approaches to ensure software quality: ii. Estimate the effort: Estimate the effort required for each component. This may involve breaking
identification process to ensure that all potential risks are identified. i. Testing: It is the process of executing software to identify defects, errors, or other issues that down the component into smaller sub- components and estimating the effort required for each
Risk Planning: could impact the quality of the software. sub-component.
Risk planning is a crucial aspect of risk management. Once risks have been identified and ii. Code reviews: It involve examining the source code of the software to identify issues and iii.Aggregate the estimates: Aggregate the estimates for each component to arrive at a total effort
assessed, the next step is to develop a risk management plan that outlines strategies for ensure that it adheres to coding standards. estimate for the project.
mitigating or managing each risk. Here are some steps to develop a risk management plan: iii.Requirements Management: It involves ensuring that the requirements for the software are iv.Validate the estimate: Validate the estimate obtained by comparing it to historical data from
i. Prioritize risks: Start by prioritizing risks based on their likelihood and potential impact. This clearly defined, documented, and tracked throughout the development process. similar projects, or by using other estimation techniques.
can help to ensure that the most significant risks are addressed first. iv. Quality assurance processes: Quality assurance processes involve establishing processes and Top-down approach and parametric models:
ii. Define risk management strategies: Develop strategies to mitigate or manage each risk. This can procedure to ensure that the software meets the desired quality standard. Top-down estimating is a technique for software effort estimation that involves using high-level
involve developing contingency plans, implementing security protocols, or transferring risk to v. Continuous improvement: It involves identifying opportunities for improvement and making project parameters, such as project size, complexity, and requirements, to estimate the overall
insurance or other parties. changes to the software development process to increase the quality of the software. effort required for the project. This estimate is then broken down into smaller components, and the
iii.Develop an action Plan: Develop an action plan that outlines specific steps that will be taken to Importance of Software Quality: effort required for each component is estimated. The top-down approach is often used in
implement each risk management strategy. This can include timelines, budgets, and i. Customer satisfaction: High-quality software is more likely to meet the needs and combination with paramedic models.
responsibilities. expectations of customers, leading to increased customer satisfaction and loyalty. Parametric models: are mathematical models that use historical data to estimate the time and
iv.Establish communication and reporting procedures: Establish procedures for communicating ii. Business success: High-quality software can help businesses achieve their goals, whether that resources required for a new project. These models use statistical analysis to identify the
about risks and reporting on the progress of the risk management plan. This can include regular means increasing revenue, reducing costs, or improving efficiency. relationship between project parameters and the effort required for a project. The most common
meetings or reports to keep stakeholders informed about the status of the plan. iii.Reduced risks: High-quality software is less likely to have defects or errors that can cause parametric models used in software effort estimation are regression models and cost estimation
v. Develop a risk response plan: Develop a risk response plan that outlines how the organization downtime, security risks, or other issues. models.
will respond in the event that a risk is realized. This can involve developing emergency response iv. Improved efficiency: High-quality software is more efficient to use, which can help users Top-down approach and parametric models Estimating Technique:
plans or other procedures to address specific risks. save time and increase productivity. i. Identify Project parameters: Identify the project parameters that are most likely to affect the
vi.Review and update the risk management plan: Regularly review and update the risk v. Competitive advantage: High-quality software can provide a competitive advantage by effort required for the project. These may include project size, complexity, requirements, and
management plan to ensure that it remains effective. This can involve conducting regular risk setting a company apart from its competitors and demonstrating its commitment to technology used.
assessments, monitoring the external environment for new risks, and adjusting the plan as needed. excellence. ii. Collect historical data: Collect historical data on similar projects to use in the parametric model.
Risk evaluation and Management: vi. Reduced costs: High-Quality software can reduce costs associated with rework, debugging, This may include information on the size of the project, the number of developers involved, the
Risk evaluation and management is a critical process that involves assessing and mitigating risks and maintenance. time taken to complete the project, and the resources used.
that may impact an organization’s operations, finances, reputation, or other areas of concern. Here Six Main quality Characteristics for planning software development: iii.Develop the model: Develop a parametric model that uses the project parameters identified in
are some steps to evaluate and manage risk: i. Functionality: This refers to the extent to which the software meets the requirements and step 1 and the historical data collected in step 2 to estimate the effort required for the project.
1. Identify and assess risk: The first step in risk evaluation and management is to identify and specifications that have been defined for it. iv.Apply the model: Use the top-down approach to estimate the overall effort required for the
assess potential risks. This can involve a risk assessment process, which may include ii. Reliability: This refers to the ability of the software to perform its intended functions in a project, and then use the parametric model to estimate the effort required for each individual
identifying internal and external risks, assessing the likelihood and potential impact of each consistent and predictable manner. component.
risk, and prioritizing risks based on their significance. iii.Usability: This refers to the ease with which users can learn to use the software and the v. Validate the estimate: validate the estimate obtained by comparing it to historical data form
2. Evaluate risk exposure: Determine the organization’s level of exposure to each identified effectiveness with which they can complete their tasks. similar projects, or by using other estimation techniques
risk. This involves assessing the potential financial impact of each risk and determining the iv. Efficiency: This refers to the extent to which the software performs its intended functions Basis of Software Estimating:
organization’s ability to absorb the impact. within a reasonable amount of time and with a reasonable amount of resources. Software estimating is the process of predicting the time, effort, and cost required to complete a
3. Develop risk mitigation strategies: Develop strategies to mitigate or manage each identified v. Maintainability: This refers to the ease with which the software can be modified, updated and software project. There are several different approaches and techniques used in software
risk. This can involve developing contingency plans, implementing security protocols, or enhanced over time. estimating, but they are all base on the same fundamental principles.
transferring risk to insurance or other parties. vi. Portability: This refers to the ability of the software to be used in different environments or i. Understanding the project scope: The first step in software estimating is to understand the scope
4. Assess the effectiveness of risk mitigation strategies: Once risk mitigation strategies have on different platforms without requiring significant modifications. of the project. This involves identifying the project goals, the requirements, the constraints, and
been implemented, assess their effectiveness. This can involve monitoring the impact of the Quality: the resources that will be required to complete the project.
strategies on the organization’s exposure to each risk and making adjustments as needed. It is a goal for an entire information system, not just the software portion, and it must be ii. Historical data: Estimators can use historical data from similar projects t help estimate the time
5. Monitor and review risks: Regularly monitor and review risks to ensure that the risk managed accordingly. Effective quality management assures that a process is established and and resources required for the current project. This data can help identify patterns and trends,
management plan remains effective. This involves regular risk assessments, periodic reviews followed to build quality into information systems. and can be used to adjust estimates based on past performance.
of risk management strategies, and ongoing monitoring of the external environment to Benefits of TQM: iii.Expert judgment: estimators can also use expert judgment, based on their own experience and
identify new risks. Greater customer loyalty, Market share improvement, Higher stock prices, Reduced service calls, knowledge, to estimate the time and resources required for the project. This can be particularly
6. Communicate and educate: Effective risk management requires communication and Higher prices, Greater productivity, Improve quality. useful in situations where there is little historical data available.
education throughout an organization. This includes communicating the importance of risk Objectives of SIX SIGMA: iv.Estimation techniques: There are several different estimation techniques that can be used in
management, training employees on risk management procedures, and ensuring that all Overall Business Improvement, Remedy defects/Variability, Reduce cost, Improve cycle time, software estimating, including analogies, expert judgment, and mathematical models.
employees understand their roles and responsibilities in managing risks. Increase customer satisfaction. v. Risk analysis: Finally, it is important to consider the risks associated with the project, and to
Categories of Risk: Measure Software Quality: incorporate these into the estimation process. This can help identify potential areas of risk or
1. Financial Risk: It refers to the risk of financial loss or negative impact on an organization’s Correctness: conformance to the specifications and user requirement. uncertainty, and can help the project team plan for contingencies.
financial position. This can include risks related to investments, currency exchange rates, Reliability: Performing expected function with required precision Problems with over and under estimations:
interest rates, credit ratings, and other financial factors. Effeciency: amount of resources required to execute required function.
2. Operational risk: Operational risk refers to the risk of loss resulting from inadequate or failed Integrity: security features or security controls implemented in software. Both overestimation and underestimation of software projects can cause problems for
internal processes, systems, or human error. This can include risks related to supply chain Usability: Effort required to understand, learn operate the software. the project team and the organization as a whole. Overestimation occurs when the
disruptions, information technology failures, fraud, or other operational issues.
estimated time, effort, or cost required to complete a project is higher than what is
3. Legal and regulatory risk: it refers to the risk of financial loss or negative impact resulting
from a violation of laws or regulations. This can include risks related to compliance with actually needed. This can lead to several problems, including:
environmental, safety, or consumer protection laws, as well as risks related to data privacy,
intellectual property rights, or other legal and regulatory requirements.
4. Reputational risk: it refers to the risk of negative impact on an organization’s reputation. This
can include risks related to public relations issues, ethical or social, responsibility issues, or 1. Waste of resources: Overestimation can lead to the allocation of more resources than
other factors that may harm the organization’s public image. necessary, such as staff, time, and funding. This can lead to inefficiencies and waste.
5. Strategic risk: it refers to the risk of negative impact resulting from as failure to achieve an
2. Delayed project delivery: If a project is overestimated, it may take longer to complete than
organization’s strategic objectives. This can include risks related to changes in the external
environment, such as competition, technology, or consumer behavior, as well as risks related necessary. This can result in delayed delivery, which can cause dissatisfaction among
to internal factors, such as leadership or organizational culture. stakeholders.
6. Environmental risk: it refers to the risk of negative impact resulting from environmental 3. Loss of business opportunities: If a project takes longer than necessary to complete, it
factors, such as natural disasters, climate change, or pollution. This can include risks related may cause the organization to miss out on potential business opportunities.
to property damage, loss of life, or other environmental factors that may harm the On the other hand, underestimation occurs when the estimated time, effort, or cost
organization or its stakeholders.
required to complete a project is lower than what is actually needed. This can lead to
By understanding the different categories of risk, organizations can develop more effective
risk management strategies that address specific types of risks and prioritize their risk several problems, including:
management efforts.
Framework for dealing with risk:
There are several frameworks for dealing with risk that organizations can use to develop an
effective risk management program. Some of the most common frameworks include: 1. Poor quality: If a project is underestimated, it may be rushed to completion in order to
1. ISO 31000: it is a widely recognized international standard for risk management. It provides meet the deadline. This can result in poor quality work that may need to be redone later.
guidelines and principles for managing risk in a systematic and transparent manner. The
2. Increased risk: If a project is underestimated, it may be more difficult to manage and
framework is based on a continuous risk management process that includes risk identification,
risk assessment, risk treatment, and risk monitoring and review. control, which can increase the risk of failure.
2. COSO ERM: It is a widely used framework that focuses on integrating risk management into an 3. Increased costs: If a project is underestimated, it may require additional resources or
organization’s strategic planning and decision-making processes. The framework includes eight changes to the plan, which can increase the overall cost of the project.
components. To avoid overestimation or underestimation, it is important to use reliable and accurate
3. NIST Cybersecurity Framework: National institute of standards and technology cybersecurity estimation techniques, such as historical data, expert judgment, and mathematical
framework is a frame work that provides a set of guideline for improving cybersecurity risk
management. It includes five core functions: identify, protect, detect, respond, and recover.
4. PMI Risk Management Standard: it is framework that provides guidelines for managing risk in models. It is also important to consider the risks associated with the project, and to
project management. The framework includes processes for risk identification, risk analysis,
risk response planning, and risk monitoring and control. incorporate these into the estimation process. Finally, it is important to monitor the
5. Agile Risk Management framework: The Agile risk management framework is a framework progress of the project and adjust the estimation as necessary to ensure that the project is
that provides guidelines for managing risk in agile project management. It includes processes completed on time and within budget.
for identifying and prioritizing risks, defining risk management strategies, and monitoring and
adapting risk management efforts.
Evaluating Risks to the Schedule:
1. Identify potential risks to the project schedule: Start by identifying potential risks that could
affect the project schedule. Some examples of risks that could impact the schedule including
changes in scope, resource availability, unexpected dependencies, delays in approvals, and
unforeseen technical difficulties.
2. Assess the likelihood and impact of each risk: Once you have identified potential risks, assess
the likelihood and impact of each risk. Consider the probability of the risk occurring and the
potential impact on the project schedule if the risk does occur. Use a risk matrix to help you
prioritize risks based on their likelihood and impact.
3. Develop risk mitigation strategies: Based on the likelihood and impact of each risk, develop risk
mitigation strategies to reduce the probability and impact of the risk.
4. Create a contingency plan: Even with risk mitigation strategies in place, there may be risks that
could still impact the project schedule. Create a contingency plan that outlines what you will do
if one or more of the identified risks occur.
5. Monitor and update the risk management plan: Regularly monitor the project schedule and the
identified risks. If a risk occurs, implement the contingency plan and update the risk
management plan as needed.
requirements are not well-defined or the customer may request changes, an agile model 5. Change tracking: The change is tracked to ensure that it is properly integrated into the project, and
may be more suitable. that any issues that arise during implementation are addressed.
2. Project Size: The size of the project can also influence the choice of process model. For Change control is an essential part of software development, as it helps to ensure that changes are
made in a controlled and systematic manner, and that the project remains on track and within
small projects, a simple process model such as the agile approach may be appropriate,
budget. It also helps to minimize the risk of introducing new errors or defects into the software,
while for large projects, a more complex process model such as the spiral model may be which can lead to delays and additional costs.
necessary.
3. Development Team: The experience and skill level of the development team can also
impact the choice of process model. A more experienced team may be able to work with a
less prescriptive process model, while a less experienced team may require a more
structured model.
4. Project Schedule: The project schedule can also influence the choice of process model. If
the project has a tight deadline, a process model that emphasizes fast development, such
as the agile approach, may be necessary.
5. Project Risks: The risks associated with the project can also influence the choice of process
model. If the project has significant technical or business risks, a process model that
emphasizes risk management, such as the spiral model, may be more appropriate.

Software Evaluation and Costing:


Project Evaluation:
Software evaluation is the process of assessing and analyzing software to determine its quality,
performance, reliability, and effectiveness. The purpose of software evaluation is to determine if a
Structured Methods:
particular software product meets the needs and requirements of the intended users or customers.
Methods and techniques used for software evaluation: Structured methods are a type of software development methodology that use a systematic,
i. Code review: This involves a detailed examination of the software code to identify any errors or step-by-step approach to software development. These methods are characterized by their
bugs that may affect its performance or reliability. highly formalized and rigorous approach to development, which typically includes detailed
ii. User acceptance testing: This involves testing the software with a group of representative users documentation and well-defined processes.
to evaluate its functionality, usability, and overall satisfaction. The following are some of the key features of structured methods:
iii.Performance testing: This involves measuring the software’s performance under different 1. Clear Objectives: Structured methods typically begin with a clear definition
conditions, such as load testing, stress testing, and endurance testing. of the project objectives and requirements.
iv.Compatibility testing: This involves testing the software to ensure that it works correctly with 2. Structured Approach: Structured methods use a highly structured approach
other systems, platforms, and devices. to software development. This involves breaking the development process down into smaller,
v. Security testing: This involves testing the software to identify and address any vulnerabilities or more manageable steps, with each step building on the previous one.
security risks that could compromise the integrity or confidentiality of the data. 3. Detailed Documentation: Structured methods emphasize detailed
vi.Usability testing: This involves testing the software to evaluate its ease of use, accessibility, and documentation, which is used to guide the development process and ensure that all aspects of
user experience. the project are fully documented.
Strategic Assessment: 4. Testing: Testing is an important part of structured methods. These methods
The process of evaluating an organization’s current state and developing a plan for achieving its typically include a detailed testing phase to ensure that the software meets the requirements
long-term goals and objectives. It involves a systematic and comprehensive analysis of the and is free from defects.
organization’s internal and external environment to identify its strengths, weaknesses, 5. Quality Control: Quality control is also an important part of structured
opportunities and threats. methods. These methods typically include a review process to ensure that the software meets
The purpose of strategic assessment is to identify the key factors that affect an organization’s quality standards.
success and develop a strategic plan that leverages its strengths and opportunities while addressing 6. Standardization: Structured methods emphasize standardization and
its weaknesses and threats. consistency throughout the development process. This helps ensure that the software is
Process: developed in a systematic and consistent manner.
Define the organization’s mission, vision, and values, Conduct a SWOT analysis, Analyze the Some examples of structured methods include the Waterfall model, Structured Systems
competitive environment, Identify strategic goals and objectives, Develop a strategic plan, Monitor Analysis and Design Method (SSADM), and Information Engineering. These methods have
and evaluate progress. been used successfully in a variety of software development projects, but they can also be
Technical Assessment: rigid and inflexible, which can make them difficult to adapt to changing requirements or new
It is the process of evaluating the technical aspects of a product, system, or process to ensure that it technologies.
meets the required standard for quality, performance, reliability, and functionality. Technical
assessment is commonly used in software development, engineering, and manufacturing to Requirement and elements of software configuration Management:
evaluate the technical aspect of a project.
The purpose of technical assessment is to identify potential technical issues and risks that could Software Configuration Management (SCM) is a set of processes and tools that are used
impact the quality and performance of the product or system. to manage software source code, documentation, and related artifacts. SCM helps ensure
Process: that changes to software artifacts are tracked, controlled, and managed in a systematic
Define technical requirements, Conduct a technical review, Perform testing and analysis, Identify and efficient manner.
technical risks and Develop a technical plan.
The following are the key requirements and elements of software configuration
Cost-benefit Analysis:
It is a systematic process for evaluating the costs and benefits of a project. It is commonly used in management:
business and economics to determine whether a particular project or investment is financially 1. Configuration Identification: This involves identifying and defining the various software artifacts
viable and to help decision-makers choose the most economically efficient option. that need to be managed, including source code, documentation, libraries, and other related items.
The purpose of cost-benefit analysis is to compare the total costs of a project or investment with 2. Version Control: Version control is a key aspect of SCM, and involves keeping track of the
the total benefits it will generate, taking into account both the tangible and intangible costs and changes made to software artifacts over time. This helps ensure that developers have access to the
benefits. correct version of each artifact.
Cash flow forecasting: 3. Configuration Control: Configuration control involves establishing policies and procedures to
it is an important part of project evaluation. It involves estimating the expected cash inflows and manage changes to software artifacts. This helps ensure that changes are made in a controlled and
outflows of a project over a given period, usually several years, in order to evaluate the financial systematic manner, and that changes are properly documented.
viability of the project. 4. Configuration Status Accounting: This involves keeping track of the current state of each software
Components: artifact, including its current version, location, and status.
Initial investment: This is the amount of money required to start the project. 5. Configuration Auditing: Configuration auditing involves periodically reviewing the SCM
Operating expenses: These are the ongoing costs of running the project, such as salaries, rent, and processes and tools to ensure that they are effective, efficient, and compliant with industry
utilities. standards and regulations.
Revenue: This is the money that the project is expected to generate through sales or other means. 6. Build Management: Build management involves the process of compiling, linking, and packaging
Capital expenditures: these are expenses related to the purchase or upgrade of assets, such as software artifacts into a deployable unit. SCM can help ensure that the build process is repeatable
equipment or buildings. and consistent.
Financing costs: these are costs related to borrowing money to finance the project such as interest 7. Release Management: Release management involves the process of planning, scheduling, and
payments. coordinating the release of software artifacts. SCM can help ensure that the release process is
Cost-benefit evaluation techniques: controlled and well-managed.
It is a common technique used in project evaluation to determine the feasibility of a project. The Overall, software configuration management is an essential part of the software development
aim of CBA is to compare the costs of the project with its benefits in order to determine whether process, and can help ensure that software artifacts are managed in a systematic, controlled, and
the project is worth pursuing. efficient manner.
CBA involves identifying and estimating the costs and benefits of a project, and then comparing
them to determine whether the benefits are greater than the costs. SCM Process;
CBA Techniques: The Software Configuration Management (SCM) process involves the following key steps:
i. Net present Value: NPV is a technique that compares the present value of expected cash inflows 1. Planning: The first step in the SCM process is to develop a plan for how software artifacts will be
with the present value of expected cash outflows, discounted at a specified rate. managed. This includes identifying the artifacts to be managed, defining the SCM policies and
ii. Internal Rate of Return: IRR is the discount rate at which the NPV of a project is zero. A project procedures, and selecting the appropriate SCM tools.
with an IRR that is greater than the required rate of return is generally considered to be financially 2. Identification: In this step, the software artifacts to be managed are identified and documented.
viable. This includes identifying the different versions of the artifacts and defining a naming convention
iii.Payback Period: Payback period is the time it takes for a project to recoup its initial investment. A for each version.
project with a shorter payback period is generally considered to be more financially attractive. 3. Version Control: Version control involves managing changes to software artifacts over time. This
iv.Cost-effectiveness Analysis: CEA compares the costs of achieving a given outcome across includes checking in and checking out artifacts, creating and merging branches, and labeling
different options. The aim is to identify the option that achieves the desired outcome at the lowest specific versions of artifacts.
cost. 4. Change Management: Change management involves managing changes to software artifacts in a
v. Cost-Utility Analysis: CUA is a technique that compares the costs and benefits of different options controlled and systematic manner. This includes reviewing and approving change requests,
in terms of the utility they provide. Utility is a measure of the satisfaction or value that an documenting the changes made to artifacts, and managing the implementation of changes.
individual derives from a given outcome. 5. Configuration Auditing: Configuration auditing involves periodically reviewing the SCM process
Risk Evaluation: and tools to ensure they are working effectively and efficiently. This includes reviewing audit logs,
It is an important aspect of project evaluation as it helps to identify potential risks that may impact verifying compliance with policies and procedures, and identifying areas for improvement.
the success of a project. It involves assessing the likelihood and impact of various risks, and 6. Build Management: Build management involves the process of compiling, linking, and packaging
developing strategies to mitigate or manage those risks. software artifacts into a deployable unit. This includes defining build scripts, managing build
Steps in Risk Evaluation: dependencies, and creating and deploying build artifacts.
i. Identify risks: this involves identifying potential risks that may impact the project. This can be 7. Release Management: Release management involves planning, scheduling, and coordinating the
done by brainstorming with project team members and stakeholders, reviewing similar projects, release of software artifacts. This includes creating a release plan, coordinating with stakeholders,
and using risk checklists. and managing the deployment of artifacts to production.
ii. Analyze risk: this involves assessing the likelihood and impact of each identified risk. 8. Reporting: The final step in the SCM process is reporting. This involves generating reports on
Likelihood refers to the probability of the risk occurring, while impact refers to the effect the SCM activities, such as changes made to artifacts, build and release activities, and audit results.
risk will have on the project if it occurs. Reports can be used to identify areas for improvement and to track compliance with SCM policies
iii.Evaluate Risks: This involves prioritizing the identified risks based on their likelihood and and procedures.
impact. These helps to determine which risks are the most important to address first. Overall, the SCM process is a critical component of the software development process, and helps
iv.Develop risk mitigation strategies: this involves developing strategies to reduce the likelihood ensure that software artifacts are managed in a controlled and systematic manner. Effective SCM
and impact of the identified risks. can help improve software quality, reduce development costs, and accelerate time to market.
v. Implement risk mitigation strategies: this involves putting the risk mitigation strategies into
action. This may include updating project plans, revising project timelines, or allocating SCM Repository:
resources to address the identified risks. A Software Configuration Management (SCM) repository is a centralized storage location for
vi.Monitor and review: this involves monitoring the effectiveness of the risk mitigation strategies, managing software artifacts such as source code, build artifacts, documentation, and other
and reviewing the identified risks on an ongoing basis. development-related files. The repository provides a version control system that allows developers
Selection of Appropriate Report: to manage changes to software artifacts over time, as well as a mechanism for tracking and
Selecting the appropriate report for a given situation depends on several factors, including the auditing changes to the artifacts.
purpose of the report, the intended audience, and the information that needs to be SCM repositories can be hosted locally or in the cloud, and are typically accessed through SCM
communicated. Here are some factors to consider when selecting a report: tools such as Git, Subversion, or Perforce. The repository provides a centralized location for
Purpose: The purpose of the report should be the main factor in determining the type of report to storing and sharing code with other developers, as well as a mechanism for resolving conflicts
be used. when multiple developers make changes to the same code at the same time.
Audience: The audience for the report is another important consideration. Reports should be In addition to managing source code, SCM repositories can also be used to manage other artifacts
tailored to meet the needs of the intended audience. such as documentation, test scripts, and build artifacts. This allows developers to maintain a
Information: The information that needs to be communicated in the report should also be complete record of all software artifacts associated with a particular release or version of the
considered. software.
Format: the format of the report should also be considered. Reports can be presented in various Overall, SCM repositories are a critical component of the software development process, and help
formats, such as written reports, oral presentations, charts, graphs and tables. ensure that software artifacts are managed in a controlled and systematic manner. Effective use of
Timeliness: The timeliness of the report is another important facto9r. Reports should be timely an SCM repository can help improve software quality, reduce development costs, and accelerate
and relevant to the current situation. time to market.
Project approach: Choosing technologies:
Choosing the appropriate technology for a project is an important aspect of project Versioning and version control:
planning. The following are some approaches to selecting technologies for a project: Versioning is the practice of assigning unique identifiers to software artifacts such as source code,
1. Requirements Analysis: The first step in choosing technologies for a project is to documentation, or other files, in order to track changes over time. A version is a specific iteration
understand the project requirements. This includes understanding the problem the of a software artifact that has been assigned a unique identifier.
Version control is the process of managing changes to software artifacts over time. Version control
project is trying to solve, the desired outcomes, and the constraints on the project. By
systems (VCS) are software tools that facilitate the management of changes to software artifacts,
understanding these requirements, project managers can identify the technologies that typically by providing versioning functionality, as well as tools for merging changes made by
are appropriate for the project. multiple developers.
2. Technology Assessment: Once the project requirements are understood, project There are two main types of version control systems:
managers can assess the available technologies that can be used to meet those 1. Centralized Version Control Systems (CVCS): In a CVCS, all changes to a software artifact are
requirements. This involves researching different technologies, their strengths and made directly to a central repository. Developers check out a copy of the code from the repository,
weaknesses, and the trade-offs associated with each technology. make their changes, and then check their changes back into the repository. Examples of CVCS
include Apache Subversion (SVN) and Perforce.
3. Proof of Concept: Before selecting a technology for a project, project managers may
2. Distributed Version Control Systems (DVCS): In a DVCS, each developer has their own copy of
conduct a proof of concept (POC) to test the technology in a small-scale environment. A the code, and changes are managed locally before being shared with other developers. Examples of
POC involves testing the technology on a small scale to determine if it meets the project DVCS include Git and Mercurial.
requirements. This can help project managers identify any issues or limitations with the Both types of VCS provide versioning functionality and allow developers to manage changes to
technology before it is used in the project. software artifacts. They also provide features for tracking changes, merging changes made by
4. Vendor Evaluation: If the project requires the use of a commercial technology, project multiple developers, and reverting changes if necessary. Version control is an essential practice in
managers may evaluate different vendors to select the best option. This involves assessing software development, as it allows developers to manage changes to software artifacts in a
controlled and systematic manner.
the vendors' offerings, their reputation, and their customer support.
5. Cost-Benefit Analysis: Once the technologies have been assessed, a cost-benefit analysis
Change control process:
may be conducted to determine the most cost-effective option. This involves assessing Change control process, also known as change management, is the process of managing changes to
the costs associated with each technology and comparing them to the benefits that each software artifacts such as source code, documentation, and other project-related files. It involves a
technology provides. set of procedures that are used to request, evaluate, approve, implement, and track changes to these
By using these approaches, project managers can select the most appropriate artifacts. The goal of change control is to ensure that changes are made in a controlled and
technologies for their projects, ensuring that the technology meets the project systematic manner, without disrupting ongoing development activities or introducing new errors or
defects.
requirements, is reliable, and is cost-effective.
The change control process typically includes the following steps:
Choice of Process Model
1. Request for change: A request is made to change a specific software artifact.
The choice of process model is an important decision in software development. The 2. Change assessment: The request is evaluated to determine the potential impact of the change on
following are some factors that project managers may consider when selecting a process the project, including its feasibility, cost, and risk.
model: 3. Change approval: The change is approved or rejected based on the results of the assessment. If the
1. Project Requirements: The project requirements can help determine the most appropriate change is approved, the necessary resources are allocated to implement the change.
process model. For example, if the project has well-defined requirements and the 4. Change implementation: The change is implemented according to a set of procedures that ensure
that the change is made in a controlled and systematic manner. This may include testing,
customer is not likely to request changes, a waterfall model may be appropriate. If the
verification, and validation.

You might also like