Managing Research Software Projects: Lesson Design


Process Used

This lesson was developed using a slimmed-down variant of the “Understanding by Design” process. The main sections are:

  1. Assumptions about audience, time, etc.

  2. Desired results:
    • Overall goals
    • Summative assessments at half-day granularity
    • What learners will be able to do, what they will know, etc.
  3. Learning plan
    • Each episode has a heading that summarizes what will be covered, then estimates time that will be spent on teaching and on exercises.
    • The exercises are outlined to make expectations concrete.

Stage 1: Assumptions

Stage 2: Desired Results


How do I…


I can…

  1. …report my status clearly and succinctly in a stand-up meeting.
  2. …give others feedback on the content and presentation of their stand-up reports.
  3. …critique and improve bug reports and status reports.
  4. …create a development schedule for a project given a set of tasks with priorities and time estimates.
  5. …(re-)organize the files in a small to medium-sized software project according to Noble’s Rules
  6. …implement continuous integration by connecting a regression test script to a GitHub repository using Travis-CI.
  7. …apply Taschuk’s Rules to make software more robust.
  8. …create an installable Python package.


I know…


I can use…

Stage 3: Learning Plan

Summative Assessment

Agile Development (09:00)

Project Organization (10:00)

Coffee (10:30): 15 min

Robustifying Code (10:45)

Continuous Integration (11:15)

Morning Review (11:45): 15 min

Lunch (12:00): 60 min

Sturdy Development (13:00)

Packaging and Dependency Management (14:00)

Coffee (14:45): 15 min

Staying on Track

Wrap-Up (15:45)