I briefly introduced the team to the concept of the Software/Product Development Life Cycle above. This is an elaboration of grandpa’s ol “measure twice, cut once” rule that is used in large scale product development with a big emphasis on debugging/testing (build once, test ten times).
Many people are unaware that in large corporate software projects most of the project’s timeline can be spent in the Design Phase (front end product specification, feature selection and architecture/design) rather than the Implementation Phase (the actual coding – the fun part). The Testing Phase can be even longer still, especially with current Agile Development practices that integrate unit testing directly into the coding phase. After the feature/code are frozen, testing continues.
Since our first week was spent largely hands off to lay down the foundation of the program, rules, and basic robot design I wanted to give the kids a brief perspective on why this is. Surprisingly, most guessed that the actual “Build/Code Phase” is shorter than the Design and Test phase. At least the kids were able to get their hands on some LEGO Technic pieces and learn a about good design/build methods from the Robot Game Mission designers.
Since we’re more in the “startup mode” than “large scale corporate mode”, we’ll be skimping on a lot of the development overhead like formal design documents and PERT and GNATT project management timelines. Still, these are valuable tools that one should be aware of and will likely run into at some point in some form – even outside of software or product development. The stereotype of the lone hacker genius is largely a myth and you need a large team and the tools to coordinate it for most commercial endeavors these days.