The case for developer platforms as seen by Oracle
|Richard Harris in Cloud Services Friday, July 7, 2017|
Oracle talks with App Developer Magazine on how cloud enterprise development platforms are important for a developers success.
While many developers think they have become more productive ever since developing in the cloud, a lot of the new responsibilities that came with cloud-native development are getting in the way of actual coding. A look at the reasons why developers should consider a platform when building enterprise applications. We sat down and had a chat with Oracle's own Diby Malakar, VP of Product Management, and Siddhartha Agarwal, VP of Product Management and Strategy, to learn more about the importance of developer platforms.
ADM: How have developers' lives changed since the advent of cloud computing?
Oracle: For many decades, developers have spent most their time working on their local computers, dealing with services, technologies, and APIs all running locally. Even before the advent of Cloud computing, developers had to download loads of software, installation templates, or luckily pre-built VMs, onto their local computers and then had to deal with requesting IT to provision required hardware for production.
Cloud was a game changer: developers are now using Cloud-based Dev/Test environments, deploying containers to enhance portability of their applications across environments, leveraging an array of dev-ops tools easily provisioned in the cloud to speed up development and promotion to production, and mostly dealing with integrations, with API consumption, to build most of the server-side applications of today. API consumption are used sometimes even for the most basic parts of data management where for a simple CRUD application, all it takes is a REST call to an API with the data provided as a JSON payload to be stored and indexed.
Developers used to write code on their local machine, unit test and then pray that the production environment is not too different than their very own test environment. With the advent of cloud-based container technology, Developers can easily simulate the production environment and that not only speeds up the Dev lifecycle but also helps them test production like environment improving software quality.
Developers lives have changed for the better. They are much more productive, delivering functionality required by business much faster. They don't have to worry as much about the infrastructure for deployment, and spend more time studying APIs rather than reading instructions for setting up their local development environments. Although it is hard to measure, anecdotally it is true to say the ratio of code written by developers to meet business requirements is substantially greater now.
ADM: What are the technologies and methodologies that impacted developers' lives the most?
Oracle: Software is being delivered at an all-time high speed in the IT industry. The adoption of Continuous Integration and Continuous Delivery pipelines, containers for recreating entire applications and associated environments, the advent of API First Design, the leverage of project management methodologies such as Agile/Scrum, and the ability to easily deliver multi-channel engagement through Mobile/chatbot applications, have been some of the key enablers to delivering higher quality code faster.
How developers interact these days with their peers, and their project managers, and new figures like their product owners, has changed substantially as well. In the past developers used to receive Word documents full of documented features, methods, functions, and user interfaces. It was a long dragging slow process that had many back and forth, most of the times with required redo's simply because the interaction with the actual end user was not there in the process. Today's processes have closed the gap between developers and end users, which speeds up the development lifecycle a lot.
The improved productivity and time to market their product with the advent of cloud has given developers an opportunity to follow the "Move Fast, Break Faster" approach which has exponentially increased the speed at which they can innovate and build products that can truly delight their customers.
ADM: What effect did they have on developers' responsibilities? Do they now need to do more than before?
Oracle: The effects include the following:
- Improved developer agility due to improved code quality and business logic/code being delivered in shorter release cycles
- Understanding operations, since responsibility spans development and operations: no longer just about building airplanes, but now also responsible for operating the airlines
- Increased complexity of what they are dealing with. Eg: with containers (in the past did not have to think about load balancers, scheduling, orchestration, etc.)
- Improved alignment with the business requirements, enabling the business to fail fast and learn quickly
Overall, yes, they need to do much more than before. Some might say that the roles of development teams had to change because of market demands, innovation speed, or other business-related labels. We believe though that it changes because developers themselves figured out other ways to do what they already do. As very creative people, developers tend to seek for better or completely new ways of implementing a solution to an already solved problem. I call that the seek for innovation from inside out.
There is this sense of boredom that consumes developers who get tired of doing the same thing over and over, that makes them look for new ways, new tasks, and new roles. Developers wanted more responsibility to fulfill a gap on lack of control over the things they have built, but were given over to someone else to lead. Regardless, they were still on the hook for any issue and had to fix that as fast as they could. This loop made them think, and may have been behind the whole concept of the DevOps culture.
If we developers have to do more these days, it is because we wanted to. We asked for it. We believe we are in a much better position, with better judgment, to deal with the whole software implementation and delivery process. We 'can' do more on things that 'matter' like building products that delight our customers as opposed to spending time on building and maintaining Dev, Test infrastructure.
ADM: Which of these new responsibilities can be automated? How?
Oracle: The reality is that a lot of these responsibilities can be automated.
- Continuous integration/deployment
- Understanding what's happening in production and not having to worry about thresholds
- Auto scaling
- Container management - just use them, without having to worry about scaling/redundancy
If there is one thing developers love, it's the possibility of automating tasks. Continuous Integration/Delivery, Monitoring and Scaling, and even support can be automated. But all still demand some creativity by the developer at hand, to put all pieces together in a meaningful way for their business. But it is important to have the tools for doing it, and that's where a cloud platform comes very handy.
ADM: What are the benefits of using an end-to-end developer platform?
Oracle: The key benefits include higher productivity for developers, where they do not have to worry about managing infrastructure that delivers that productivity for them (eg. toolsets like JIRA, monitoring scalability of applications, patching, upgrades, CI/CD tools etc.). Developers can now focus on things that matter more which is building applications to meet the needs of their business community.
ADM: What are the drawbacks of using an end-to-end developer platform?
Oracle: There might be none, if the platform delivers enough pluggability for customizing the unusual use cases. And supporting pluggability, webhooks, scheduled jobs, having APIs for as many tasks as possible, is just part of what makes a great cloud-based developer platform. Most have that, including Oracle's.
ADM: How do open-source technologies fit in this picture?
Oracle: Open-source technologies are critical to having and leveraging a high rate of innovation. An innovative end to end development platform should leverage the best open-source technologies effectively, while providing scalability, support and availability for these technologies.
If you look around, all successful cloud platforms support Open Source somehow. Some are using it as part of their core business implementations, others provide great support for developers to roll their own instances with Open Source software. The fact is, there is no such thing as a successful cloud vendor that has no room for Open Source!
Clouds are distributed technology platforms that leverage sophisticated technology innovations to provide highly scalable and resilient environments that can be remotely utilized by organizations in a multitude of powerful ways. To successfully build upon, integrate with, or even create a cloud environment requires an understanding of its common inner mechanics, architectural layers, and models, as well as an understanding of the business and economic factors that result from the adoption and real-world use of cloud-based services.
Learn the best ways to organize your app development projects, and keep code straight, clients happy, and breathe a easier through launches.
The ultimate hands-on Linux user guide.
Write and run code every step of the way, using Android Studio to create apps that integrate with other apps, download and display pictures from the web, play sounds, and more. Each chapter and app has been designed and tested to provide the knowledge and experience you need to get started in Android development.
How to create a profitable, sustainable business developing and marketing mobile apps.