Wednesday, May 30, 2012

Week 5: How We Face Failure

Week 4's build is now available at

There are not many differences from last week's build; back-end work was completed for input, which is turning out to be a larger endeavor than a single week's worth of work.

Confidently Facing Failure

The team holds itself to a set of work to complete each week.  We're musicians just like you -- we want to get this tool out and it won't happen unless we keep taking steps forward.

If we don't finish what we wanted to, that's a failure.  If we do finish it and can say "Our users would want this right now.  WE want this right now!", then that's a success.

We unabashedly admit failure, identify the source of that failure, and address factors leading to it for week 4.

The Problems

Bugged Build
Week 4's build introduced a bug that affected how rests and notes were drawn.  This bug was severe enough to make us think it was unacceptable to deploy and also prevented us from seeing the fruits of our new work.

Large Feature Specs
The feature specifications for input and rests are also too large.  Tackling all of the cases possible from sixteenth notes to whole notes was slowing us down considerably -- our work was feeling more tedious than challenging and the results-to-effort ratio was consequently unsatisfying.

The Solutions

Bugged Build
1. The last stable build -- which in the worst case will always be what's deployed weekly to the website -- was used as a basis for work.  New code is being integrated into this stable build.
2. The MVC design pattern was discussed with the team so that code would follow principles that make our code more functionally modular. For those of you not versed in design patterns, that means that a bug in our growing code will not reach far (if at all) outside its module.  

Large Feature Spec
The stories around input were broken down and are now based on the different duration of notes and rests -- a basis which we saw firsthand came naturally as we programmed last week.  With that experience now integrated into what will become the input system, we can proceed with a better sense of scope and granularity for the input system.

Firsthand Look at How We Work

If you've ever wondered how we work, a video is now available where you can watch us go through our week 4 discussion for the above.   Here are some more details, in case you're wondering how things go in general.

  • Review of last week's work
  • Retrospective of last week's work
  • Planning for the upcoming week's work
Tuesdays through Fridays
  • Any necessary discussions or questions around current work
  • Programming!
We communicate remotely from 2-4pm using Google+.  Sometimes, we have ice cream; we suppose that'll become  more frequent if we someday want a physical office space.


The previous section about Trivial Software has been moved to its own post here.

... And The Beat Goes On...

Week 5 will be spent developing the input system.  Next week, expect to see sixteenth rests, sixteenth notes, and eighth notes behaving in their final implementation for input.  We will also be programming the drawing of different note length variants.

Week 5 Stories

No comments:

Post a Comment