Download presentation
Presentation is loading. Please wait.
Published byRaymond Hampton Modified over 9 years ago
1
Scheduling Managing large-scale projects involves scheduling activities –It is human nature to work better toward intermediate milestones. The same concepts can/should be applied to mid-sized projects encountered in class. –For any project needing more than a week to complete, break into parts and design a schedule with milestones and deliverables. –Find some way to keep track of details.
2
Real Results #1 Amount Done 1 Week Prior to Due Date
3
Real Results #2 Results were significant: –90% of scores below median were students who did less than 50% of the project prior to the last week. –Few did poorly who put in > 50% time early –Some did well who didn’t put in >50% time early, but most who did well put in the early time
4
Real Results #3 Correlations: –Strong correlation between early time and high score –No correlation between time spent and score –No correlation between % early time and total time 4
5
What is the Mechanism? Correlations are not causal –Do they behave that way because they are good, or does behaving that way make them good? –By tracking students who sometimes do well and sometimes to not, we established a causal link. Spreading projects over time allows the “sleep on it” heuristic to operate Avoiding the “zombie” effect makes people more productive (and cuts time requirements)
6
Incremental Development How to fail at implementing your project: 1.Write the project 2.Debug the project How to succeed: 1.Write the smallest possible kernel 2.Debug the kernel thoroughly 3.Repeat until completion: i.Add a functional unit ii.Debug the resulting program 4.Have a way to track details 6
7
How to Survive Keys to success: Keeping Track of all the details You can’t remember it all Rational Planning (and keeping to the plan) Spread the work over time Incremental Development Interleave writing and debugging 7
8
Being Organized 1 Software development has so many details –Spec requirements –Program interactions So does Life –Assignments and other things to do 8
9
Being Organized 2 You can’t turn this on/off –Either you live an organized life, or you can’t succeed as a software developer –Part of it is developing the attitude of “sweating the details” –Part of it is having the coping mechanisms to handle the details 9
10
Memory Can’t Handle It Externalize –TODO lists (What) –Scheduling (The Plan for How) –Issue trackers –Documenting/Commenting –Be able to update lists at any time, Repository: GitHub 10
11
Spread Work Over Time For anything beyond a small software project, you must have a plan/schedule Explicitly develop a schedule: –Break into pieces: List of subtasks –Deadlines for subtasks –Realistic, enough flexibility built in –Continuously modify and refine the plan 11
12
Incremental Development Break the project into a small initial core Implement and test the core Then gradually add functionality On any given day, write only as much code as you have time to debug THAT DAY This works well with Scheduling and Organizing 12
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.