100% found this document useful (1 vote)
187 views

Nalla Malla Reddy Engineering College: Notes of Unit-1

1. The document discusses software process and project management. It defines software process as the set of tools, methods and practices used to develop software and explains that software process management aims to produce higher quality products while improving the organization's capabilities. 2. It describes the six steps organizations should take to improve their software process: understand the current process, design the desired process, establish improvement priorities, create an improvement plan, commit resources, and continuously improve. 3. The document also discusses the Capability Maturity Model (CMM) which specifies five levels of increasing software process maturity from initial to optimized. Higher maturity levels indicate a better defined, managed, and continuously improving software development process.

Uploaded by

VIJETHA RINGU
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
187 views

Nalla Malla Reddy Engineering College: Notes of Unit-1

1. The document discusses software process and project management. It defines software process as the set of tools, methods and practices used to develop software and explains that software process management aims to produce higher quality products while improving the organization's capabilities. 2. It describes the six steps organizations should take to improve their software process: understand the current process, design the desired process, establish improvement priorities, create an improvement plan, commit resources, and continuously improve. 3. The document also discusses the Capability Maturity Model (CMM) which specifies five levels of increasing software process maturity from initial to optimized. Higher maturity levels indicate a better defined, managed, and continuously improving software development process.

Uploaded by

VIJETHA RINGU
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

NALLA MALLA REDDY ENGINEERING COLLEGE

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


Notes of Unit-1
Sub: Software Process and Project Management Class: CSE IV-I Faculty: R. Vijetha

Notes on Learning Outcome -1


What is software process?
The software process is set of tools, methods and practices used to develop software products.
To manage this software process to produce products of better quality while improving the
organization’s capacity is known as software process management.
How to improve software process?
To improve their Software capabilities, organizations have to take six steps:
1. Understand the current status of their development process or processes.
2. Develop a design of desired process
3. Establish a list of required process improvement actions in order of priority
4. Produce a plan to accomplish the required actions
5. Commit the resources to execute the plan
6. Start over at step 1.
What is Software Maturity Framework?
The Software Engineering Institute (SEI) Capability Maturity Model (CMM) specifies an
increasing series of levels of a software development organization. The higher the level, the
better the software development process, hence reaching each level is an expensive and time-
consuming process. By establishing their position in these maturity structure, software
professionals and their managers can identify the areas where improvement actions are
needed the most.
Process Maturity Levels:
There are five levels of process maturity which has the following characteristics:
1. Initial: No KPA’s defined. Processes followed are ad hoc and immature and are not
well defined. Unstable environment for software development. No basis for predicting
product quality, time for completion, etc.

2. Repeatable: Focuses on establishing basic project management policies. Experience


with earlier projects is used for managing new similar natured projects.

3. Defined: Focuses on establishing basic project management policies. Experience with


earlier projects is used for managing new similar natured projects.

4. Managed: Focuses on establishing basic project management policies. Experience


with earlier projects is used for managing new similar natured projects.
5. Optimizing: This is the highest level of process maturity in CMM and focuses on
continuous process improvement in the organization using quantitative feedback. Use
of new tools, techniques and evaluation of software processes is done to prevent
recurrence of known defects

The process maturity level framework is shown in the figure below:

Fig. 1 Process Maturity Levels


Notes on Learning Outcome- 2
Principles of software Process Change:
There are 6 basic principles of process change. They are as follows
The basic principles of software process change are
1 - Major changes to the software process must start at the top
2 - Ultimately, everyone must be involved
3 - Effective change requires a goal and knowledge of the current process
4 - Change is continuous
5 - Software process changes need periodic reinforcement
6 - Software process improvement requires investment

1 - Changes must start at the top:


Major changes require leadership Conviction that long-term improvements are possible and
essential Managers must set challenging goals monitor process insist on performance. Process
problems are management's responsibility
2 - Everyone must be involved:
A mature process help getting individual actions structured, efficient, and reinforced. As in
professional sports, all the team members need to support each other When they don't, they
act like a mob of individual players resulting in a loose of synergistic cohesion with an
immature software process, software professionals are forced to improvise solutions
3 - Change is built on knowledge:
An effective change program requires a reasonable understanding of the current status People
often feel that their problems are unique, however studies show this is not true Experiences
shows that problems were already addressed in the past, in the same organization
4 - Change is continuous:
When dealing with software process dynamic reactive changes generally make things worse
every defect is an improvement opportunity crisis prevention is more important than crisis
recovery. Defect prevention is a powerful technique for improving the software process track
every problem and periodically to establish prevention actions teams
One of the most difficult things for a management team to recognize is that human intensive
processes are never static. Both the problems and the people are in constant flux, and this
fluidity calls for periodic adjustment of tasks and relationships. Even with a stable
population, the people continually learn new skills and find different ways to solve problems.
The Reactive changes generally make things worse. point comes from industrial engineering.
In a crisis, the focus is on quickly fixing the immediate problem, on not on improving the
process. It is wise to make permanent process changes in a disciplined way. By occasionally
adding new review steps or requiring additional tests, the process can soon become an
incoherent patchwork rather than an orderly improvement framework. Defect prevention is a
powerful technique for improving the software process. The general idea is to track every
problem and periodically to establish prevention action teams. One of the greatest
conundrums of software management is maintaining sufficient priority on problem
prevention. People gain greater visibility from putting out fires than from preventing them.
These ``heroes'' are then more likely to be promoted than the quiet and effective professionals
who stayed out of trouble. At lower maturity levels, management must consciously reward
preventing as well as fixing.
5 - Changes won't stick by themselves
Improvements are likely to deteriorate over the time Entropy refers to the steady increase in
the randomness or disorder Precise and accurate work is so hard that is rarely sustained for
long without reinforcement. Software engineering is a tough discipline, and it is getting
tougher. There are endless opportunities for error. The actions of even the best-intentioned
professionals must be tracked, reviewed, and checked, or process deviations will occur.
6 -Investment
It takes times, skill, and money to improve the software process to improve the software
process, someone must work on it! Improvements should be made in small, tested steps
Train, train, train!
Notes on Learning Outcome-3 &4
Different Process Levels

The Initial Process:


Here in this level of process, an organization does not have an explicit architecture.
The software process is characterized as inconsistent, and occasionally even chaotic. Defined
processes and standard practices that exist are abandoned during a crisis. Success of the
organization majorly depends on an individual effort, talent, and heroics. The heroes
eventually move on to other organizations taking their wealth of knowledge or lessons learnt
with them.

The Initial level organizations are often known for the chaotic nature. This is due to many
reason and lack of commitment, discipline is the most common reason for chaotic behaviour.
But there are more reasons other than above said. Some of the major reasons are:
1. Under extreme pressure, software managers often make a guess rather than a plan.
Though the commitments are accurate, if the guess is low, then the chaos ensues.
2. When the going gets rough, there is a strong temptation to believe in magic. Some
“saviour” may appear or a new technology may be the answer. As this is just hope
and no plan is prepared, it merely postpones the problem.
3. The scale of software projects follows an escalating cycle:
 Project generally takes more code than expected.
 As the programs become larger, new technical and management issues arise.
 Some are unlike previous experience, they are surprised
 As the scale increases, the surprises continue and thus increasing the cost.
4. Even after a higher maturity level is reached, some organisations cannot sustain the
pressure of challenges at that level like, new technologies, increased competitors,
technical and management level challenges etc. so they tend to revert to the Initial
process levels
The main Chaotic forces are:
 Unplanned Commitments
 Problems of scale
 Lack of Experience to new challenges
 Belief in magic
Way out of Chaos:
The outline of general solutions are:
1) Apply systematic project management- work must be estimated, planned and
managed
2) Adhere to careful change management- changes must be controlled, including
requirements, design, implementation and test.
3) Utilize independent software assurance- an independent technical means is
required to assure that all essential project activities are properly performed.
The basic principles for controlling chaos in software organizations are:

 Plan the work


 Track and maintain the plan
 Divide the work into independent parts
 Precisely define the requirements for each part
 Rigorously control the relationships among the parts
 Treat software development as a learning process
 Recognize what you don’t know
 When the gap between your knowledge and the task is severe, fix it before proceeding
 Manage, audit, and review the work to meet your commitments
 Refine the plan as your knowledge of the job improves

The Repeatable Process:


Here in this level, the focus is on establishing basic project management policies. Experience
with earlier projects is used for managing new similar natured projects.
Key Process Areas:
 Project Planning- It includes defining resources required, goals, constraints, etc. for
the project. It presents a detailed plan to be followed systematically for successful
completion of a good quality software.
 Configuration Management- The focus is on maintaining the performance of the
software product, including all its components, for the entire lifecycle.
 Requirements Management- It includes the management of customer reviews and
feedback which result in some changes in the requirement set. It also consists of
accommodation of those modified requirements.
 Subcontract Management- It focuses on the effective management of qualified
software contractors i.e. it manages the parts of the software which are developed by
third parties.
 Software Quality Assurance- It guarantees a good quality software product by
following certain rules and quality standard guidelines while development

Defined Process:
At this level, documentation of the standard guidelines and procedures takes place.
It is a well defined integrated set of project specific software engineering and
management processes.
Key Process Areas:
 Peer Reviews- In this method, defects are removed by using a number of review
methods like walkthroughs, inspections, buddy checks, etc.
 Intergroup Coordination- It consists of planned interactions between different
development teams to ensure efficient and proper fulfilment of customer needs.
 Organization Process Definition- It’s key focus is on the development and
maintenance of the standard development processes.
 Organization Process Focus- It includes activities and practices that should be
followed to improve the process capabilities of an organization.
 Training Programs- It focuses on the enhancement of knowledge and skills of the
team members including the developers and ensuring an increase in work
efficiency.

Managed Process:
At this stage, quantitative quality goals are set for the organization for software products
as well as software processes.
The measurements made help the organization to predict the product and process quality
within some limits defined quantitatively.
Key Process Areas:
 Software Quality Management- It includes the establishment of plans and
strategies to develop a quantitative analysis and understanding of the product’s
quality.
 Quantitative Management- It focuses on controlling the project performance in a
quantitative manner.
Optimizing Process
This is the highest level of process maturity in CMM and focuses on continuous process
improvement in the organization using quantitative feedback.
Use of new tools, techniques and evaluation of software processes is done to prevent
recurrence of known defects.
Key Process Areas:
 Process Change Management- Its focus is on the continuous improvement of
organization’s software processes to improve productivity, quality and cycle time
for the software product.
 Technology Change Management- It consists of identification and use of new
technologies to improve product quality and decrease the product development
time.
 Defect Prevention- It focuses on identification of causes of defects and to prevent
them from recurring in future projects by improving project defined process.

You might also like