Planning

How not to plan

Is this you?

Two parts to planning

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.

Big picture

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.

Updating the plan

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.

Next steps

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.

Next steps rules of thumb

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.

As you go

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.

Example: Tic Tac Toe

Tic Tac Toe: Big picture

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.

Tic Tac Toe: Next steps

  • 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

As you work

Commit after each step.

Use the description of the step in your commit message.

Push to Github frequently.