Friday, February 12, 2010

Code Quality

I am taking a little poll: What does 'Code Quality' mean to you?

Joel equates quality software/code to being useful to the purchaser (in this post)

Quality to me means a variety of things to differing degrees including:
  • Unit tested
  • Functionally Tested
  • Maintainable
  • Supportable

If we are going to talk about web based software I might also add

  • Scalable
  • Having the needed capacity
  • Being highly available

Obviously if the software isn't useful - no one will buy it, but I think encapsulating the entire argument of 'Quality' into that simple of an equation to decide if in your startup it is the right time to hire sales and marketing, while possibly being right... is a tad short sited. So what is quality to you?

Tuesday, February 2, 2010

Thoughts on the iPad

I have read a few different view points on the iPad's release and been involved in a few discussions on the same - there are lots of people discussing the space that it wants to live in, will it sell, is it a disaster or a boon and what does it do for innovation. Its this last point that I see a number of people talking about what Apple is doing as a company with the product they have produced.

Lets look at things from Apple's point of view:
  • iPad leverages ground that Apple has already covered/uncovered
  • The iPad contains an OS that they already existed
  • The iPad leverages all the goodness for consumers that iPhones already brought to the table.
  • The iPad makes use of the same UI and user mechanisms, which is HUGE. Lets all admit that changing user behavior is generally damn near impossible.
iPad is a natural extension of the systems that Apple already has in place based on the above. It fits into Apple as a company - like a glove.

A number of people have noted the above and more - while doing so they have also noted what they had in terms of 'HOPES' for what the iPad 'MIGHT' be when it launched. Tech geeks hoped it would be more open (include things like java, flash, python, etc. etc.) they hoped that they would not be subjected to the entirely black box application approval practice that Apple foists on developers. In short they were hoping for something that essentially is not in Apple's best interest currently. Lets be honest, Apple has made alot of money with the iPhone and the systems that surround it, DESPITE all the bitching and complaining that we tech folk are doing about it. Just take this post for example over @ Gizmodo. The reality is Apple is going to continue to ignore the complaints we make because it doesn't help them in the slightest. I do however disagree with the commentary the above Gizmodo post contains saying that Apple ignores these pleas because the DMCA is in place and no one can do anything about it - and more importantly that people saying/asking for Apple to be more open are bitchy complainers who need to "...grow the fuck up...".

History has taught us that things rarely change without there being some catalyst for the change. In essence there have to be COMPLAINERS, people who are unhappy with the status of things in order to make change happen. You can argue that maybe the complainers are complaining about the wrong things... maybe that is the point of that Giz post, but the overall sentiment of that post seems misplaced to me. The entire thing comes back to the same age old argument of 'Apple vs. PC' do I maintain high levels of control over every aspect of the system I am asking people to buy, almost as if I was leasing the hardware (laptop, iPhone, iPad) or do I allow lots of people to mess up the 'beauty' by not caring as much about who supplies the items that go into the machine and allow the buyer to mix and match whatever they want. BOTH choices have their place in the world. I must admit however that I don't appreciate Apple's stand here. They make great stuff for the average user, i.e. it just works (most of the time)... but the BOX it places you in is occasionally very small with little or no wiggle room to do something ground breaking.

Lets take as the prime example the lack of competition in 'certain' iPhone app spaces, things like email, phone functionality, contact management. Applications in these areas are deemed (by Apple) to compete with the built in software, so you will never get your new cool interface idea for these things published in the appstore for availability on the iPhone for lots of people to use, because Apple says so. Not because the application would kill the phone, or destroy AT&Ts network, but simply because it wants to 'Compete' with Apples built in software. The Gizmodo post was correct, Apple, the iPhone and the iPad are not really 'specifically' doing anything that would prevent people from tinkering and programming and gaining an awe and wonder of what that is and what it is like. Apple is however telling EVERYONE that there are arbitrary limits to which they are allowed to play, and those boundaries are constantly changing with no notice with little or no explanation. Competition is acknowledged to be a good thing - but Apple is telling us exactly where we can compete, this I think is what people are complaining about... its not entirely about Flash, HTML5 or other items - but it is more about not being allowed to compete where it MIGHT actually make a difference to the usability of the platform... which BTW has nothing to do with the DMCA and more to do with taking money out of Apple's mouth.