Upload
phebe-wilkerson
View
213
Download
0
Embed Size (px)
Citation preview
2
Software project Software project managementmanagement
Concerned with activities involved in Concerned with activities involved in ensuring ensuring that software is delivered on time and on that software is delivered on time and on schedule and in accordance with the schedule and in accordance with the requirements of the organisations requirements of the organisations developing developing and procuring the softwareand procuring the software
Project management is needed because Project management is needed because software development is always subject to software development is always subject to budget and schedule constraints that are budget and schedule constraints that are set by the organisation developing the set by the organisation developing the softwaresoftware
3
Software management Software management distinctionsdistinctions
The product is intangibleThe product is intangible The product is uniquely flexibleThe product is uniquely flexible Software engineering is not recognized as Software engineering is not recognized as
an an engineering discipline with the sane status engineering discipline with the sane status as as mechanical, electrical engineering, etc.mechanical, electrical engineering, etc.
The software development process is not The software development process is not standardisedstandardised
Many software projects are 'one-off' Many software projects are 'one-off' projectsprojects
4
The 4 The 4 P’sP’s
PeoplePeople — the most important — the most important element of a successful projectelement of a successful project
ProductProduct — the software to be built — the software to be built ProcessProcess — the set of framework — the set of framework
activities and software activities and software engineering tasks to get the job engineering tasks to get the job donedone
Project Project — all work required to — all work required to make the product a realitymake the product a reality
5
Software Project Software Project ManagementManagement
Work to be done (estimate)Resources available
Technical personnel hours Administrative support hours Equipment Software
Budget
6
Software Project Software Project ManagementManagement
Resources People Money
Tasks Map people to tasks Map money to tasks
Time Map tasks and people to a schedule Handle constraints among task serialization Manage milestones (intermediate deadlines)
7
Project Management Project Management ToolsTools
ResourcesSpreadsheet
TasksSpreadsheet
TimeCalendarPert-type chart
EverythingProject Management Software
8
Project Project Management Management
Project [persistent] functionsPlanningHiring/firing/evaluationsAccounting/budgeting
ActivitiesNon-persistentComprised of tasks
Work productsResults of tasks
10
The Project The Project ManagersManagers
Hardest ProblemHaving the right people On the right part of the project At the right time At the right price
11
Software Software ProjectsProjects
• size
• delivery deadline
• budgets and costs
• application domain
• technology to be implemented
• system constraints
• user requirements
• available resources
Factors that influence the end result ...
12
Project Management Project Management ConcernsConcerns
staffing?
cost estimation?
project scheduling?
project monitoring?
other resources?
customer communication?
risk assessment?
product quality?
measurement?
13
Why Projects Why Projects Fail?Fail?
• • an unrealistic deadline is established an unrealistic deadline is established • • changing customer requirements changing customer requirements • • an honest underestimate of effortan honest underestimate of effort• • predictable and/or unpredictable riskspredictable and/or unpredictable risks
• • technical difficultiestechnical difficulties• • miscommunication among project staffmiscommunication among project staff
• • failure in project managementfailure in project management
14
Software Software TeamsTeams
difficulty of the problem to be solveddifficulty of the problem to be solved size of resultant program(s) in LOC or FPsize of resultant program(s) in LOC or FP time the team will stay together (team lifetime)time the team will stay together (team lifetime) degree to which the problem can be modularizeddegree to which the problem can be modularized required quality and reliability of the system to be required quality and reliability of the system to be
builtbuilt rigidity of the delivery daterigidity of the delivery date degree of communication required for the projectdegree of communication required for the project
The following factors must be considered when selecting asoftware project team structure ...
15
closed paradigm—structures a team along closed paradigm—structures a team along traditional hierarchy of authority traditional hierarchy of authority
random paradigm—structures a team loosely and random paradigm—structures a team loosely and depends on individual initiative of the team depends on individual initiative of the team members members
open paradigm—attempts to structure a team in a open paradigm—attempts to structure a team in a manner that achieves some of the controls manner that achieves some of the controls associated with the closed paradigm but also much associated with the closed paradigm but also much of the innovation that occurs when using the of the innovation that occurs when using the random paradigmrandom paradigm
synchronous paradigm—relies on the natural synchronous paradigm—relies on the natural compartment-alization of a problem and organizes compartment-alization of a problem and organizes team members to work on pieces of the problem team members to work on pieces of the problem with little active communication among themselveswith little active communication among themselves
Organizational Organizational ParadigmsParadigms
suggested by Constantine [CON93]
16
Software Software TeamTeam
ParadigmsControlled (the traditional approach)Centralized (vertical only)Decentralized (horizontal too)DemographicPairs
17
Democratic Software Democratic Software TeamTeam
10 (or so) egoless programmersNo single leaderNo programmer trying to get promoted
to the next levelRoles are dynamics and not well-definedQuality Circles
18
Democratic Software Democratic Software TeamTeam
Egoless programmingEvery programmer must encourage the
other members of the team to find faultsThe presence of faults must not be
considered something bad, but rather a normal and accepted event
The reviewer is asked for advice
19
Democratic Software Democratic Software TeamTeam
Leverages the diversity of the group Two heads really are better than one Facilitates reviews and walkthroughs, which
are proven to improve fault detection The ultimate goal is to reduce fear in the
workplace. Primary means is by sharing responsibility
20
Fallacy of Fallacy of EgolessnessEgolessness
Everybody has egos Leaders "need" to lead Capitalism is founded on competition Difficult to attain group decisions that truly
represent the entire group Large number of personal interconnections
required Group dynamics suggests that structure will occur
21
Pair Pair ProgrammingProgramming
Match up two people One to define requirements, another
to document requirements.Allows interaction between two
people to drive out requirements.Can have two people programming,
one thinking and one keying.
22
Defining the Defining the ProblemProblem
establish scope—a narrative that establish scope—a narrative that bounds the problembounds the problem
decomposition—establishes decomposition—establishes functional partitioningfunctional partitioning
23
Melding Problem and Melding Problem and ProcessProcess
.
Software Engineering Tasks
Product Functions
Text input
Editing and formating
Automatic copy edit
Page layout capability
Automatic indexing and TOC
File management
Document production
COMMON PROCESSFRAMEWORK ACTIVITIES
24
To Get to the Essence of a To Get to the Essence of a ProjectProject
Why is the system being developed?Why is the system being developed? What will be done? By when?What will be done? By when? Who is responsible for a function?Who is responsible for a function? Where are they organizationally Where are they organizationally
located?located? How will the job be done technically and How will the job be done technically and
managerially?managerially? How much of each resource (e.g., How much of each resource (e.g.,
people, software, tools, database) will people, software, tools, database) will be needed?be needed?
Barry Boehm
25
Critical Critical PracticesPractices
Formal risk analysisFormal risk analysis Empirical cost and schedule estimationEmpirical cost and schedule estimation Metrics-based project managementMetrics-based project management Earned value trackingEarned value tracking Defect tracking against quality targetsDefect tracking against quality targets People aware project managementPeople aware project management
26
Management Management activitiesactivities
Proposal writingProposal writing Project planning and schedulingProject planning and scheduling Project costingProject costing Project monitoring and reviewsProject monitoring and reviews Personnel selection and evaluationPersonnel selection and evaluation Report writing and presentationsReport writing and presentations
27
Project Project staffingstaffing
May not be possible to appoint ideal teamMay not be possible to appoint ideal team Budget may not allow use of high-paid Budget may not allow use of high-paid
staffstaffStaff with the appropriate experience may not Staff with the appropriate experience may not
be availablebe availableAn organisation may wish to develop employee An organisation may wish to develop employee
skills on a software projectskills on a software project
Managers work within these constraints Managers work within these constraints especially with the international shortage especially with the international shortage of skilled IT staffof skilled IT staff
28
Project Project planningplanning
Probably the most time-consuming Probably the most time-consuming project management activityproject management activity
Continuous activity from initial Continuous activity from initial concept through concept through to system delivery. Plans must be to system delivery. Plans must be regularly revised as new information regularly revised as new information becomes availablebecomes available
Various different types of plan may Various different types of plan may be developed to support the main be developed to support the main software project plan that is software project plan that is concerned with schedule and budget concerned with schedule and budget
29
Activity Activity organizationorganization
Activities in a project should be Activities in a project should be organised to produce tangible organised to produce tangible outputs for management to judge outputs for management to judge progressprogress
MilestonesMilestones are the end-point of a are the end-point of a process activityprocess activity
DeliverablesDeliverables are project results are project results delivered to customersdelivered to customers
The waterfall process allows for the The waterfall process allows for the straightforward definition of straightforward definition of progress milestonesprogress milestones
30
Project Project schedulingscheduling
Split project into tasks and estimate Split project into tasks and estimate time and resources required to time and resources required to complete taskcomplete task
Organize tasks concurrently to make Organize tasks concurrently to make optimal use of workforceoptimal use of workforce
Minimize task dependencies to avoid Minimize task dependencies to avoid delays delays caused by one task waiting for caused by one task waiting for another to completeanother to complete
Dependent on project managers Dependent on project managers intuition and experienceintuition and experience
31
Scheduling Scheduling problemsproblems
Estimating the difficulty of problems Estimating the difficulty of problems and hence the cost of developing a and hence the cost of developing a solution is hardsolution is hard
Productivity is not proportional to the Productivity is not proportional to the number of people working on a tasknumber of people working on a task
Adding people to a late project makes Adding people to a late project makes it later because of communication it later because of communication overheadsoverheads
The unexpected always happens. The unexpected always happens. Always allow contingency in planningAlways allow contingency in planning
32
Bar charts and activity Bar charts and activity networksnetworks
Graphical notations used to Graphical notations used to illustrate the project scheduleillustrate the project schedule
Show project breakdown into tasks. Show project breakdown into tasks. Tasks should not be too small. They Tasks should not be too small. They should take about a week or twoshould take about a week or two
Activity charts show task Activity charts show task dependencies and the the critical dependencies and the the critical pathpath
Bar charts show schedule against Bar charts show schedule against calendar timecalendar time
33
Pert Pert ChartsCharts
Program Evaluation Review Techniques US Navy, 1957 Systematic method of estimating project length Based on a systematic serialization algorithm
based on: Dependencies Resource availability
Adds administrative oversight to critical paths Critical path: Sequence of tasks such that if any task on the CP is
delayed, so is the whole project 22
34
Activity network - PERTActivity network - PERT
start
T2
M3T6
Finish
T10
M7T5
T7
M2T4
M5
T8
4/7/99
8 days
14/7/99 15 days
4/8/99
15 days
25/8/99
7 days
5/9/99
10 days
19/9/99
15 days
11/8/99
25 days
10 days
20 days
5 days25/7/99
15 days
25/7/99
18/7/99
10 days
T1
M1 T3T9
M6
T11
M8
T12
M4