Custom application development is back in vogue.
Well, actually it never exactly went out of style. This is more about a constant cycle from custom development to packaged software and back again.
Let’s step way back. Like, waaay back. Why software in the first place? Well, elementary: It’s about performing basic business processes and serving customers.
BUT: Maybe you have an idea for how to perform something better, faster, cheaper. Or how to collaborate and innovate more effectively. Then, custom development becomes your kind of “secret sauce” for applications that give you an edge.
Unfortunately, as we all know, innovation has a short shelf life. You make a great new laundry detergent with ingredient Z, but pretty soon, all competitors are using ingredient Z.
Same with applications. You do custom development to create differentiated services. But as time goes on, vendors begin to create packaged software to deliver functionality with that ingredient Z you loved so much. Once the packaged solution gets to the right level of maturity and the right price point, then custom development for that particular need no longer makes sense.
The endless pendulum swing
So, where are we in this endless pendulum swing right now? Technology trends are driving many IT organizations back to custom application development—trends like analytics, the Internet of Things, mobility, customer-facing external APIs, and new application styles and patterns that allow companies to get capabilities to market faster.
For a while, companies won’t find industry-specific packaged offerings that enable the kinds of solutions they want to create. So they're back into custom development again, whether it's evolving applications that were previously differentiated or building entirely new applications.
The impact of cloud
It’s important to understand how cloud has changed the overall landscape for custom development. Instead of building a platform and required capacity upon which I do custom development, I now simply consume out of an existing cloud platform—and, equally important, de-provision when not needed, thus lowering the investment risk of new services.
So cloud, through its commercial model, its APIs, and through increased services and tooling, is helping companies avoid the need to build a lot of their own “plumbing.” They can consume that portion they need and only build the rest.
As a result, custom development more agile—and potentially cheaper, as well. In the older model, if I were to say I want to develop a web service in a new way, I would have to get new servers, middleware and development tools. Now it’s: well, let me go spool all this stuff up on Google or Azure or Amazon, and let me try it out. The cloud platform now will also allow elastic capacity and global distribution that scales with my service.
Before, it would have involved months of time and millions of dollars in capital investment for larger build-outs. Now it's: spin it up in a matter of weeks, see how it goes, and spin it back down if there is a need to shift or change or outright kill an app. That has significantly reduced the friction for people to try custom development and use it in new ways.
There’s a catch here, however. Skills.
I just read a piece from Cloud Computing News about the skills you’re going to need in this cloud development environment: Migration, security, database, programming languages and Linux. I’ll talk more about skills in my next blog.