More Time to Code, Less Time Lost on Admin/Ops
Oracle introduced a new offering of its technology stack on August 13, 2020: Autonomous JSON Database. Autonomous JSON Database joins the growing autonomous product family at Oracle, which already includes the Oracle Autonomous Database, Oracle Autonomous Linux and Oracle Autonomous Data Guard.
This blog post looks at Oracle Autonomous JSON Database's impact on developer productivity and how the new offering can boost a key developer satisfaction driver: velocity.
Why Does Developer Velocity Matter?
The overused headline "Software Eats the World" usually omits the fact that a lot of developer "blood, sweat and tears" are behind the software that powers enterprises' next-generation applications.
And as the demands for building more software ramp up, the complexities of the associated technology stacks grow even faster. Luckily, there is more training and learning available for developers; unfortunately, though, there is typically less training time available. Today, it is important to understand that the creation of the DevOps function has not insulated developers well enough from nonproductive work. Simply put, DevOps teams are as overwhelmed as developers in trying to keep the software-powered revolution going. Meanwhile, legions of developers have come to understand that when they cannot learn new technologies on the job, they need to learn new capabilities on their own time and dime. And while some of that gives developers the much-needed freedom to explore, learn and tinker, it may constrain their long-term marketability.
At the end of the day, what matters is how fast developers can provide good code that aligns with both the specification and the performance requirements of the application in production. The concept of developer velocity is a relatively new term, but it aptly describes the demand that is now put on developers. Meanwhile, it is important to understand that developer velocity is situational and is based on experience, training, know-how and general talents. So, developers who strive to remain good, or even become better, are pressed to increase their maximum velocity with additional training and education (see Figure 1).
Figure 1. Developer Velocity Defined
Source: Constellation Research
Finally, the key determinant of developer velocity is the time available to code. The more time that developers have to write, review and test code, the more productive code they can deliver. For decades, the focus has been to improve developer productivity when they code. And that is a key factor, but even more potential can be derived by giving developers more time to code. This means the elimination of noncoding tasks. Associated noncoding time spent needs to be examined and, ideally, reduced to a minimum.
One of the key perils of the developer job is that when new technologies are involved in a project, the developers often become the first ones in an enterprise to master the operation of the overall technology. That is natural, as they deal with the technology first and—initially, at least—the most. Unfortunately, though, all too often they are drawn into long-term managing, maintaining and scaling operational tasks around the technology of their projects. Developers too often step into the "experience trap"—the capture of the most experienced resources on operational tasks keeping them from their real job: writing and reviewing code.
And while developers are obliged to do their part to not get caught in the perils of the developer job or the experience trap, their enterprise also has to empower them to use platforms that avoid both challenges, through inherent capabilities. Recent innovation in the self-driving or autonomous product category makes this possible.
What Is the Oracle Autonomous JSON Database Service?
Oracle has been steadily building out its autonomous software road map, having released Oracle Autonomous Database, Oracle Autonomous Linux and Autonomous Data Guard. Now the Autonomous JSON Database joins the family of autonomous products.
Specifically, Oracle Autonomous JSON Database is a cloud service that addresses the JSON developer community. It uses native JSON storage and is a fast and scalable service, using Oracle Cloud Infrastructure (OCI). Most importantly, it allows use of both non-SQL, document-centric code assets and SQL-centric code assets, and it provides simple document APIs for programming languages via REST or the command line interface. Contrary to widespread expectations regarding an Oracle Database product/service, SQL is not required to use the Autonomous JSON Database (see Figure 2).
Figure 2. Autonomous JSON Service
There have been long debates regarding the right way to access document-centric JSON databases. Oracle is taking a balanced approach, allowing developers to access the Autonomous JSON Database service as they prefer, either with a document-centric language via Simple Oracle Document Access (SODA) or via SQL.
Figure 3. How Oracle SODA Plugs into Important Popular Programming Languages
With Oracle having addressed two key developer approaches for creating code for JSON-based next-generation applications, it has contributed already to developer velocity, literally helping developers to be productive quickly, reusing previously acquired skills.
But this is only half the story: The main value of Oracle Autonomous JSON Database is that it runs on Oracle Autonomous Database, which means that it has all the self-driving automation, availability, scalability, elasticity and pay-per-use model of the Oracle autonomous platforms. Oracle provides the availability that enterprises need for their JSON-centric next-generation applications as well as the scalability and elasticity that JSON-native applications need. Practically, this means developers do not have to worry about taking care of database management (new instance provisioning, automated backup, replication, disaster recovery, scaling and tuning, and so on), and with that they can avoid the "talent trap." With little to no DevOps resources and skills needed, developers will not be stuck supporting JSON databases. In these capabilities lie the real advantage for developers using Oracle Autonomous JSON Database: It allows developers to increase time available for developing code, and to spend less time on "plumbing," thus gaining greater developer velocity.
Why It Matters for Developers
Developers want to create and maintain successful code in applications that make a difference for their enterprises. With the Autonomous JSON Database, Oracle delivers four key qualities that improve the developer's experience in this regard (see Figure 4):
1. Fast ramp-up. Developers can use both SODA and SQL with the Oracle Autonomous JSON Database and mix and match between the two, depending on the use cases. With support for the ISO SQL/JSON standard, and with SODA being close in composition to other popular document APIs, developers can become productive quickly.
2. Self-driving NoSQL. Oracle autonomous qualities benefit the Autonomous JSON Database. Therefore, auto-scaling, backup, cloning and more are easily achieved. Relieved of such administrative requirements, developers can code with no outage or impact on their applications.
3. Single database benefits. Oracle's universal database approach brings all relevant information together, not only the relational system of record information on the Oracle Database but also the nonstructured, document-oriented NoSQL data with Oracle Autonomous JSON Database. Developers who understand Oracle Database don't have to learn anything new to use Autonomous JSON Database.
4. More coding, less admin and ops. To achieve higher velocity, developers need to have more time to code and less time consumed by administrative and operational tasks. Oracle Autonomous JSON Database delivers on that, with all the qualities of the Oracle autonomous technology stack.
Figure 4. Developer Benefits of Oracle Autonomous JSON Service
Source: Constellation Research
Advice for JSON Developers
Constellation has the following recommendations for developers regarding Oracle Autonomous JSON Database:
1. Accept the automation imperative. Progression in technology, most notably Infinite Computing,[i]allows the automation of more routine and advanced tasks than ever before. Developers need to realize that their work environment will change more in the next 10 years than it has changed in the last 25. Developers who take advantage of autonomous self-driving capabilities earlier will increase their developer velocity and be more successful.
2. Evaluate Oracle Autonomous JSON Database for NoSQL demands (existing Oracle customers). Suite-level benefits are strong, especially when it comes to the platform-as-a-service (PaaS) layers (in this case, the database). If a developer is already using the Oracle Database, then the synergistic effects of the Oracle platform make Oracle Autonomous JSON Database very attractive.
3. Conduct a cost-benefit analysis for a potential switch to Oracle Autonomous JSON Database (Oracle prospects). Oracle has a multiyear lead on PaaS competitors when it comes to building an autonomous platform, starting with its flagship RDMBS product, the Oracle Database. As Oracle adds autonomous offerings (for instance, Oracle Autonomous Linux and, now, Oracle Autonomous JSON Database), the labor savings and developer velocity advantages of the platform become worth the consideration by non-Oracle customers.
4. Prioritize developer velocity. As Enterprise Acceleration[ii]is travolging[iii]enterprises, developers find themselves as the key enablers of the software-driven enterprise. Developers who can show higher velocity than their peers will do better.
5. Consider Oracle Autonomous JSON Database for next-generation applications. All seven of the universal next-generation application use cases require JSON skills to be successful.[iv]Developers interested in building next-generation applications need to look for NoSQL/JSON offerings that will make their development success more likely. Oracle Autonomous JSON Database has the potential to deliver on that, and therefore merits a closer look/evaluation.
6. Understand and avoid the time sinks that developers step into. Developers need to continuously monitor where they spend their time—humankind's most precious resource. But as all engineers, including developers, are measured on outcomes, developers need to be more acutely aware of how they actually spend their time. Conversely, good developers will be constantly on the lookout for offerings that free up more time for coding and increase their developer velocity.
Developers need to think more about themselves, even to the point of becoming selfish. Technology advancement has accelerated, and the expertise and learning options available a few years ago are no longer keeping developers skilled to the level where they want to be and should be.
At the same time, days have not gotten longer than 24 hours, so it really is up to developers to determine how they can get the most out of their time. Adding more admin/ops skills is not the best choice. It is true that new technologies are always interesting and often fun to learn with, tinker with and even build software with. But, all too often, developers get stuck with operating and maintaining these technologies longer than they should, and they really cannot afford to waste time on supporting technologies that could be automated or that should be supported by others. (DevOps, anyone?)
This realization makes developers effective change agents for their work environment. That is not a new role, as developers have that freedom when it comes to the tools they want to use when they code (e.g., their IDE). But the change-agent role now needs to expand to platforms that do not require developers to be taken "hostage" by platform maintenance and operation needs. The consequence is that developers need to become more active in selecting platforms, something they have not done traditionally.
The good news is that new, modern platforms inherently avoid pitfalls that burden developers with operational, administrative and maintenance demands. One such modern offering is Oracle Autonomous JSON Database, which minimizes operational and maintenance demands on anyone—whether they are developers or DevOps staff. The result of using platforms with autonomous qualities is that they improve the developer experience: Developers can spend more time coding and/or more time learning, increasing their skills, relevance and marketability.
More blog posts on developer topics:
- Musings - Why Open Source has won and will keep... winning - read here
- Musings - IBM's 10th CEO takes the reins - Krishna has his work cut out for him - read here
- Musings - Apple's Services Launch - worth a look? read here
- Musings - SAP democratizes Product Development - what does it mean for Customers? Read here
- Musings - Why splitting Windows is Nadella's first major mistake - read here
- Musings - Time to bring back the software user conference - read here
- Musings - Happy 10th Birthday iPhone - afraid the next 10 years will be harder - read here
- Musings - The Bots are coming to your conversation - what are the implications? - read here
- Musings - We are entering the age of the Über Super Computer - read here
- Musings - Retail is the breeding ground for NextGen Apps - read here
- Musings - Time to re-invent email – for real! Read here
- Musings - The Dilemma with Cloud Infrastructure updates - read here
- Musings - Are we witnessing the Rise of the Enterprise Cloud? Read here
- Musings - What are true Analytics - a Manifesto. Read here
- Musings - Microsoft does not need one CEO - but six - read here