The source of competitive advantage and value that an organization delivers to its end customers is increasingly defined by the software “systems” that underpin them. As a result, organizations find themselves in a digital race, where the speed at which IT can reliably deliver new features and innovations is what sets them apart from their competition.
In an industrial company, avoid software at your own peril . . . a software company could disintermediate GE someday, and we’re better off being paranoid about that.”
Jeff Immelt, CEO, General Electric
These innovations are seldom delivered by pre-packaged business applications, whether running on-premise or delivered as Software as a Service (SaaS), but by custom solutions derived in-house. Yet, most organizations have neither the time nor funds to build these systems of innovation from the ground up. Instead, they are delivered by layering new capabilities on top of existing applications, an approach defined by Gartner as “Pace-Layered”.
Oracle Middleware, such as the Oracle BPM Suite and Oracle SOA Suite provides the application glue to rapidly and continually combine these business apps, like puzzle pieces, into a custom integrated solution in order to deliver a seamless and unified experience to the customer.
Yet even with this Pace-Layered approach, many IT projects are still failing to deliver either on-time or on-budget, with development teams often held back by their own IT organization. So how can you reduce the cost of the software you develop and decrease the time it takes to get it right?
Research shows moving development to the cloud can initially reduce development time by an order of 11 to 20 percent. Organizations that fully embrace the cloud for Dev and Test are experiencing 30%+ time savings upon maturing their DevOps capabilities.
“Companies that are able to innovate quickly with software will outcompete traditional market leaders.”
Moving Oracle Middleware development to the cloud, gives organizations the ability to streamline their development process, including the ability to quickly get development assets online, so application development can begin without having to wait for hardware and software to be setup in the data center.
This is the first in a series of posts that discusses the benefits of implementing Oracle Middleware projects in the cloud, how to get started, as well as additional benefits provided by cloud based development.
Development teams must speed up their rate of delivery
In many organizations, IT projects are failing to deliver either on-time or on-budget. Tom DeMarco, a respected authority on Project Management and author of several books, including The Deadline: A Novel About Project Management, has pointed out that, "All projects that finish late have this one thing in common: they started late…".
"All projects that finish late have this one thing in common: they started late…".
DeMarco provides a number of reasons why a project starts late, but a common issue, even when the project has "notionally" started, is the speed at which an organization can provide the required development tools and environments at critical points in the project lifecycle.
Why is this? And why is it such a problem for complex integration projects?
Obtaining Development Environments Can Take Months
Implementing enterprise-class Oracle Middleware projects requires several pre-production environments (development and test environments); project teams often having to wait several weeks or months for these environments to be made available, causing significant delay at the very beginning of the project.
“The start of the project was delayed by 3 months waiting for a suitable Dev Platform, the start of SIT was delayed even longer for similar reasons ...”
Project Manager – Manufacturing Company, USA
Waiting for hardware to be delivered and installed, as well as the scheduling of various IT Operations teams to configure the underlying infrastructure, such as Virtual Machines, Networks, Databases, Load Balancers and Shared Storage are all key contributors to the delays.
Once the infrastructure is in place, the installation and configuration of the Oracle Middleware needs to be performed, this is a manual and error prone process which can take several weeks to complete, contributing further to the delay.
Projects are reluctant to give back un-used environments
As it takes so long to obtain a Middleware Environment, there is a tendency to hold on to them for as long as possible; environments such as UAT, Performance Testing or Training are only required at specific intervals during a project, yet project teams will hold on to them for the entire duration of the project or longer.
Keeping “hold” of all these environments, ties up resources, which may be required by other projects, thus delaying those projects. In addition, and equally concerning, is the added infrastructure and software licensing costs each and every project carries, with a full complement of pre-production environments established for the entire duration of each and every project.
Managing multiple Oracle Middleware environments is expensive.
Apart from being inefficient, organizations can end up with many under-utilized environments, which require on-going administration, plus additional investments in hardware and software licenses. To make matters worse, organizations quickly lose track of what each environment is required for, and thus never know when these environments can be finally retired, so hang on to them anyway.
Forcing projects to share environments reduces developer productivity
As a result, projects end up sharing environments. If there are too many developers working in the same environment, deploying and testing code, it can quickly result in a degradation of system throughput, which has a direct impact on developer productivity.
Troubleshooting platform issues, such as memory leaks, stuck threads, etc. takes longer, as it’s not easy to determine which project introduced the issue. In the meantime, this impacts the stability and performance of the platform, requiring developers to regularly down tools to accommodate server re-starts.
“Productivity of my development team was reduced by 20% due to an unstable middleware platform, at one point we were re-starting it 4-5 times per day … out of a team of ten, it was costing me two FTE’s ”
Integration Manager - Utility Company
In addition, configuration changes, often require server restarts, the more projects there are, the more config changes are required, resulting in more server restarts, impacting platform availability and developer productivity across all projects.
How the cloud can accelerate application development
Research shows cloud platforms can reduce development time by an order of 11 to 20 percent, with some projects experiencing 30%+ time savings.
Deliver development environments in minutes
The promise of cloud is that development and test environments are delivered as a service on demand and ready to consume; so in about the time it takes to do a server re-start, you can create a new environment in the cloud. Key to this is providing a self-service experience, removing the need to involve IT Ops –allowing them to stay focused on running production.
Throw away environments when you don’t need them to reduce overheads
And because it so easy to create new environments, then there is no issue with throwing away these environments when no longer needed, so removing the overhead of managing un-used environments, as well as allowing organizations to make optimal use of software licenses, hardware, etc.
Secure unlimited elastic capacity
This elastic capability of the cloud allows each project to have its own environments, removing the impedance imposed when sharing environments with other projects.
One organization we worked with, saw a 25% increase in developer productivity, when they switched from shared to dedicated project environments. For every 4 developers they were getting the equivalent of an extra free developer.
Enables efficient & agile development practices
Much of the tooling used to enable development in the cloud, is the same tooling used to enable many of the best practices in Continuous Delivery and DevOps, further improving productivity (see the Whitepaper Best Practice for Implementing Continuous Delivery for Oracle Middleware for further details).
Start building an organizations cloud readiness
While many organizations are making some use of public cloud, many are just not ready for large scale cloud adoption and are still coming to terms with what is involved in moving enterprise applications to the cloud.
Moving Dev and Test to the cloud can help an organization build out its cloud capability, with minimal risk and provide greater insight into what would be required to move Production to the cloud.
Establishing our DEV / TEST Environment in the Cloud
In my next post I'll examine some areas to consider when selecting your cloud provider and how to set-up your DEV / TEST middleware platform in the cloud.
Download White Paper
Click here to download the white paper on How Dev/Test in the cloud is accelerating delivery of Oracle Middleware projects.