Sunday, July 17, 2011

Day Seven

I'll start of today's post with a widely known aphorism in the computer programming world known as the ninety-ninety rule. It is as follows:

The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.
—Tom Cargill

While I didn't beat the level I was working on during my previous session of SpaceChem, I spent enough time to narrow down the source of the problem and had a pretty good idea of how to fix it the next time we met. That lead to the progression that follows:

This reactor worked well, provided the sodium and hydrogen atoms always perfectly alternated their arrival. Since there was nothing in the previous reactor to guarantee that, this design eventually broke down.


When things aren't working out, sometimes even if they're just a hair off like I was here, this next step is painful, but unavoidable.


The working solution, it turns out, is much more elegant and easy to understand than the gobbledygook I came up with on the first attempt.


The parallels between this game's puzzles and writing actual computer software are many and offer a few lessons (re)learned:

  • The failed design was complicated and clever. The working design is simple and straight forward.
  • The failed design made assumptions. The working design makes no assumptions.
  • The failed design was difficult to debug. The working design is easy to debug.
  • The failed design was difficult to modify. The working design is easily modified.
  • The failed design was difficult to understand at a glance. The working design is easy to understand.


Games Played: 
SpaceChem

Achievements: 
I still have but one SpaceChem acheivement

No comments: