CSC111H Project Planning Dennis Burford dburford@cs.uct.ac.za

Preview:

Citation preview

CSC111HProject Planning

Dennis Burford

dburford@cs.uct.ac.za

Planning

• Important because:– Software development is complex process– Team work is essential– Time and money constraints– Need direction... i.e. goals

• May build wrong thing!

– Need a measure of progress / success or failure

Planning

• Problem Definition

• Determine Constraints

• Task Breakdown

• Scheduling

• Delegation of tasks - Team Work

• Documentation

Problem Definition

• Define problem clearly and unambiguously• “Build” system on paper

– Tests problem understanding

– Uncovers potential problems

• Draw up formal problem definition– Need knowledge of problem (above)

– Part of software lifecycle

• Will refer to prob. def. throughout project

Software Lifecycle

• Specification – what are the needs? (WHAT)

• Design – how will we do it? (HOW)

• Implementation – do the actual programming

• Testing – make sure it does what it was supposed to do

• Maintenance – ongoing adjustments & corrections

Determine Constraints• Time

– Milestones and deliverables– Final delivery date

• People– Number of participants– Skills available

• Resources– Money– Equipment– Information?

Task Breakdown

• Establish “areas” of work

• Give names to tasks

• Task hierarchy– Each task broken into smaller sub-tasks– Task complete when all subtasks complete

Task Breakdown

Project

GUI C/S

Requirements Layout Implementation

Integration

Components Listeners

Scheduling

• Dependencies– What tasks to be done before others?

• Estimate time– Conservative estimates– Rather overestimate and have more time at end

• Allocation of people to task– Fair breakdown– Maximise skills

Dependencies : Making Tea...

Task Duration Dependent on...

A. Boil water in kettle 4

B. Heat milk 7

C. Tea bags into pot 1

D. Sugar into cups 1

E. Pour water into pot 3

F. Pour tea into cups 1

G. Add milk to tea 1

H. Stir and drink 6

Task Duration Dependent on...

A. Boil water in kettle 4 -

B. Heat milk 7 -

C. Tea bags into pot 1 -

D. Sugar into cups 1 -

E. Pour water into pot 3 A, C

F. Pour tea into cups 1 D, E

G. Add milk to tea 1 B, F

H. Stir and drink 6 G

Dependencies : Making Tea...

Scheduling

• Scheduling techniques / documents

– Table of tasks, delegation, time estimates and completion dates

– Gantt chart: visual representation of tasks, dependencies and completion times

Scheduling: Table

# Task Who Duration (h) Start Date End Date1 Create GUI JS + NB 15 1 Mar 10 Mar1.1 GUI requirements JS + NB 2 1 Mar 2 Mar1.2 Layout JS + NB 1 2 Mar 3 Mar1.3 Component Hierarchy JS 2 2 Mar 3 Mar1.4 Implementation JS 10 3 Mar 10 Mar

Scheduling: Gantt ChartBoil WaterA

Heat MilkB

T bagsC

Sugar D

Water in potE

T in cupsF

Add milkG

DrinkH

10 4 7 8 9 15

Scheduling: Making Tea...

Task Duration Dependent on...

A. Boil water in kettle 4 -

B. Heat milk 7 -

C. Tea bags into pot 1 -

D. Sugar into cups 1 -

E. Pour water into pot 3 A, C

F. Pour tea into cups 1 D, E

G. Add milk to tea 1 B, F

H. Stir and drink 6 G

Scheduling

• Milestones– Check of progress made

– End of distinct stage

– Must be verifiable

• Deliverables– Milestone

– Tangible progress - usually delivered to customer

9

Team Work

• Division of labour between members• Ensure fair breakdown

• Use strengths / skills of each member• Team work, “interfacing”, is part of any project

• Related sub-tasks should be done by same person• Plan for integration of separate work

Team Work

• Hold meetings:– Regular – Focussed– Efficient use of time

• Responsibility, Accountability, Discipline

Documentation

• Workbooks– All ideas, plans, designs– Dates and page numbers– Record of meetings, problems, progress

• Project Report– “Active” document– Start writing from day 1– Constantly revise and rewrite

Project Pitfalls• Coding before planning

• No milestones

• Unrealistic goals

• Great plan, no action

• Rigid “at-all-costs” task completion (overrun time allocation)

• One man show

• No documentation / last-day write-up

Assignment: Work-plan

The aim of this deliverable is for you to start thinking about the project in more detail. It is suggested you read through all the future tuts associated with this project (3-8). You are required to break down the project in a number of detailed tasks. For each task estimate how long the task will take you (and then multiply this by 2 for a more realistic estimate). From this develop an outline plan of how you intend structuring your work over the remainder of the project (remember to include the time to do your documentation). For each task, state how long you estimate it will take you (in hours), as well as the date you expect to complete it. Your tasks must be more detailed than the handins we have specified.

Assignment: Work-plan

Programming tasks 30%– Well thought out, and detailed = 30%– Some tasks, but very broad, or major tasks missing=15%– No programming tasks given=0%

Documentation tasks 30%– Well thought out, and detailed=30%– Some tasks, but very broad, or major tasks missing=15%– No documentation tasks given (0%)

Estimated Time 20%– Seems realistic=20%– Times given, but not very realistic=10%– Estimated times not given=0%

Neatness (in electronic form, tables etc) 20%

Recommended