Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
Ashwininaik
Associate
Associate

In today's world, we have a wide range of software tools made available for every single requirement that arises in the cloud-native SaaS development. Be it low code-no code, API development, testing, infrastructure, cloud qualities management, the choice is immense. As we go into a more and more cloud-native development world with constantly improving concepts, new development tools and infrastructure are regularly being rolled-out into the market. A challenge arising out of these choices, is not really about picking the right tool, but actually in keeping up with the changes post doing any development, the upgrade impacts, long term maintenance of code built across the tools, and others.

On the other hand, we aren't out of the challenge, that these new applications built using all these tools, have to yet work with the existing "old code, old model, non-cloud-native" applications. They need to integrate as seamlessly with the existing Business Applications.

End of it, it's important for us to find ways to not just identify and bring in the right tools for development, but also provide our developers an easy to use environment that simplifies their effort, and helps them keep their focus on resolving the core business problem they are trying to solve.

Let's focus below on the needs of a developer experience in development of highly integrated, cross technology products in a product development company.

Simplified development environment 

When we talk of simplified development environment, we could immediately start thinking of LCNC, GPT based code generation, etc. But we should consider here are not the piece meal approach to the code development, but rather one environment which can help us bring all the different pieces of the application code in one developer studio, irrespective of what tools are used underneath. You may argue that almost all visual based developer studios out there meet these expectations. But could we consider features like recommendation of APIs while developing, instead of having to search for APIs in another portal? Recommendation of right cloud quality code patterns for implementation, for eg: observability, resilience patterns? The simplified environment goes beyond this to what I try describing below.

Cross technology development

As we are talking of the environment where we are building satellite cloud native applications that are still to talk to non-cloud-native applications out there, we need more here as developer experience. This environment, should not just allow you to build an application on Cloud Native, as most PaaS solutions aim to provide, but also make it more simplified in also integrating with the non-cloud-native solutions. The technology stacks used would vary across non-cloud-native and cloud-native. To ensure secure and authorized data reads, standardized service connections and calls, seamless navigations and unified view to customers across applications, there are standards and integration models defined. The new age development experience requires that the required interfaces to ensure these cross technology integrations are managed should be visually modelled or auto generated, manageable within the same environment development environment than having to moving across the different technology based development tools.

Guidelines as automated processes

When we look at companies developing highly complex, huge applications spanning across multiple LoBs, technical standards and guidelines become a defining factor to ensure all the gears in the software fall into place seamlessly. It's important to convert the technical guidelines into automated processes, procedures or code stubs, than having the developers read through, and run through several documents, Jiras to ensure implementation of these guidelines. Standardized definition of what tools are used, standard templates to implement the tools, templates for varied testing, should also become an inherent part of this development environment.

Automated integrated test environments

An integral part of any development is also ensuring quality with testing across the different technology based products. This means, the need for all-time available, fully integrated, completely updated test environments. With the numerous LoBs delivering multiple applications on cloud-native that need to work with each other at any time, as well as work with their non-cloud-native base, it’s a major challenge to ensure the availability of such environments. Multiple such environments means also huge costs. Also requesting and waiting for such environments is a huge no-no from developer experience. Hence the need for on-demand, test environments that provide fully integration systems at the click of a button.

E2E process handling tools

Again, a large product development company spanning multiple LoBs, also means processes. Guideline compliance processes, processes for exemptions from defined state with defined roadmaps, process for managing and tracking delivery, quality KPIs, process for enabling innersourcing. A good development experience should also consider building these into the environment, than having to span across different tools, excels, etc. The product development does not end at deployment or delivery, but also continues with monitoring through the lifecycle of the product.

A developer experience starts way before development actually starts and continues into the maintenance of the product built. Hence, the ideas cover the challenges of not just the core developers, but also the Product Owners, architects, Quality and all other responsible who need to deal around the product lifecycle.