Is it Sloppy or Efficient?

I recently read an an article on software development process that relates to common themes not only in programming but in problem solving in general.  I didn’t agree with the author and commented on his article with the requisite troll-factor.

The comment is now lost in the internets somewhere but I reproduce it. with minor edits,  below.


Recently stumbled across the article “Ants — and Lean Startup Quality” .

The conclusions seem to be:  Since the version 0.1 didn’t provide the right outcome, the 5 hours invested (did you really spend 5 hours in a coffee shop?)  was wasted.

My gut response is:

  • You missed Abby’s second line. “Be willing to fail fast”.   Fast is relative, 5 hours for a simple game app may seem like a long time to a seasoned programmer on a deadline but if these 5 hours were able to shave a day off of the 5 day real world project, it would be a net gain of 3 hours for a standard work day. (do any programmers really work a standard work day?)
  • There is an assumption that version 0.2 would require the same amount of time as version 0.1 which discounts the learning gained in the first effort.  In particular, as a team, you gained considerable reusable insight into the problem domain without getting derailed into time-sinking architectural discussions.
  • You were not really in a development phase to begin with, but really in an analysis or requirements phase.   You were just using Codea as an active modeling tool.  The resulting graphical artifact was never intended as a version of the product.

Granted, the initially stated goal of this exercise was to prove or disprove a hypothesis for the ant-spider problem and not produce a marketable game product.  And further, intentionally eliminating all incorrect solutions from an indefinite set of possible solutions until only the correct solution remains   is not typically a cost-effective approach to problem solving.   Still, I detect a convergence on the most effective approach to solving the original problem using your Occam’s Razor(2) .

Several rhetorical questions come to mind:

  • At what point in your exercise did you realize that the simple mathematical approach was not sufficient?  Were there any early indications or programmer’s instincts that you were on the wrong path?   (or, more snarkily, was this a contrived example to prove the superiority of your own personal programming philosophy?)
  • If solving the problem using “tests and a better design” would take the same 5 hours only with better results, why did you not use this approach to begin with?
  • Was Codea/Lua the best tool to model this solution or would you have made better progress with Mathematica or some other high level graphical computing tool?

In any case, your article had the unintended benefit of providing me a couple hours of coherent reading, thinking and writing.   Thanks!


 

 

You may also like...