Windows 8 Apps – Keeping it Simple

We have all been is situations where we have seen code implemented in an unnecessarily complex way or where the number of features in an app has gotten out of control. I like to think that the use of “KISS” (“Keep it simple – stupid”) is one of the main stays of all the projects that I am involved in (!). However, I have seen my first Windows 8 project evolve from being simple (or so I thought) to being simple (“no, but really this time”). And I have to conclude that there is an algorithm in play that doesn’t always get the acknowledgement it deserves. In short I am talking about the relationship between “time and complexity”. Most people might understand that the more complex something is the more time is required for implementation. However, in my experience often times the opposite is true and time can be the (often missing) crucial factor in harnessing and reigning in an otherwise complex application.

So my first Windows 8 App has gone through a number of stages:

1. Brainstorm Implementation

The first version was a knockabout of ideas while also being a vehicle for learning the basic of Windows 8 development. (While I was aware of some of the principals around Metro design I was more focused on ‘getting something working’

2. Considered Implementation

So what came out of (1) alongside further exposure to Windows Metro Design fundamentals was a complete rewrite of the App with the objective being the development of an App that would stand up to closer scrutiny around Metro design fundamentals and that took advantage of some of the awesome new language features as well as the powerful new VS2012 IDE. I took a lot off guidance from one of the sample Apps which looked to broadly follow a lot of what I was trying to achieve from a technical perspective (The “Contoso Cookbook” app). It was this version of the App that went through the Microsoft App Excellence labs in Reading (and for which I subsequently gained a token for pre-submission to the Windows 8 store itself)

3. The “KISS” Implementation

While I was happy that the App was technically competent I wasn’t totally happy with the functionality of the App itself. At the outset the App had 3 nested levels (the maximum recommended for a Metro App) and I had already had my doubts about the complexity of some of the functionality within this approach. I decided to refocus the App on its initial raison detre – which was to generate more downloads of the Windows Phone Apps that it featured. I couldn’t help thinking that I was forcing users to spend too much time in the Windows 8 App rather than dispatching them to the Windows Phone Apps in which they showed an interest at the earliest opportunity! To this end I decided on a radical move to refocus the App using a single UI tier