Quality – its about thinking and process (not technology)

With the rapid change of technology there is more and more pressure on developers to deliver quickly – before what they are implementing is perceived as out of date. This pressure ofter results in products coming to market before they are ready – with bugs or other issues , resulting in a poor quality offering to the customer.There often follows a panic period to get the fixes out to the market.

One of the consequences of this pressure is that developers spend less time thinking and planning their tasks. There is always the urge to get started on the ‘real work’ as soon as possible and programme managers are probably less impressed with status reports that say something like ‘spent the week evaluating different ways to implement the task and discarded them all’. However spending that time thinking deeply about a task beforehand is one of the best ways to insure a quality product delivered on time.

I have always found writing software relatively easy – it is designing software that is hard. I believe the same applies to other forms of development, once you have precisely defined what your are doing the implementation becomes a lot easier.

This brings me to process. Up front thinking and designing time needs to be built into the development process. It is often there, but not given the prominence that it requires. Most managers will admit that their processes could be improved, however they probably don’t realise (or admit) that their processes are actually worse than they think they are.

Technology is often bought in in an attempt to improve and manage processes, but applying this technology without prerequisite thought and design can result in disaster.

Spending time and resources thinking is often the cheapest way to achieve goals whether they be improving a process or developing quality product. But in these days of high speed change we are all to tempted to just get on with it.

So please take a break and think about your next task before you head back into the maelstrom of development, process improvement or bug fixing

Posted in Uncategorized | Leave a comment

Innovation is impossible – a lesson for innovation superheroes

I have put a lot of energy into innovation initiatives in my career. Some have been successful and some have failed, but all have been difficult. What is more the larger the initiative the harder it is and the more likely it seems to fail.

The reasons for failure are many and varied, not that failure is bad when innovating, in fact I would say that some level of failure is required in any major innovation. After all innovating is doing something new, something that has not been done before, and it would be a foolish person who assumes they get it right first time every time.

One of the major difficulties I have come across is trying to innovate in a large established successful companies is so many good people seem to be trying stifle innovation. It seems inexplicable in many cases – intellectually they see the value in the innovation but it seems they cannot embrace it.

One explanation for this is described in the book ” The Other Side of Innovation” by Govindarajan and Trimble. They describe why major innovation can be almost impossible in the heart of a successful organisation.

The heart of a successful organisation is driving the company forward by continually replicating it’s success in a repetitive and repeatable manner. Innovation by its definition is neither repetitive or repeatable, it is doing something that is new, that has not been done before. If you try and do that at the heart of the company it will either fail or break the company.

So what is the solution? Well for me just understanding this means that you can devise ways of working to surmount this problem

Chris Trimble explains the problem and proposes a solution on youtube. I have put together a playlist of 4 of his videos – the first 2 are introductory, the latter 2 get into the detail.

Chris Trimble on “The Other Side of Innovation”

If you are struggling to be an Innovation Superhero it is an interesting 24 minutes.

Posted in Innovation | Tagged , | 1 Comment

Using the GPU in Android to process live camera images

Updated 18th May 2011 with a description of Android’s Renderscript feature.

There has been a lot of research done in using GPUs (the Graphics Processing Units used for acceleration in video cards ) to build super computers.

However there was an interesting demo in the keynote at IO 2011 the Google developers conference. They use the GPU in an android tablet to process the live camera data to provide realtime image processing.

http://www.youtube.com/watch?v=OxzucwjFEEs#t=16m30 (starts at 16m30)

This has interesting implications not only for virtual reality processing but also for say for decoding 1D and 2D barcodes and document recognition in real time – with performance like an expensive 2D imager but with less power and cost.

Update: The APIs for accessing the GPU are available in Honeycomb in Renderscript. This is described in the Android developers blog here. It enables access to the GPU using a language called C99. If however the GPU is not available C99 will be run on the main CPU  this decision is made at runtime, allowing programs relying on Renderscript to run on a device without a GPU (albeit slowly)

 

Posted in Uncategorized | Tagged , , , , , | Leave a comment

Android – it all comes together in an open sandwich

Android - Ice Cream Sandwich

At Google’s developers conference Google IO 2011 they announced their roadmap for Android.

Currently Google ships 2 versions of Android

  • 2.3 Gingerbread an open source version suited to smartphones
  • 3.0 Honeycomb suited to tablets and only available to OEMs

They will combine these into one homogenous release called Ice Cream Sandwich  which will be available in Q4 2011. Whats more they said they will release all the source code. So Android will again become ‘free’ for anyone to use (providing they adhere to the licensing conditions..)

Ice Cream Sandwich will also introduce a number of new features -including enhanced NFC capabilities.

The complete Day 1 Google IO keynote is available on YouTube

[youtube=http://www.youtube.com/watch?v=OxzucwjFEEs]

Posted in Uncategorized | Tagged , , , , | Leave a comment

Android is still free, but at what price?

There has been a lot of press recently about how Android is being controlled by Google. While that is true in many respects there is also confusion as to what Android actually is and what Google is controlling.

What is Android?

Most people associate Android with mobiles phones so here is a simple overview of what software is in an Android mobile phone and how it is licensed.

  1. Linux kernel – modified to run Android
    • Open source – community code with Google modification
    • GPL licence – Any changes to code must be published
  2. Dalvik JVM Java engine that runs the UI and most applications
    • Open source  – developed by Google and only published when released
    • Apache Licence – No need to publish changes
  3. Android UI and Basic Applications (Phone, Web browser etc )
    • Open source  – developed by Google and only published when released
    • Apache Licence – No need to publish changes.
  4. Google Applications – including Google Maps and Google Marketplace
    • Google proprietary. Source not available
    • Only available if the device they run on has been approved by Google by passing the Compatibility Test Suite and adheres to conditions set by Google. Currently that device effectively must be a smartphone.
  5. Custom applications and UI modifications from the device manufacturer. i.e. HTC sense , Motorola MOTOBLUR™
    • Usually proprietary. Source not available
    • Only available on that particular manufacturers device. Normally supplied in the ROM

It is possible to build a device using the first three of these elements by downloading the code from Google et al and building your own version of Android but you will not have access to Google Apps and the Android marketplace. The French based portable media player company Archos do this for their devices. They use an Archos version of Android and they also run a Archos marketplace to distribute applications for their device. China’s biggest mobile operator, China Mobile, have taken the free Android elements and produced their own phone OS called OPhone and have encouraged a number of major manufactures to produce devices for their network using it.

A device made using the first four of these elements (i.e. no manufacturers ‘enhancements’) is a pure GooglePhone such as the Nexus One and the Nexus S.

Google however, controls most of the Android devices in market by stipulating the terms and conditions that allow them access to Google applications and the marketplace. Andeas Constantinou described this in his blog last year. It is these terms that Google are enforcing that is giving the impression Android is no longer free.

Android on Tablets – Honeycomb

The currently available versions of Andorid (1.5-2.3) are all aimed at smartphones. They can be modified to run on other devices but then it unlikely they will be able to pass the Google compatibility tests and have access to the great Google controlled Android world.

Honeycomb is Google’s version of Android specifically aimed at tablets. Google have not yet publicly released the source code for this and it is unlikely to be released before we will see devices in the marketplace running Honeycomb.

Google have said this is for quality and fragmentation reasons and I can see their point. If they and their hardware partners are to compete against Apple and the iPad2 they need quality product. However I can go to my local store and buy and iPadesque tablet running Android for around £100. It will be a modified version of the the Android phone OS with no access to Google Apps (well not legal access – there are often hacks available that may allow it) and it will be a poor experience and not reflect well on Google or Android. But then you get what you pay for.

Apple design both the hardware and the software for their devices and have a remarkable user friendly focus  – they set the bar very high. Google and its hardware partners are no doubt keen not to dilute the quality of the Honeycomb offering when they launch their products and as a result are not releasing the code at this time.

The other side of the argument is Google should open source their code early and let the community contribute and thereby benefit from some collaborative development – which is how Linux is developed. But this is not the path they have currently chosen.

So basic Android remains free ,but Google controls the design of Android ,its applications and the access to its market. However Amazon is now after the latter with its new marketplace. We live in interesting times.

Posted in Android | Tagged , , , | Leave a comment