CSC111H Project Planning Dennis Burford [email protected].
-
Upload
elisabeth-chase -
Category
Documents
-
view
217 -
download
2
Transcript of CSC111H Project Planning Dennis Burford [email protected].
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%