Download as pdf or txt
Download as pdf or txt
You are on page 1of 37

Chapter 3

Planning and Managing the Project

How to manage your project?

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.1
Project phases without docuemntations

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.2
3.1 Tracking Progress

1. Do we understand customer’s needs? yes.


2. Can we design a system to solve customer’s problems
or satisfy customer’s needs? yes.
3. How long will it take to develop the system??? Group
Leader will give an answer
4. How much will it cost to develop the system? Group
Leader will give an answer

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.3
3.1 Tracking Progress
Project Schedule (Gantt
(Gantt-
Gantt-Chart)

• Describes the software-development cycle for


a particular project by
– counting the phases or stages of the project
– breaking each phase into discrete tasks or activities
to be completed
• Portrays the interactions among the activities
(use Gantt-Chart) and
• Estimates the times that each task or activity
will take (use Gantt-Chart).
PS: in our proposal time is given, but you could (Team Leader) modify it

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.4
3.1 Tracking Progress
Project Schedule: Approach

• Understanding customer’s needs by listing all project deliverables


– Documents done
– Demonstrations of function. Description of function(s) such as
inputs/outputs, internal/external arguments, what it does
– Demonstrations of subsystems. Designed and Explained
– Demonstrations of accuracy. testing
– Demonstrations of reliability, performance or security. Evaluation
and delivery
• Determining milestones and activities to produce the deliverables.
( Draw Gantt-Chart/Milestones)

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.5
3.1 Tracking Progress
Activities and Milestones/Gantt-
Milestones/Gantt-Chart

• Activity: takes place over a period of time (days/weeks/months/years)


https://www.smartdraw.com/activity-diagram/examples/
• Milestone: completion of an activity -- a particular point in time
(days)
https://www.smartdraw.com/gantt-chart/examples/
• Flowchart:
• https://www.lucidchart.com/pages/templates/flowchart/system-
flowchart-template
• Tools to Track Progress (use anyone for your project)
https://www.smartdraw.com/organizational-
chart/examples/corporate-organizational-chart/
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.6
What is a Flowchart?

• A flowchart is a visual representation of the sequence of steps and


decisions needed to perform a process. Steps are linked by
connecting lines and directional arrows. This allows anyone to view
the flowchart and logically follow the process from beginning to end.

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.7
What is a milestone/Gantt
milestone/Gantt-
Gantt-Chart?
Chart?

A milestone is an important event in the history or


development of something. A completion of an activity in a
particular point in time (Gantt-Chart).

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.8
3.1 Tracking Progress
Project Schedule (continued)

• Project development can be separated into a AA1

succession of phases which are composed of


steps, which are composed of activities

Details of each
phase and
activity

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.9
Slide 9

AA1 Abdurazzag Aburas, 01 Aug 2019


3.1 Tracking Progress
Work Breakdown and Activity Graphs

• Work breakdown structure depicts the project as a set of discrete


pieces of work
• Activity graphs depict the dependencies among activities
– Nodes: project milestones
– Lines: activities involved
Example:
https://www.smartdraw.com/decision-tree/examples/project-
development-decision-tree/

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.10
Activity graph for Software Project development

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.11
3.1 Tracking Progress
Work Breakdown and Activity Graphs (continued)
(continued)

• Activity graph for building a house

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.12
3.1 Tracking Progress
Estimating Completion
• Adding estimated time in activity graph of each activity to be
completed tells us more about the project's schedule
days

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.13
3.1 Tracking Progress
Estimating Completion for Building a House

Activity Time estimate (in days)


Step 1: Prepare the site
Activity 1.1: Survey the land 3
Activity 1.2: Request permits 15
Activity 1.3: Excavate for the foundation 10
Activity 1.4: Buy materials 10
Step 2: Building the exterior
Activity 2.1: Lay the foundation 15
Activity 2.2: Build the outside walls 20
Activity 2.3: Install exterior plumbing 10
Activity 2.4: Exterior electrical work 10
Activity 2.5: Exterior siding 8
Activity 2.6: Paint the exterior 5
Activity 2.7: Install doors and fixtures 6
Activity 2.8: Install roof 9
Step 3: Finishing the interior
Activity 3.1: Install the interior plumbing 12
Activity 3.2: Install interior electrical work 15
Activity 3.3: Install wallboard 9
Activity 3.4: Paint the interior 18
Activity 3.5: Install floor covering 11
Activity 3.6: Install doors and fixtures 7

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.14
Flowchart

start Code
documentation

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.15
3.1 Tracking Progress
Critical Path Method (CPM)
• Minimum amount of time it will take to complete a
project
– Reveals those activities that are most critical to completing the
project on time
• Real time (actual time):
time): estimated amount of time
required for the activity to be completed
• Available time:
time: amount of time available in the schedule
for the activity's completion
• Slack time:
time: the difference between the available time and
the real time for that activity

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.16
3.1 Tracking Progress
Critical Path Method (CPM) (continued)

• Critical path:
path the slack at every node is zero
– can be more than one in a project schedule
• Slack time = available time – real time = latest start time – earliest start time

• you could add a table for your project such as


Activity Earliest start time Latest start time Slack
Activity-1

Activity-2

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.17
3.1 Tracking Progress
Tools to Track Progress (use anyone for your project)

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.18
3.1 Tracking Progress
Tools to Track Progress (use
use anyone for your project)
project

• Example: to track progress of building a communication software

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.19
3.1 Tracking Progress
Tools to Track Progress: Ex2: Gantt Chart
• Activities shown in parallel
– helps understand which activities can be performed concurrently

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.20
3.1 Tracking Progress
Tools to Track Progress: Resource Histogram
https://www.smartdraw.com/histogram/examples/

• Shows people assigned to the project and


those needed for each stage of development

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.21
3.2 Project Personnel
• Key activities requiring personnel
1) requirements analysis
2) system design
3) program design (flowchart, Data Flow Diagrams)
https://www.lucidchart.com/pages/templates/flowchart/programming-flowchart-template

4) program implementation
5) testing
6) training
7) maintenance
8) quality assurance
• There is great advantage in assigning different responsibilities
to different people

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.22
3.2 Project Personnel
Choosing Personnel (by Group leader)

The chosen person should have the following criteria:


1) Ability to perform work
2) Interest in work
3) Experience with
a) similar applications
b) similar tools, languages, or techniques
c) similar development environments
4) Training
5) Ability to communicate with others
6) Ability to share responsibility
7) Management skills
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.23
3.2 Project Personnel
Communication

• A project's progress is affected by


1) Degree of communication (meeting, emails, Skype, SMS, etc..)
2) Ability of individuals to communicate their ideas
• Software failures can result from breakdown in communication and
understanding

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.24
3.2 Project Personnel
Communication (continued)

• Line of communication can grow quickly


• If there is n worker in project, then there are n(n-1)/2 pairs of
communication

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.25
3.2 Project Personnel
Project Organization (draw your project organization chart)
https://www.lucidchart.com/pages/templates/org-
https://www.lucidchart.com/pages/templates/org-chart/project-
chart/project-organizational-
organizational-chart-
chart-template

• Depends on
1) backgrounds and work styles of team members
2) number of people on team
3) management styles of customers and developers
• Examples:
– Chief programmer team: one person totally responsible for a
system's design and development
– Egoless approach: hold everyone equally responsible

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.26
3.2 Project Personnel
Project Organization: Chief Programmer Team (Company)
https://www.lucidchart.com/pages/templates/org-
https://www.lucidchart.com/pages/templates/org-chart/company-
chart/company-organizational-
organizational-chart-
chart-template

• Each team member must communicate often with chief, but not
necessarily with other team members

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.27
3.3 Effort Estimation project costs

• Estimating project costs is one of the crucial aspects of project


planning and management
• Estimating cost has to be done as early as possible during the project
life cycle
• Type of costs
1. facilities: hardware, space, furniture, telephone, etc.
2. software tools for designing software
3. Staff/engineers (effort): the biggest component of cost

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.28
PROJECT TITLE: Smart Dispenser Prescription Medicine Machine (SDNPMM)
DURATION: ( 18 ) MONTHS
Ex: ITEM: CATEGORY NO. COMPENSATION
Phase1/First Year Phase2/Second Year
TOTAL
Months Budget Months Budget
Consultants 1 1000 12 12000 $12,000
Principal investigator 1 1500 12 18000 6 9000 $27,000
Co-investigator 2 1000 12 12000 6 6000 $18,000
Other senior personnel
Postdoctoral associate
Manpower

Research assistants 2 500 12 6,000 6 3000 $9,000


PhD students
Ms students
Undergrads students 150 12 1,800 6 900 $2,700
Project manager
Technicians
Secretarial- clerical
Other (Engineers) 2 150 12 1,800 6 900 $2,700
Compensatio

Compensation 1
Summer

Compensation 2

Total (including summer compensation)


$71,400
Equipmen

Materials

Major Equipment 5,000 $5,000


t&

Equipment and components 5,000 $5,000


Materials & Supplies 2,000 $2,000
Item Total 12,000 $12,000
Conferences 1,100 $1,100
Travel

Training
Field trips and Accommodations 4,000 $4,000
Tickets 5,000 $5,000
Item Total
10,100 $10,100
Patent registration 2,500 $2,500
Others

Publications 2,000 $2,000


Workshop 1,000 $1,000
Other Expenses 1,000 $1,000
Item Total 6,500 $6,500
Grand Total $100,000
Grand Total
Pfleeger and Atlee, Software100% $100,000
Engineering: Theory and Practice Chapter 3.29
3.3 Effort Estimation
Sidebar 3.3 Causes of Inaccurate Estimates

• Key causes
1) Frequent request for change by users
2) Overlooked tasks
3) User's lack of understanding of the requirements
4) Insufficient analysis when developing estimates
5) Lack of coordination of system development, technical
services, operations, data administration, and other
functions during development
6) Lack of an adequate method or guidelines for estimating

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.30
3.3 Effort Estimation
Sidebar 3.3 Causes of Inaccurate Estimates (READING)
READING)
• Key influences
– Complexity of the proposed application system
– Required integration with existing system
– Complexity of the program in the system
– Size of the system expressed as number of functions or
programs
– Capabilities of the project team members
– Project team's experience with the application, the
programming language, and hardware
– Capabilities of the project team members
– Database management system
– Number of project team member
– Extent of programming and documentation standards
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.31
3.4 Risk Management
What is a Risk?
• Risk is an unwanted event that has negative
consequences
• Distinguish risks from other project events
– Risk impact:
impact the loss associated with the event
– Risk probability: the likelihood that the event will
occur
• Quantify the effect of risks
– Risk exposure = (risk probability) x (risk impact)
• Risk sources: generic and project-specific

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.32
3.4 Risk Management
Risk Management Activities

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.33
3.4 Risk Management
Risk Management Activities (continued)

• Three strategies for risk reduction


– Avoiding the risk: change requirements for
performance or functionality
– Transferring the risk: transfer to other system, or
buy insurance
– Assuming the risk: accept and control it
• Cost of reducing risk
– Risk leverage = (risk exposure before reduction –
(risk exposure after reduction) / (cost of risk
reduction)

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.34
3.5 Project Plan: Project Plan Contents
• Project scope • Documentation plan
• Project schedule • Data management plan
• Project team • Resource management
organization plan
• Technical description of • Test plan
system • Training plan
• Project standards and • Security plan
procedures
• Risk management plan
• Quality assurance plan
• Maintenance plan
• Configuration
management plan

Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.35
3.5 Project Plan: Project Plan Lists
• List of the people in development team
• List of hardware and software
• Standards and methods, such as
1) Algorithms (flowchart)
2) Tools
3) Review or inspection techniques
4) Design language or representations
5) Coding languages: Java, C/C++, C#, Python
6) Testing techniques

End of Chapter#3
Pfleeger and Atlee, Software Engineering: Theory and Practice Chapter 3.36

You might also like