Developers accustomed to noncloud development might also encounter surprises when it comes to building Web applications in the cloud. For instance, Greg Taylor, who built an online registration application for the Ohio Music Education Association, wasn't expecting that he'd need such a thorough understanding of database structure and how users would interact with it when he created the application.
The app, which handles the registration of school music performers in statewide music contents, uses a MySQL database as the back end and Alpha Five 10.5 from Alpha Software for the front end. "I am coming from a FileMaker Pro background [and] that product is extremely forgiving with regards to database structure," Taylor says. "A poor design can still be used with a reasonable amount of success."
But developing with MySQL forced Taylor to be extremely organized so that the Web app would have the best performance possible. Going back to the table structure to add more fields is time-consuming, as it involves rotating between different development tools, Navicat for MySQL and Alpha Five for the actual Web page design, he says. The first tool creates the database structure, while the second one creates the pages the user interacts with in order to enter and edit information in the database.
"This may not be an issue for developers leveraging a database that has already been created," Taylor says. "They would simply use Alpha Five to develop the Web pages that a user would access. In my case, I was simultaneously developing both the database and the Web pages, which would have required me to switch between the development tools if I had not planned carefully."
To avoid that ongoing round-tripping, Taylor had to change his database development approach: "By developing a clear ERD [entity relationship diagram] with all needed fields first, my Web app is efficient and my overall development time is greatly reduced."
In some cases, cloud development tools do work like the real world -- at least, of yesterday's version of the real world. Jeff Hensley, HRIS senior analyst at DaVita, a health care firm specializing in kidney dialysis, was surprised that developers working in the cloud needed to use command-line tools, XML, and SQL, "which reminded me of the old DOS days." He expects that old-school approach to change over time as adoption increases.
DaVita is using both cloud-based application delivery platforms and hosted servers to develop and deliver human resources data warehouse and business intelligence applications.
Cloud development gotcha 2: Some apps aren't ideal for development in the cloud
The more hard-to-access or hard-to-replicate systems an application integrates with, the more difficult it is to develop and test it on cloud computing resources, Knipp says.
For example, Dan Stueck, vice president of IT for Faith Educational Ministries, avoids developing high-end applications in the cloud that have extreme data security or regulatory restrictions, or rely on legacy coding projects, such as those in Cobol. "Those two are probably best kept in house," he says, "the first due to the obvious security concerns, and the second because of the 'dead' language issue."
Where Stueck has used the cloud is to run a development server on Amazon.com's public cloud service and to build a student information system, student transcript archive, and home schoolbook selling application in the cloud.