Unit 4

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 38

Unit-4

What is Software Configuration Management?

Software Configuration Management (SCM) is the process of identifying, organizing, and controlling changes to the
software system and related artifacts throughout the software development lifecycle. SCM is an essential discipline in
software engineering as it helps to maintain consistency, quality, and reliability of software products and artifacts.

The main objectives of SCM are:

Identifying and managing software components, code, and other artifacts.


Managing and controlling changes to the software artifacts.
Enabling software development teams to work collaboratively and efficiently.
Ensuring that the software artifacts are versioned and tracked.
Ensuring that the software artifacts are released in a controlled and managed manner.

Configuration Management (CM) is a technic of identifying, organizing, and controlling modification to software being
built by a programming team.

The objective is to maximize productivity by minimizing mistakes (errors).

CM is used to essential due to the inventory management, library management, and updating management of the items
essential for the project.
Why do we need Configuration management?
• The primary reasons for Implementing Technical Software Configuration Management System are:
• There are multiple people working on software which is continually updating
• It may be a case where multiple version, branches, authors are involved in a software config project, and the team is
geographically distributed and works concurrently
• Changes in user requirement, policy, budget, schedule need to be accommodated.
• Software should able to run on various machines and Operating Systems
• Helps to develop coordination among stakeholders
• SCM process is also beneficial to control the costs involved in making changes to a system

Any change in the software configuration Items will affect the final product. Therefore, changes to configuration items need to
be controlled and managed.
Any change in the software configuration Items will affect the final product. Therefore, changes to configuration items need to
be controlled and managed.
These are handled and controlled by SCM. This is where we require software configuration management.

A configuration of the product refers not only to the product's constituent but also to a particular version of the component.
Therefore, SCM is the discipline which

• Identify change
• Monitor and control change
• Ensure the proper implementation of change made to the item.
• Auditing and reporting on the change made
Tasks in SCM process
1. Configuration Identification
2. Baselines
3. Change Control
4. Configuration Status Accounting
5. Configuration Audits and Reviews

1. Configuration Identification:
Configuration identification is a method of determining the scope of the software system. With the help of this step, you
can manage or control something even if you don’t know what it is. It is a description that contains the CSCI type
(Computer Software Configuration Item), a project identifier and version information.
Activities during this process:
• Identification of configuration Items like source code modules, test case, and requirements specification.
• Identification of each CSCI in the SCM repository, by using an object-oriented approach
• The process starts with basic objects which are grouped into aggregate objects. Details of what, why, when and by
whom changes in the test are made
• Every object has its own features that identify its name that is explicit to all other objects
• List of resources required such as the document, the file, tools, etc.
• Example:
Instead of naming a File login.php its should be named login_v1.2.php where v1.2 stands for the version number of the file
Instead of naming folder “Code” it should be named “Code_D” where D represents code should be backed up daily.
2. Baseline:
A baseline is a formally accepted version of a software configuration item. It is designated and fixed at a specific time
while conducting the SCM process. It can only be changed through formal change control procedures.

Activities during this process:


• Facilitate construction of various versions of an application
• Defining and determining mechanisms for managing various versions of these work products
• The functional baseline corresponds to the reviewed system requirements
• Widely used baselines include functional, developmental, and product baselines
• In simple words, baseline means ready for release.

3. Change Control:
• Change control is a procedural method which ensures quality and consistency when changes are made in the
configuration object. In this step, the change request is submitted to software configuration manager.
Activities during this process:
• Control ad-hoc change to build stable software development environment. Changes are committed to the repository
• The request will be checked based on the technical merit, possible side effects and overall impact on other configuration
objects.
• It manages changes and making configuration items available during the software lifecycle
4. Configuration Status Accounting:
Configuration status accounting tracks each release during the SCM process. This stage involves tracking what each version
has and the changes that lead to this version.

Activities during this process:


• Keeps a record of all the changes made to the previous baseline to reach a new baseline
• Identify all items to define the software configuration
• Monitor status of change requests
• Complete listing of all changes since the last baseline
• Allows tracking of progress to next baseline
• Allows to check previous releases/versions to be extracted for testing

5. Configuration Audits and Reviews:


• Software Configuration audits verify that all the software product satisfies the baseline needs. It ensures that what is built is
what is delivered.
Activities during this process:

• Configuration auditing is conducted by auditors by checking that defined processes are being followed and ensuring that the
SCM goals are satisfied.
• To verify compliance with configuration control standards. auditing and reporting the changes made
• SCM audits also ensure that traceability is maintained during the process.
• Ensures that changes made to a baseline comply with the configuration status reports
• Validation of completeness and consistency
Participant of SCM process:
Following are the key participants in SCM
1. Configuration Manager
Configuration Manager is the head who is Responsible for identifying configuration items.
CM ensures team follows the SCM process
He/She needs to approve or reject change requests
2. Developer
The developer needs to change the code as per standard development activities or change requests. He is
responsible for maintaining configuration of code.
The developer should check the changes and resolves conflicts
3. Auditor
The auditor is responsible for SCM audits and reviews.
Need to ensure the consistency and completeness of release.
4. Project Manager:
Ensure that the product is developed within a certain time frame
Monitors the progress of development and recognizes issues in the SCM process
Generate reports about the status of the software system
Make sure that processes and policies are followed for creating, changing, and testing
5. User
The end user should understand the key SCM terms to ensure he has the latest version of the software
Software Configuration Management Plan
The SCMP (Software Configuration management planning) process planning begins at the early coding phases of a project.
The outcome of the planning phase is the SCM plan which might be stretched or revised during the project.

• The SCMP can follow a public standard like the IEEE 828 or organization specific standard
• It defines the types of documents to be management and a document naming. Example Test_v1
• SCMP defines the person who will be responsible for the entire SCM process and creation of baselines.
• Fix policies for version management & change control
• Define tools which can be used during the SCM process
• Configuration management database for recording configuration information.
Software Configuration Management Tools
Any Change management software should have the following 3 Key features:

1. Concurrency Management:
When two or more tasks are happening at the same time, it is known as concurrent operation. Concurrency in context to SCM
means that the same file being edited by multiple persons at the same time.
If concurrency is not managed correctly with SCM tools, then it may create many pressing issues.
2. Version Control:
SCM uses archiving method or saves every change made to file. With the help of archiving or save feature, it is possible to roll
back to the previous version in case of issues.
3. Synchronization:
Users can checkout more than one files or an entire copy of the repository. The user then works on the needed file and checks
in the changes back to the repository.They can synchronize their local copy to stay updated with the changes made by other
team members.
Following are popular tools:
1. Git
2. Team Foundation Server
3. Ansible
https://
www.javatpoint.com/software-engineering-waterfall-model
What is Risk?
• "Tomorrow problems are today's risk." Hence, a clear definition of a "risk" is a problem that could cause some loss or
threaten the progress of the project, but which has not happened yet.
• These potential issues might harm cost, schedule or technical success of the project and the quality of our software
device, or project team morale.
• Risk Management is the system of identifying addressing and eliminating these problems before they can damage the
project.
• We need to differentiate risks, as potential issues, from the current problems of the project.
Different methods are required to address these two kinds of issues.
• For example, staff storage, because we have not been able to select people with the right technical skills is a current
problem, but the threat of our technical persons being hired away by the competition is a risk.
Risk Management
A software project can be concerned with a large variety of risks. In order to be adept to systematically identify the significant
risks which might affect a software project, it is essential to classify risks into different classes. The project manager can then
check which risks from each class are relevant to the project.
There are three main classifications of risks which can affect a software project:
1. Project risks
2. Technical risks
3. Business risks
1. Project risks: Project risks concern differ forms of budgetary, schedule, personnel, resource, and customer-related problems. A
vital project risk is schedule slippage. Since the software is intangible, it is very tough to monitor and control a software project. It
is very tough to control something which cannot be identified. For any manufacturing program, such as the manufacturing of cars,
the plan executive can recognize the product taking shape.

2. Technical risks: Technical risks concern potential method, implementation, interfacing, testing, and maintenance issue. It also
consists of an ambiguous specification, incomplete specification, changing specification, technical uncertainty, and technical
obsolescence. Most technical risks appear due to the development team's insufficient knowledge about the project.

3. Business risks: This type of risks contain risks of building an excellent product that no one need, losing budgetary or personnel
commitments, etc.
Other risk categories:
1. Known risks: Those risks that can be uncovered after careful assessment of the project program, the business and technical
environment in which the plan is being developed, and more reliable data sources (e.g., unrealistic delivery date)
2. Predictable risks: Those risks that are hypothesized from previous project experience (e.g., past turnover)
3. Unpredictable risks: Those risks that can and do occur, but are extremely tough to identify in advance.
Principle of Risk Management
1. Global Perspective: In this, we review the bigger system description, design, and implementation. We look at the chance
and the impact the risk is going to have.
2. Take a forward-looking view: Consider the threat which may appear in the future and create future plans for directing
the next events.
3. Open Communication: This is to allow the free flow of communications between the client and the team members so
that they have certainty about the risks.
4. Integrated management: In this method risk management is made an integral part of project management.
5. Continuous process: In this phase, the risks are tracked continuously throughout the risk management paradigm.
Risk Management Activities
Risk management consists of three main activities, as shown in fig:
Risk Assessment:
The objective of risk assessment is to division the risks in the condition of their loss, causing potential. For risk assessment,
first, every risk should be rated in two methods:
1. The possibility of a risk coming true (denoted as r).
2. The consequence of the issues relates to that risk (denoted as s).
Based on these two methods, the priority of each risk can be estimated:
p=r*s

• Where p is the priority with which the risk must be controlled, r is the probability of the risk becoming true, and s is the
severity of loss caused due to the risk becoming true.
• If all identified risks are set up, then the most likely and damaging risks can be controlled first, and more comprehensive
risk abatement methods can be designed for these risks.
1. Risk Identification:
• The project organizer needs to anticipate the risk in the project as early as possible so that the impact of risk can be
reduced by making effective risk management planning.
• A project can be of use by a large variety of risk. To identify the significant risk, this might affect a project. It is necessary
to categories into the different risk of classes.
There are different types of risks which can affect a software project:
1. Technology risks: Risks that assume from the software or hardware technologies that are used to develop the system.
2. People risks: Risks that are connected with the person in the development team.
3. Organizational risks: Risks that assume from the organizational environment where the software is being developed.
4. Tools risks: Risks that assume from the software tools and other support software used to create the system.
5. Requirement risks: Risks that assume from the changes to the customer requirement and the process of managing the
requirements change.
6. Estimation risks: Risks that assume from the management estimates of the resources required to build the system.
2. Risk Analysis: 
During the risk analysis process, you have to consider every identified risk and make a perception of the probability and
seriousness of that risk.
3. There is no simple way to do this. You have to rely on your perception and experience of previous projects and the
problems that arise in them.
4. It is not possible to make an exact, the numerical estimate of the probability and seriousness of each risk. Instead, you
should authorize the risk to one of several bands:
5. The probability of the risk might be determined as very low (0-10%), low (10-25%), moderate (25-50%), high (50-75%)
or very high (+75%).
6. The effect of the risk might be determined as catastrophic (threaten the survival of the plan), serious (would cause
significant delays), tolerable (delays are within allowed contingency), or insignificant.
Risk Control:
• It is the process of managing risks to achieve desired outcomes. After all, the identified risks of a plan are determined; the
project must be made to include the most harmful and the most likely risks. Different risks need different containment
methods. In fact, most risks need ingenuity on the part of the project manager in tackling the risk.
There are three main methods to plan for risk management:
1. Avoid the risk: This may take several ways such as discussing with the client to change the requirements to decrease the
scope of the work, giving incentives to the engineers to avoid the risk of human resources turnover, etc.
2. Transfer the risk: This method involves getting the risky element developed by a third party, buying insurance cover, etc.
3. Risk reduction: This means planning method to include the loss due to risk. For instance, if there is a risk that some key
personnel might leave, new recruitment can be planned.

Risk Leverage:
To choose between the various methods of handling risk, the project plan must consider the amount of controlling the risk and
the corresponding reduction of risk. For this, the risk leverage of the various risks can be estimated.
Risk leverage is the variation in risk exposure divided by the amount of reducing the risk.
Risk leverage = (risk exposure before reduction - risk exposure after reduction) / (cost of reduction)
4. Risk planning: The risk planning method considers each of the key risks that have been identified and develop ways to
maintain these risks. For each of the risks, you have to think of the behavior that you may take to minimize the disruption to
the plan if the issue identified in the risk occurs. You also should think about data that you might need to collect while
monitoring the plan so that issues can be anticipated.
2. Risk Monitoring: Risk monitoring is the method king that your assumption about the product, process, and business risks has
not change
What is communication in project management?
Communication in project management refers to the sharing of ideas and opinions between professionals who are working on
similar or related tasks. Usually, a priority of a project leader, communication in project management ensures that each
professional working on the project is aware of the goals and expectations. This helps professionals work more efficiently and
often improves the quality of their work as well.

Why is communication in project management important?


Because project teams often comprise of professionals with a diverse range of backgrounds and skills, communication is crucial
in order to keep each professional informed and on-task. Project managers spend much of their time as leaders communicating
to their team to ensure the success of the project
Types of communication

1. Meetings
Consider holding meetings with project participants on a regular or as-needed basis. Meetings are an effective method of
communication when you have an update on a project that may need a nuanced explanation or if you anticipate many
questions about it. It's beneficial to start projects with a meeting, so you can establish your team of professionals and set a
precedent for communication. Consider holding meetings either in person and over a video call to be inclusive to all
professionals.

2. Email
Emails are a classic form of communication that many offices use as a method for both formal and informal communication.
When managing a project, try to check your email often to ensure you read any project-related email your team members send
you. You may also want to consider using an email chain to inform your team of upcoming meetings and deadlines or send
individual emails to professional who you need to speak with.

3. Phone calls
Phone calls are a great method of communication when you need a quick answer or the message you are communicating is
urgent. Phone calls often feel more personal than some forms of written communication. In order to lead productive phone
calls, consider messaging the professional shortly before to see if they have time for your call. This ensures they prepare for the
topic you wish to discuss.
4. Discussion boards
Consider setting up a discussion board or group chat in the early phases of your project. Discussion boards allow professionals to
ask general questions and connect with their team members. It's beneficial to use a discussion board both as an informational and
team bonding tool, as it may help improve your team's collaboration skills and increase the quality of their work.

5. Surveys
Professionals send out surveys to gain a general consensus regarding a particular issue. Consider using surveys when you want
your team members to vote on a particular subject or need feedback from your team. Surveys are a great tool for anonymous
communication as well. This means you can ask for your team members' opinions without them feeling nervous about your
response.

6. Presentations
Presentations are a helpful form of verbal communication that professionals use when they are educating their coworkers on a
topic or sharing news. Consider presenting on milestones in your project or arranging presentations to teach professionals how to
perform a certain task. You may want to perform a presentation in an in-person or video call meeting or you may create a
document version of your presentation for professionals to view individually.

7. Memos
Memos are short, informational messages that update professionals on issues related to the project. Project managers often use
memos to share new policies or procedures relating to project tasks. When writing memos, try to keep your message brief.
Professionals often email memos or print them off to post in a public area of the workplace.

8. Project plans
Project plans are documents that map out the process of a project. Managers usually create project plans in the early stages of their
How to effectively communicate in project management
In order for you to efficiently manage your project, it's beneficial to know how to communicate with your team. Follow these
steps to learn how to effectively communicate:

1. Plan for the project


Try to consider communication in the initial planning phase of your project. Consider creating a project plan that maps out each
phase of the project and assemble your team of professionals wisely. Planning for these aspects of the project helps to make
communicating with your team easier later in the project.

2. Establish a communication method


After you assemble a team and create a project plan, establish a primary method of communication for the project. It's
beneficial to use more than one type of communication throughout the span of the project but informing your team members
which is the primary method of communication helps organize your project. For example, you may start a group chat at the
beginning of the project and specify what you expect professionals to communicate there.

3. Share project goals


Be sure that you are regularly communicating the project's goals to your team. This ensures each professional understands the
objectives of their work. When sharing project goals, consider giving professionals the opportunity to share their ideas on how
to meet these goals. This may help reach your project objectives in a more quality or efficient way.
4. Listen to your team
Listening skills are crucial for the development of communication. Listen to your team and make an effort to ask for their
thoughts and ideas regarding certain subjects. This allows you to check in with your team and shows your team members that
you value and respect them. Often, when you display your respect for someone by listening to them, they feel more inclined to
reciprocate that respect. This strengthens your leadership skills and helps accomplish your project goals.

5. Keep everyone updated


As your project progresses, be sure to update your team on any changes within the project. This includes updates on progress,
policy change, new methods and other aspects of the project. Keeping your team updated ensures that each professional
understands the current status of the project. It also may foster a sense of inclusion and accountability, as you are involving
everyone in the project's processes.

6. Monitor employee performance


Monitoring your team member's job performance allows you to notice if any employee needs extra help. This helps you
understand what you need to communicate. Knowing how each team member is performing also may help you decide which
types of communication works best for your project. For example, if you notice a few employees are not working under the most
up-to-date terms of the project, you may want to consider changing your communication method to a more effective type for
your team.
What is the negotiation in a project?

Negotiation is a process consisting of the activities necessary to resolve different types of disputes through consultations
between the parties involved in order to reach a consensus.
Negotiations can take place at any time in the project lifecycle and may be formal or non-formal.

Formal negotiation implies an agreement through contracts and formal documents, while informal negotiations include debates
to resolve a conflict between team members, for instance.

In project management, the negotiation process is divided into phases and include:


• Planning: the preparation of all relevant information necessary for the discussion.
• Debate: here the key issues are examined and discussed.
• Proposal: the creation of the proposal as a way of solving the problem presented.
• Revision: this can include negotiating compromises before an agreement is formalized and before the information is shared
throughout the organization.
Why negotiation is important for project managers?
Here are some situations where negotiating skills play a key role in the success of a project. Cases in which the project
manager:

1. is engaged in strategic negotiations with suppliers of goods and tools necessary for the execution of the project.
2. is engaged in negotiating with a potential investor in a new project.
3. is engaged in negotiations with stakeholders regarding a substantial change in the project.
• Ultimately, negotiating skills enable project managers to achieve stronger relationships with stakeholders, better
relationships with clients and, in general, a more positive working environment.

• Negotiating can also be a useful strategy for dealing with conflicts on a project.

• While it is almost impossible to avoid conflict entirely, being able to negotiate the way around it is a useful skill.

• In the most serious situations, conflict can also halt a project.


Improving project manager’s negotiating skills:
1. Improving negotiating skills: Practice
• The very first thing to do, as happens in all things, is to practice a lot. Probably everyone negotiates more than they think –
both in their professional life and in their private life.
• It is therefore important to be aware of these negotiating situations, to analyse how you approach and deal with the moment,
how you feel and what could be improved for the next time.

2. Improving negotiating skills: Preparation


• It is important to spend some effort on preparation for negotiation.
• If a project manager knows they are meeting a supplier, for example, they should think in advance about what they want to
achieve from this agreement and explore potential alternatives.
• This way you will engage in the discussion more confidently and know in advance what you want to achieve.

3. Improving negotiating skills: Manage your emotions


• Conflict situations and negotiations often expose the worst in people.
• It is therefore important for the project manager to be prepared for how they will react in a potentially difficult and perhaps
embarrassing conversation.

4. Improving negotiating skills: Take your time


• Negotiations can take a long time and be running on a continuous basis; it is unlikely that in a single meeting, everything will
be discussed and resolved.
• For large projects, multiple meetings could be held to ensure that everything is documented effectively and to the satisfaction
of both parties.
5. Improving negotiating skills: Listen
• When preparing for a negotiation, you need to try your best to think about what you want to say, how to say it, how to reply
to what you think the other person will say.

You might also like