The Technology Hype Cycle and why you should bet your Software Career on the Cloud
You'd have to be living under a rock not to be well aware of the hype cycle in technology. Here is a list of hype cycles I've personally lived through and been affected by. I've tried to identify the year where expectations were either rising the fastest or reached their peak
1999 - Y2K
2000 - Y2K (Yes it was still pretty hot)
2001 - Java / J2EE
2002 - Linux (also Enterprise Application Integration was hot here too)
2003 - .Net Framework
2004 - Open Source & Web Services & BPEL
2006 - ESB (Enterprise Service Bus)
2007 - SaaS
2009 - Virtualization
2010 - Cloud Computing
2011 - SmartPhones
I'm probably off by a year or two in some cases but as you can see each and every year has something new.
Of all of those hyped technologies very few of them delivered on the (marketing) promise. However I think some of them really were a net positive. On a scale of "mostly helpful" to "mostly hype" here are the highlights:
1) Open Source and Linux definitely helped reduced a small chunk of development costs. The problem is most of the costs in development are people - that said any reduction was useful. As a (Java) developer my first preference in most technology choices is Open Source because most of these products "just work" and there is enough documentation and forum help to dig you out of most holes.
2) Java was probably a net drag initially (especially J2EE in its first few incarnations) but after JavaEE 5 things are getting better.
3) SOA was a slight evolution (XML + HTTP?) however if not for the advent of REST, SOA would reside more towards hype than helpful as REST dispelled the myth (pushed by consultants and software firms) that we needed a bunch of heavyweight WS-* protocols to make SOA viable.
4) Virtualization was definitely a net positive for IT organizations and data centers - definitely more helpful than hype saving organizations lots of money.
So what about the cloud, cloud is getting hyped a lot lately. A lot of people don't fully understand it so this may surprise people: the advent of the Cloud is, in my opinion, the biggest event in software development since Tim Berners-Lee proposed the world wide web .
Take that in for a minute. I am willing to bet my public reputation that the Cloud is going to be a HUGE sea change for IT organizations and for developers. Bigger than anything in the past 12+ years.
As a developer if you are not getting on board with this you are gonna be left behind. This is like being a N-Tier C++ programmer in 1994 as the web was starting to gain traction. Get in with the cloud NOW!
Why? Cloud solutions (computing, storage etc.) allows companies (especially large ones) to reduce and perhaps eliminate many of their data centers and supporting IT staff. For smaller companies the "Pay as you go" model (converting CapEx costs to OpEx) and the "elasticity" support to allow you to scale-on-demand are exciting. Venture Capital companies are now demanding the companies they invest in to use the cloud - it helps to reduce costs now and scale more later without large outlays. So who is NOT going to get on board this trend? I can't think of any organization that cares about costs / growth who will not ultimately want to adopt this model.
Also as the number of devices per person (Tablets, laptops, smartphones) continues to accelerate the "elasticity" demands will become ever more prevalent for large enterprises as well as Web 2.0 companies. True you can't use more than one device at a time but devices are getting smarter and creating work themselves (to keep your email, rss feeds, facebook status all up to date etc.).
This is like when Electricity distribution took off with the advent of AC (alternating current) it was critical for economic growth. True the Cloud may take 3 or 4 years to REALLY take off (1994 in the web wasn't nearly as exciting as 1999) but when it does . . . .
And when stuff is hot (like cloud is, or is going to be) the pay goes up up up and the firms that drive value in this space are going to be worth billions.
There are a number of Cloud providers and it's growing almost daily - but if you want to get on board I suggest you start taking a look at Amazon EC2 and Amazon's Elastic Beanstalk (for Java folks). Back in the nineties they used to say "No one was ever fired for choosing IBM" - not that IBM was flawless but it was hard to argue they weren't top of their game for Enterprise software (back then). Today I think the same is true of Amazon - not perfect but compared to the other providers they are clearly on top of their game.
Getting knowledge of AWS and understanding the very different architecture, design and coding strategies (e.g. security, privacy, failover concerns and NoSQL, Hadoop etc.) will help you transfer more quickly over to whatever is "next" when invariably Amazon gets surpassed by someone with a better mousetrap.
I still have a few doubts. Invariably there will some mini-Bubble in cloud company valuations - in the hype cycle there will be a "Peak of expectations" and a "Trough of disillusionment", but in the end the "Plateau of productivity" is going to be a very good (but very different) place to be. And when a large wave of change is coming - it's better to be ready with a surfboard and paddling ahead of the wave, than sitting on the beach waiting for it to come ashore.