Revised Project Plan Discussion

Due Tue, Jun 13, 2017 by midnight

Group & Pair up. Read the below silently. Review & merge each other’s pull requests. Once this is done, present and discuss your idea & plan with your group. Then work on your own to Revise your existing plan, below the plan you did for homework (i.e. in the same post, not a new one). Ideally you’ll be done with this before the end of class. Have your partner review and merge your plan.

When you complete your progress report, start with your old plan, show a revised version (if any) and describe your progress.

Keep these things in mind:

Milestones are not criteria

Are your milestones accomplishable, doable things that satisfy the criteria in the final assignment? They shouldn’t be criteria, but it’s OK to include criteria within them.

Bad:

  • Program has text-based user interface with five options

Good:

  • Create basic main menu with 2 options
  • Create functions for options one and two
  • Options one an two both print out data, unmodified
  • Implement option one to summarize data
  • Implement option two to allow user to search through data
  • Make interface for options three, four and five
  • Implement option three (more detail TBD)
  • Implement option four (more detail TBD)
  • Implement option five (more detail TBD)

A plan has steps, a sequence and a schedule

We jsut talked about breaking down steps. The two other formal components of a plan are a sequence (the order of the steps)

I already roughly sequenced my plan above. Here’s an example of scheduling it:

For next Tues:

  • Create basic main menu with 2 options
  • Create functions for options one and two
  • Options one an two both print out data, unmodified
  • Implement option one to summarize data

To be Scheduled:

  • Implement option two to allow user to search through data
  • Make interface for options three, four and five
  • Implement option three (more detail TBD)

__

Stretch goals (not needed for basic functionality):

  • Implement option four (more detail TBD)
  • Implement option five (more detail TBD)

Now, of course, this plan is incomplete because several of the Criteria like using external files are not addressed if I execute just this plan. In fact, reading in data would need to happen before some of these steps. But you get the point.

Your plan is a living document that you will re-submit and revise every class until we’re done. In each submission, analyze what you did in comparison ro your previous account of the plan and plan out what you’ll do before the next class. In this way you’ll get a good sense of your pace. Some things will be easy. Others will be hard. By reflecting on each iteration you’ll get a better sense of what will take more time in your future plans, and you should get more accurate as time goes on.

Going off-plan

Sometimes you’ll be tempted to go off plan. Do this consciously, and reflect on it. Did you not think of a required thing when you made the plan? Revise your plan and try to get better at planning for next time. Or did you get distracted? In that case, get back on plan and save your explorations for after you’ve hit most or all of the requirements.

Elliott Hauser is a PhD Student in information science at UNC Chapel Hill. He's hacking education as one of the cofounders of Trinket.io. Find Elliott Hauser on Twitter, Github, and on the web.