HelloPurr, MoleMash, and the other apps covered in this book’s early chapters are relatively small software projects and don’t really require what people often refer to as engineering. That term is co-opted from other industries; think about building a scale model of a house from a premade kit versus designing and building your own real home. That’s a slightly exaggerated example, but in general, the process of building something extremely complex that requires a significant amount of forethought, planning, and technique falls under the umbrella of engineering. As soon as you take on a more complicated project, you’ll realize that the difficulty of building software increases rapidly for each bit of complexity you add—it is not anywhere close to a linear relationship. For most of us, it takes a few hard knocks before we realize this fact. At that point, you’ll be ready to learn some software engineering principles and debugging techniques. If you’re already at that point, or if you’re one of those few people who want to learn a few techniques in the hope of avoiding some of those growing pains, this chapter is for you.
Here are some basic principles that we’ll cover in this chapter:
Involve your prospective users in the process as early and as often as possible.
Build an initial, simpler prototype and then add ...