Is this you?
Big picture: Identify as many of the things you’ll need to do before the project is done.
Next steps: Identify the 1-3 steps you need to take next.
Focused on user-visible features of your program.
How you know you’re heading in the right direction.
How you get a sense of what’s left to do.
It’s fine to change your big picture plan as you go.
Sometimes you’ll realize you don’t want to implement some feature or that you want to do it in a different way.
And you’ll likely think of new things you want your program to do.
Just update your plan.
At any given point you should have a clear idea what the next few things you need to do are.
Each step identifies actual work you need to do.
Small enough that you basically know how to it.
Might be an experiment to figure out how to do something.
Small enough that you can finish 2-4 in a class.
Ideal: list 4-5 steps per day and get most but not all of them done.
While doing a step, if it seems too hard, break it down into a few smaller steps.
These smaller steps might include things of the form “figure out how to …”.
But “figure out” steps still result in comitting some code that shows that you’ve in fact figured it out.
Two-player human v. human game
Users click in square to make move
Clicks in occupied squares are ignored
Marker automatically alternates between X and O
Game indicates when a player has won
Game indicates game is tied when nine moves have been made and no one has won.
Draw empty three by three grid
Detect clicks in a given cell
Figure out how to put an X in a specific cell
Translate click into placing an X on the grid
Store moves in array in order to detect illegal moves
…
Commit after each step.
Use the description of the step in your commit message.
Push to Github frequently.