Software Development

Developing software is a combination of art and science. The science is mostly math, and of that, mostly logic and set theory. Although, recently I was able to brush off my Mathematics degree to apply a bit of linear algebra and trigonometry to develop a pretty cool iPod-like control for use in GigBook (published by Deep Dish Designs LLC) and a future update of Wooly Wind Chill. More about that at a later date, hopefully not too far in the future.

The art aspect is both the visual (graphic) aspect of the product, and having the discipline and understanding that sometimes there is too much of “good thing”, when in reality “less is more” fits the bill better. The art aspect also comes in when finding elegant solutions to tough problems that the user/customer will find pleasing. In a nutshell, there is a real “art” to creating compelling solutions to interesting problems.

On top of that, there are the thousands of details to manage. Literally. In a large(r) iOS project,  there are thousands of lines of code to (mostly) remember, hundreds of logic paths, hundreds of assets in the form of source files, images, sounds, resource files, etc. On top of that, no software is bug free or 100% perfect, so managing the bucket of bugs, as well as identifying and tackling improvement changes (regardless if the user sees them or not), becomes an art unto itself.

Spreadsheets, bug databases, version control, and good old fashion hand written log books become essential tools to tame this tide of data and information. Again, the science aspect, if you will.

So, if things appear to be moving slowly, know it is not just because developing software is (often) hard, it also requires juggling a lot of little things, getting them put in the right place, and keeping them there from day to day without “dropping” any of them.

Like Dr. Hathaway says in Real Genius, “We’re not making cheese sandwiches!”

Leave a Reply