May 26, 2009

Innovation

( Top-down , bottom-up or all around ? )

Innovation : a new way of doing something. It may refer to incremental, radical, and revolutionary changes in thinking, products, processes, or organizations. A distinction is typically made between invention, an idea made manifest, and innovation, ideas applied successfully. (source : http://www.wikipedia.org/)
Well, that definition sort of does sum-up what innovation is, however when it comes to practicing or further still - mastering the art of innovation, most organizations hit plateaus much sooner than later.
Now why is that ?
Based on my experiences and consumption of information around / interaction with people around, I have made some observations :

The 3 most crucial components that make any innovation successful are (and I am considering being the first-mover to be an implicit imperative) :

^ radicalness
^ benefit
^ execution

If you are the first mover, you leave a huge gap behind for competition to catch up.
If you are catching up, you better be fast to not only catchup but outdo the leader at break-neck speed.
To outdo means that the benefits your innovation offers, are better than anybody else around.

Self-explicit. Or is it ? If the mantra is so simple, then why are we mostly talking about the same set of companies always ? Why don't we see a dozen new companies across every year that race to the top 20 on this index ?




Source : BusinessWeek


Is it just because these companies have phenomenal leadership at the helm ? Or is it because that these companies nurture a culture of innovation ?

I mean everybody knows that Steve Jobs has an unbelievable and un-quenchable desire to make products that the competition can only just marvel at ! forget outdoing, they can not even ape Apple products properly.
But is it just Jobs alone in Apple that is responsible for innovating ? Is he the one that comes out with ideas ? Or is he simply a terrific leader who inspires innovation !
Take BMW as another example - those guys build tanks that move like the wind ! And they always make it unbelievably better than the last one ! For a company that goes as far back as 1916 - they don't have a Steve Jobs there, or in P&G. And enough has been talked about Google and it's innovation speed.
What these companies have in common is a culture of innovation , better still, they have processes that help nurture/ facilitate this culture.

Operationally what that means is that people are empowered to ideate and implement those ideas and their organizations are willing to take the risk of spending R&D dollars for driving those ideas to success !

May 21, 2009

Learning to design with TDD

This stems from a post Nitish wrote about TDD (Test Driven Development) and how developers end up making a sales pitch to their managers for using the methodology.
While discussing the same, we travelled on a tangent (not so far away) viz., what is the prime objective of TDD and are all/most
developers who practise (or try to) it, able to achieve it.
We converged that the true objective of TDD is to arrive at a good robust design that the code in question runs on. As a beneficial
side-effect, you get code that the QA team strugles to look down upon and you end up spending lesser time debugging it -
to arrive at a tangible comparison that must lead to this conclusion deserves a separate discussion (post).Well, truth be told, if we look at the context of the internet, where the LAMP stack has made it so convenient to build websites
that programmers (?) exploit the supreme forgiving nature of the PHP platform to the hilt. Good modelling, robust design and
architecture are milestones that are too far in the future.
So as a coder, I know about OOPs and abstraction to implementation as much as a few key books in college could engage me to read.
But that's just about it. In India at least the schools don't really teach you designing models and approaches.
That begs the question : can practising TDD help bridge this gap ?
Playing with some code and tests with the help of Eclipse pointed the needle to Yes ! But that's java - a language whose developers
are pampered with a number of high quality tools that make it so much fun and so smooth.
If you talk about PHP - the poor Rolex (Eclipse/Junit) replicas like SimpleTest and PHPUnit leave a lot to be desired.
But The possibility of these tools aiding developers ignorant to design pracices, learn by doing, is not bleak at all.
Soon, would be experimenting that and see if the hypothesis is correct.