Software Engineering - Intercollege Cyprus
Download
Report
Transcript Software Engineering - Intercollege Cyprus
Software Engineering
Managing Software Projects
Objectives
To examine the management spectrum
(The 4 P’s)
To emphasise the importance of people
in the software engineering process
Team structures and organization
Management activities
Problem solving (using available people)
Motivating (people who work on a project)
Planning (what people are going to do)
Estimating (how fast people will work)
Controlling (people's activities)
Organising (the way in which people work)
The 4 P’s
Effective software project management focuses
on:
People - the most important element of a successful project
Product - the software to be built
Process - the set of framework activities and software
engineering tasks to get the job done
Project - all work required to make the product a reality
Each of the above is important but the synergy of all
four working together will yield the successful
management of software products.
The People
Software teams may be organized in many
different ways.
Deciding factors for selecting a team’s
organizational model are:
Management style of the organization
Number of people in the team and their skill levels
Desired level of communication between team
members
Difficulty level of the problem to be solved
Required quality and reliability of the system to be
built.
Team lifetime
The degree to which the problem can be
modularized.
Three generic team structures
Democratic decentralized (DD)
Horizontal communication
No permanent team leader; Short-term task coordinators
Controlled decentralized (CD)
Horizontal communication among subgroups and individuals
Vertical communication along the control hierarchy
Team leader and secondary leaders are appointed
Problem solving -> Team activity;
Implementation -> Partitioned among subgroups
Controlled centralized (CC)
Vertical communication between leader and team members
Problem solving -> Top level
Internal coordination -> Team leader
Team-structure characteristics
Controlled
Centralized (CC)
Fast task completion
Good for simple and/or large
problems with high modularity
Controlled
Decentralized (CD)
Good for simple and/or large
problems with high modularity
More and better solutions
Democratic
Decentralized (DD)
A team generates more and
better solutions than individuals
Good for difficult problems
High morale and job satisfaction
(Mantei, 1981)
Organizational Paradigms
Closed paradigm – uses a traditional hierarchy of
authority (similar to a CC team)
Random paradigm – loose team structure; dependence
on individual initiative of the team members
Open paradigm - attempts to combine some of the
controls associated with the closed paradigm but also much of
the innovation connected to random paradigm
Synchronous paradigm - relies on problem
modularization and organizes team members to work on pieces
of the problem with little active communication among
themselves
(Constantine, 1993)
Staff selection factors
Factor
Application domain
experience
Platform experience
Programming language
experience
Educational background
Communication ability
Adaptability
Attitude
Personality
©Ian Sommerville 1995
Explanation
For a project to develop a succes sful system, the
developers must understand the application domain.
May be s ignificant if
low-level programming is
involved. Otherwis e, not us ually a critical attribute.
Normally only significant for short duration projects
where there is ins ufficient time to
learn a new
language.
May provide an indicator of the bas ic fundamentals
which the candidate should know and of their ability
to learn. This factor becomes increas ingly irrelevant
as engineers gain experience across a
range of
projects.
Very important because of the need for project s taff to
communicate orally and in writing with other
engineers, managers and cus tomers .
Adaptability may be judged by looking at the different
types of experience which candidates have had.This is
an important attribute as it indicates an ability to
learn.
Project s taff s hould have a pos itive attitude to their
work and s hould be willing to learn new skills. This
is an important attribute but often very difficult
to
ass es s.
Again, an important attribute but difficult to as sess .
Candidates mus t be reas onably compatible with other
team members. No particular type of personality is
more or les s s uited to s oftware engineering.
Software Engineering, 5th edition.
The Product
-> The problem to be solved
The first project management activity is
the determination of the project scope.
Decompose the problem into smaller,
more easily managed sub problems.
(Partitioning)
The Process
Select the appropriate process model for the
software to be engineered between:
The linear sequential model
The prototyping model
The RAD model
The incremental model
The spiral model
The WINWIN spiral model
The component-based development model
The concurrent development model
The formal methods model
The Fourth generation techniques model
Bring together the product and the process.
Apply the common process framework (CPF):
Customer communication
Planning
Risk analysis
Engineering
Construction
Release
Customer evaluation
The Project
Why Projects Fail?
An unrealistic deadline is established
Changing customer requirements
Underestimate of effort needed
Predictable and unpredictable risks
Technical difficulties
Miscommunication among project staff
Failure in project management
The W5HH Principle
Used to get to the essence of a project
Why is the system being developed?
What will be done? By when?
Who is responsible for a function?
Where are they organizationally located?
How will the job be done technically and
managerially?
How much of each resource (e.g., people,
software, tools, database) will be needed?
(Boehm, 1996)
Critical Practices
QuickLook questions for a project:
Formal risk analysis
Empirical cost and schedule estimation
Metrics-based project management
Earned value tracking
Defect tracking against quality targets
People aware project management