You don’t hear the term “computer programming” much anymore, but it was the origin of software design and development as we know it. I’ve been doing development long enough to know that the process isn’t really all that different than it used to be. Sure, we’re no longer doing it on a green terminal connected to the mainframe as we used to, surrounded by other code monkeys (a term I use with endearment).
And yes, there are new methodologies, like agile.
Different tools have come along, but the process looks awfully familiar: conception, research, requirements, analysis, plan and design, coding, testing, deployment, then back to the drawing board.
We’re still code monkeys. And in the end, we get software.
Development has traveled a long, dusty road. As a developer and having led development teams for small and large software companies and for the Israeli Ministry of Defense, I’ve traveled down that road. Development has been an area ripe for disruption, yet incredibly slow to change.
It’s amazing how many companies still plod along the same path as a decade ago, fraught with delay, cost and fragmentation. For example, development still doesn’t “speak” operations, creating a start and stop to actually get anything through design and testing and into production. Many, many apps are orphaned along the road.
Fellow code monkeys of the world, we are stuck. With all that innovation, why?
Testing is a recognized development bottleneck, for one. Time goes into building the app, but then it takes time and money to get the right lab configuration ready to test and QA. Halfway through, requirements and parameters can change.
A CIO of one of the world’s top three banking organizations once described to me how its test lab was limited to 100 servers, which ultimately slowed the entire organization down.
Demand-generation, coding and deployment also could use a dose of speed. I won’t belabor the point: We all recognize room for improvement, but development change is moving at a snail’s pace instead of the pace of business.
Cloud to the rescue?
The cloud is heralded as the great panacea. It promises cheapness, flexibility, scalability and speed. Is it the answer?
The truth is that the gains derived from the cloud apply to every piece of the software puzzle: running software in the cloud, creating software for the cloud and developing software in the cloud. Traditional development is broken and old ways are becoming obsolete. I believe change will be swift and thorough, and that all development will be done in the cloud within two to five years.
That’s right: all development in the cloud within five years. Cloud vendors like salesforce.com, Amazon and VMware have led the way into the platform business, letting customers develop on a flexible, scalable platform that generates efficiencies unmatched in traditional development. With the cloud, databases, applications, servers, storage, security and networking can be built in for repeatable best practices and easy “plug-and-play” data centers and storage.
Cloud platforms are low-cost, flexible and require less overhead, letting the chief engineer, manager or developer move beyond configurations and installation to focus on innovation. The cloud also means anyone can build apps, and specialized skills may give way to generalist developers.
The cloud just might mean everything, from tools to apps and even developers, becomes commoditized.
The cloud isn’t perfect, and it isn’t as if development “work” goes away. There’s room for specialization, and developers still must deal with standards, protocols, environments, language, management and reliability, among other challenges.
But the cloud is one big open space. If developers can build software using the cloud, configure and test in the cloud, and even run production in the cloud, then geography, operating system and team communication challenges are no longer of concern.
I’m biased. I run a cloud company. I started it because I was frustrated with the tools and processes. I have been in software development for years and know firsthand where core processes, tools and teams tend to fall apart.
There are three areas where the cloud turns traditional development on its head:
Money: Software development takes time and resources (building a lab, licensing, servers, etc.). Cloud businesses are based on providing the best tools for the best value with a pay-as-you-go model. Even the largest organizations are going to throw out old tools and head to the cloud.
IT automation: Development is traditionally slowed by manual software installation, hard-drive and memory changes, testing configuration, and bug fixes. The cloud enables simplification and automation of repeated tasks, as well as access to entire stacks (like SAP or Microsoft) on demand.
Collaboration: Developers like to work independently, and teams remain siloed from other teams and departments. Even agile development is framed by sprints vs. real-time collaboration. The cloud breaks down walls so teams can work together in a browser, WebEx, smart network or remote share. Plus, you can develop from anywhere. Your home computer can become your gateway to a powerful development environment.
The cloud may not be perfect, but it will change everything. It goes beyond cloud-based development. The cloud is changing the way we work.
Cloud-based applications have gained a foothold from global enterprises to small business and individuals. I can’t think about a day without Salesforce, our online bug repository or my virtual IT environment at CloudShare.
Fundamentally, cloud technologies represent the single most disruptive force for changing IT. Code monkeys everywhere, get ready to take it to the cloud.
Zvi Guterman is founder and chief strategy officer of CloudShare.