For some IT managers, the cloud is about bursting certain systems out of the enterprise data center when traffic builds up. For others, it's a place to run really large jobs that occur only incidentally or occasionally, so the company doesn't have a bunch servers sitting idle most of the time.
To Joe Emison, CIO of Xcelligent, it's neither of those things. It's the only way to stay alive when software "is eating the world."
Emison didn't spend a lot of time at Interop ITX in Las Vegas May 18 debating whether software is taking over. On the contrary, he takes it for granted, and that attitude is deeply implanted in his point of view. Only those who can support their products with software or, in some cases, make their products into software, will survive, he thinks.
If every company must become a software company, there's little doubt in Emison's mind that the best place to do it is in the cloud. The early cloud advocates, the cloud-native thinkers, all the true believers who see virtue in cloud-everything agree. But Emison is different. He's a natural skeptic of cure-all remedies and his advocacy of moving development into the cloud and becoming a cloud-oriented company is based on practicalities more than preferences.
Want to learn more about developers and security? See What Developers Don't Know About Security Can Hurt You.
If software is eating the world, you need to produce good software as quickly as possible to avoid becoming lunch. Developers who do that are good at some things, not so good at others. Some of the things that they're not good at include setting up servers for development projects, applying security to those servers, setting up database systems, assuring systems can failover, and networking -- maybe especially, networking.
"Developers are not good at pager duty (being on call for ops), security, database modifications, system administration, quality assurance or network management," he said during his session, How to Profit from Software Eating The World.
"Developers can make themselves more efficient. They can eliminate all these dependencies that annoy them," he added.
In effect, it's a boon to the company when developers let a cloud provider like Amazon, Microsoft, Google or IBM worry about the infrastructure that they'd rather not be messing with themselves in the first place.
The simplicity of this argument belies its importance. Emison is pretty much an example of what he advocates, as an Amazon cloud user himself at Xceligent. "I haven't hired a DBA in 10 years and I'm not going to hire another one at this point for the legacy side of things," he said.
It doesn't matter how thoroughly you adopt agile methods, which language you adopt, or whether you're up to date on Chef and Jenkins.
What does matter is that developers get the time and space they need to implement the business logic with which they're familiar. They should be allowed to work alone, or in pairs, "but not for too long." It's also important that they be able to hand-off code to the next shift and more than one developer's work be included in the next merge. New developers need to be able to be added to the team quickly and existing developers of all stripes need to participate in code reviews, not just one or two designated senior developers. "It's good for new developers to see the whole code base," he noted.
Doing many of these things in the cloud has its own complications, but as developers learn to work with the cloud, the infrastructure issues like failover, system administration, database service, networking and security fall primarily upon the cloud provider.
In the cloud, it's easy to onboard new members of the team and grant them access to shared resources and set up automated testing, which runs only when needed. It may or may not cost the same as on-premises operations, but once the development team is used to dealing with the cloud, a set of other issues goes away. Then the development team is ready to venture forth into an environment in which their software may be among the software assets that are chewing on the competition, satisfying new customers and eating the world for the sake of an expanding business.