First of all, I am talking from
anecdotal experience working mostly with the Mexican IT scene, but it’s not
restricted to it, I have observed the same behavior on some US companies.
The last months I have been working
with companies helping them move to SaaS taking advantage of the Cloud, my
colleague at Scio consulting, Mike Dunham has written a series of posts “The
Cloud, SaaS and the Total Costs of Operations” you can found here: part 1, part 2 and part 3 . This is a developer's
point of view.
Microsoft and AWS
in a lesser extent, both have information about their products, and how to use
them, but one thing that is missing , there are no papers encouraging
developers to change their mind set to develop applications that take advantage
of the cloud in terms of business benefits. We, the developers have to start
getting more involved in the business side of our companies so we are aware of
the challenges, the objectives and the market, how can we design and develop
and application that takes our company to business success if we are not
aware of those “boring” things?
Other thing that I have found, is
that, as scrum is invading the startup scene and as companies are being dazzled
by the scrum shine, the “fail” line grows faster. Don't get me wrong scrum has
its place, but I won't use it for all the projects and I won't use it with all
the people. I will use it on projects with people that already know and like
each other.
Many architects and developers
design and code the application the same way for on premise and cloud
environments. Most of those applications will fail when they need to
scale because of their success and the only option to is to scale them up. To
run efficiently in the cloud, many apps require changes and rewrites of some
parts to run on a web farm. How can architects and developers design and
code for success if scrum and a big picture awareness can't live together?
So what is the
solution? It is easy to say we need to design and develop for business success,
but not as easy to implement. We have to learn and remember to design and
develop applications to scale automatically on demand (elastic), always develop
with operations in mind and remember that today ignorance and laziness is
tomorrow's nightmare.