Sunday, 19 May 2013

Moore's Law

Moore's Law is often stated as: The power of technology doubles every 18 months.  I will not quibble about the attribution but it was originally an observation about the density of transistors that could be packed onto integrated circuits.  However, the maxim  has transcended itself.



Technology is the intersection between science and economics.  Technological power increases both when new innovations are introduced and as the price of those innovations drops in the market making it more readily available to a larger number of consumers. In short, it is the science that consumers can afford.  Some portion of those consumers are technologists who will take today's affordable innovation and use it to produce tomorrow's. The most successful of those innovations go to market to enable the next cycle.

The popular media often comments on the steady growth of tech but that is a misnomer. The progress of technology is not steady at all.  It is accelerating.  Any phenomenon which exhibits a doubling period is experiencing an accelerated rate of growth and the converse is also true.

There is a interesting property of phenomenon with doubling periods if I may demonstrate:

Imagine that I have made an agreement with my son that, in lieu of a monthly allowance, I will pay him 1 penny on the first day, 2 pennies on the second, 4 pennies the next and so on, doubling the amount each time. Let's look at my books over time.

Day 1: paid 0.01 - total paid 0.01
Day 2: paid 0.02 - total paid 0.03
Day 3: paid 0.04 - total paid 0.07
 ...

Day 12: paid 20.48 - total paid 40.95
Day 13: paid 40.96 - total paid 81.92

I will save you all the suspense: by day 30, I will owe the boy $2,684,354.56 and have indebted myself a total of $5,368,709.12.  The interesting thing to note here is that on each day, I am paying out 1 cent more than the sum of all previous payments combined.

When we say that digital technology doubles every 18 months, we are saying that it puts at the service of the consumer more new technological power than in all of history combined. This is tempered somewhat by our ability as consumers to absorb and leverage that new-found power (think Spiderman in the early days), but the rise is seemingly inexorable. 

No acceleration can go on indefinitely; physics demands that there be a limit somewhere. The arrangement with my son has to end some time in the second year when the earth's copper supply gives out.  (If we were able to mine all of the copper in all of the asteroids and moons in our solar system, it would only extend the lifespan another week or two at best). The end of the acceleration of technological advancement is somewhat harder to see.  Limits have been predicted before and deftly avoided by diabolically clever researchers.

Not all branches of technology conform to an 18-month doubling period but a survey of their history suggests that they too grow at an accelerated rate as each new discovery or innovation inspires and enables the next generation of change.

While we flew our first kites in 200 BCE, it was nearly  2000 years before man took to the air in hydrogen balloons in the 1780s.  From there, it was only 120 years before we find the Wright Brothers putting heavier-than-air machines into the sky.  Another 15 and the Fokker Dr.I Dreidecker is taking pilots to over 6000 metres at close to 150 kph. Forwarding another century finds us today anticipating private enterprise putting tourists in space as a regularly scheduled service within the next year. It appears that some accelerated development has manifested itself. I would hard pressed to speculate what that industry's double period is but we can be assured that, on average, it delivers more to us every year than it did the year before.

Another place this phenomenon of accelerating growth may be seen, one driven by the growth of technology, is the end user. Be they consumers or business clients, they are becoming more sophisticated in their wants and needs demanding products of ever increasing complexity, while holding out the promise of an ever-shorter shelf life as obsolescence asserts itself more rapidly than ever. They not only demand more, they demand it faster.

For those of us in the business of delivering digital products, this is a serious competitive challenge; a daily call-to-arms for every analyst, manager, programmer and architect and the executive who would lead them. New tools and processes must forever be explored which might allow us to deliver more complex functionality in a shorter space of time. We no longer have the luxury of finding a niche, settling into a stable market with an established, comfortable way of delivering to it.  Moore is right behind us, dogging our every step.

A programmer implementing a brand new feature must always write new code to do so.  When called upon to enhance an existing feature, the choices are to rewrite or to refactor.  If the enhancement does not break the existing paradigm, a refactor is often effective and inexpensive.  If a new paradigm forces the issue, a rewrite may be the only option.  The processes which we employ to translate client/consumer needs into products need to evince a similar flexibility.  As clients change, as products evolve the process itself must be agile to adapt to the new paradigms or be rendered obsolete along with the products. We must stand ready to refactor the processes themselves when exigencies arise that the current process make no provisions for.

Core values must still remain intact.  It's one thing to sit at 10000 feet and remark on how cleverly the little ants organize themselves but when you hit the ground the goal remains the same and it's the same handful of questions that need answering.

  • What got built? 
  • Is it what the client wants? 
  • Did we test it?
  • Was it on time and on budget?
Whatever process is employed in organizing your resources, they must contribute directly to getting to getting it done or they need to be changed.  If they are designed to create a perception of progress without contributing to the final product, they must be jettisoned as a waste of valuable energy. 

Dwight D. Eisenhower is alleged to have said, "In preparing for battle I have always found that plans are useless, but planning is indispensable". If he did, it is a resounding early endorsement of Agile methodology.  He is reminding us that it is not about the procedure, it about the results and procedures should be jettisoned if a more direct path to those results is discovered.



No comments:

Post a Comment