An athletic approach to software development

CrossFit has the concept of a “Workout of the Day” (WOD), which is a short duration, high intensity set of exercises. In this class, I adapt this concept to software system development education. My hope is that by focusing on the speed with which you implement high quality solutions to short development problems, you will:

  1. Gain fluency with your tools and technologies.
  2. Gain the ability to focus and enter the “flow state” during software development.
  3. Become more productive and useful in “bursty” development environments like startup weekends and of course your class labs and application development assignments which are always limited in time and and within distracted environments.

Timing your workout is important! It enables you to tangibly measure your improvement!

Rx, Av, Sd, DNF

For each WOD, I provide the following timing information:

Here is an example:

Rx: <8 min Av: 8-13 min Sd: 13-18 min DNF: 18+ min             

So, in this example, completing the WOD in 8 minutes or less is “as prescribed”, 8 to 13 minutes is “Advanced”, 13 to 18 minutes is “standard”, and taking longer than 18 minutes is unacceptably slow.

Note that simply stopping work at a certain time does not mean you achieved the associated standard: your solution must have acceptable quality as well.

Practicing with WODs

For each module, I provide WODs as homework assignments, which you can time on your own. Before starting a WOD, I recommend you review and study the associated material so that you do not spend valuable seconds during the WOD doing “research”. For grading purposes, the criteria is that you solve the problem with acceptable quality under the DNF cut-off time. You submit a screencast of you performing the WOD narrating your solution. You record your last performance time (as indicated by the screencast) and reference to the screencast and code repository to the WOD Assignment on Laulima. This is your “WODvelope Card” and you are responsible for maintaining it accurately and keep it up to date. If you do not update this or it is inaccurate you may not receive proper credit.

Your grade does not depend upon whether you performed at Rx, Av, or Sd levels, only that you complete the WOD correctly before the DNF cutoff time.

The general procedure for a WOD is as follows:

  1. Read the WOD instructions carefully
  2. Prepare to do the WOD by starting a new project, copying any needed files or materials, set a timer to sound an alarm at the DNF time
  3. Start your screencast recoerding then start a timer and perform the WOD. Some screencasting applications show you the recording time which also may be used as your timer. It is suggested you record your desktop rather than a single application as you will frequently be going back and forth from coding to checking your application in the browser or terminal.
  4. If the DNF time has passed, stop working, stop the timer and screencast recording, delete your project and go to Step 1.
  5. When you finish the WOD before DNF time, stop your timer and screencast and record your time.
  6. Check your work and verify that it meets the WOD requirements. If not, delete your project and go to Step 1.
  7. Push your WOD project files to your repo and update, upload your screencast to YouTube, and update your WOD card on Laulima (under the WOD Assignment) with your WOD results, link to the directory of your WOD files in your repo, and screencast URL on YouTube. The grader will use the information on your WODvelope in Laulima to review your repo and screencast then assign credit.

Get Tools For Your Workout

Get some form of timer to keep track of your WOD time (also to use in class). You can use anything online such as

http://www.online-stopwatch.com/ or http://www.timeanddate.com/timer/ or install something to your browser such as https://chrome.google.com/webstore/detail/timer/edebbhkhcaafmolanelponjjanocpacd?hl=en

To record your WOD screencast, you do not need special screencast software. For Mac you have several free options:

For Windows, you can try:

Notes:

WOD

(Rx, Av, Sd, DNF)

# Attempts

Screencast URL

Repo URL

BrowserHistory1

Rx 3 https://youtu.be/TDsEUNk3WwA https://github.com/dport96/ITM352_F19_repo/tree/master/WODs/BrowserHistory1

BrowserHistory2

       

BrowserHistory3