Cloud development gotcha 3: Developers often dislike the unfamiliar cloud territory
Cloud computing is still relatively new to a lot of organizations, and it can be a disruptive technology, including in the development arena. 20/20 Cos., a provider of outsourced sales services, used the Force.com cloud platform from Salesforce.com to build a custom application that allows outsourced reps to enter sales data into 20/20's order-to-invoice-to-payroll tool.
"The thing that was probably most unexpected was how well the entire [cloud development] project was received by the management and sales teams and everyone who uses the system, [and] how poorly it was received by the IT organization and in particular developers," says Mark Warren, chief architect at 20/20.
The IT people were accustomed to working with Microsoft .Net, SQL Server, Java, and other traditional development platforms, Warren says, and Force.com was a completely different model. "If you know SQL and Java, that's your toolbox, and you're not going to want to go to this completely alien platform that's coming in," Warren says.
As a result, the sales application was developed primarily by business staff, not by IT developers. That brought its own set of challenges, Warren says, the biggest of which was a lack of understanding among the businesspeople about change management and IT governance. "IT has a level of discipline that businesspeople are not used to having enforced on them," Warren says. "We had to bring them up to speed on change management issues."
As for addressing the reluctance of technology people to develop in a cloud environment, there are programs IT can implement to help adopt cloud computing internally, Warren says. "Training is certainly a good method to facilitate," he says. "However, unless the culture of IT is open to new methods and technologies, organizational change [getting new developers] may be the only option."
Cloud development gotcha 4: Lack of documentation hinders cloud developers
DaVita's Jensley was surprised by the lack of documentation to help developers understand the cloud and the tools and resources that can be used to build applications in that environment.
"I would definitely expect that to change as the demand increases and more and more companies begin adapting the cloud concept," Hensley says. "We were able to combat that by partnering with a consulting firm."
Cloud development gotcha 5: Network issues can bedevil private cloud environments
Developing in the cloud sometimes means developing in your own private cloud, which may not have the multitenancy and load-movement capabilities that keep your applications available 24/7. In a private cloud environment, "one of the challenges is to design for and anticipate scheduled and unscheduled maintenance of the servers, and how to fail over gracefully," says David Intersimone, vice president of developer relations at Embarcadero Technologies, a provider of database management tools.
Embarcadero is using its virtualized data center for application building and testing. "For internal private clouds, we have a couple of options: choosing the scheduled date/time, and staging which servers are done in a certain order," Intersimone says. "There are automated build and automated smoke test processes that are running all the time in our main private cloud and also in regional development offices."
To get a more available environment, Intersimone says he's looking into a cloud container and virtual private network offering from CohesiveFT that can be installed in public and private clouds to provide on-demand scaling, failover, disaster recovery, and disaster readiness.