A full stack developer develops both the frontend and backend components of an application.
These developers have knowledge of various programming languages, frameworks, and tools to develop both the UI and the database and server logic of an application. That sounds like the holy grail of development, doesn’t it? But let’s look at the issue in a little more detail. For the time being, however, we’ll remain so generic that we won’t go into any SAP specifics.
You should also have knowledge of various frontend and backend frameworks, such as SAPUI5, React, or Angular for frontend development and Spring or Express for backend development. A full stack developer should also have knowledge of different databases and storage technologies, such as SAP HANA, PostgreSQL, MongoDB, or Redis, and know how to connect them to the application. They should also have knowledge of DevOps, such as how to deploy applications on a server and how to scale and maintain them. It’s important to note that the requirements for a full stack developer can vary depending on the company and the project, and there is a constant learning curve to stay on top of the latest technology.
Full Stack Application Architecture
A typical architecture of a full stack application consists of several layers that build on each other and interact with each other. These layers include the following.
Application Layer 1
In addition, you’ll always find an infrastructure layer. This is the layer that manages the technical aspects of the application, such as the servers, storage, networks, and security. It includes the management of the hardware and software infrastructure required to run the application. DevOps tools can also be used in this layer to automate processes such as continuous integration, continuous deployment, and monitoring.
What DevOps Is All About
DevOps is a combination of the terms “development” and “operations” and refers to the collaboration between developers and operations staff to ensure that applications and services can be delivered quickly, securely, and reliably. DevOps encompasses a variety of practices, tools, and processes that help automate and accelerate the development, deployment, and maintenance of applications and services. Key DevOps practices include continuous integration, continuous deployment, continuous testing, infrastructure as code, and monitoring and logging.
But what does it look like in the SAP environment? A full stack developer in the SAP environment develops both the frontend and backend components of applications that run on the SAP platform. This usually includes knowledge of SAP-specific technologies and programming languages, as well as knowledge of developing applications on the SAP platform. It doesn’t matter whether the applications are deployed in the cloud (aka SAP Business Technology Platform [SAP BTP]) or in the on-premise landscape.
On-premise refers to software or IT infrastructure that is deployed and operated locally on physical servers and systems within a company; that is, the software or systems run on the premises of the company and aren’t hosted in the cloud. On-premise solutions typically offer more control and adaptability, but they also require a greater investment in infrastructure, operations, and maintenance by the business itself.
Integration Architecture 101
Integration architecture refers to the set of technologies, standards, processes, and practices used to connect disparate systems and applications within or between organizations. The integration architecture also includes the use of integration tools such as middleware systems, enterprise service bus (ESB, or cloud integration platforms to enable and automate data transfer and communication between systems and applications. Integration architecture is important because it enables data and processes in different systems and applications to be coordinated and automated, which improves business processes and collaboration within an organization or between organizations.
A full stack developer in the SAP environment should also have knowledge in developing applications in the SAP environment, such as in SAP S/4HANA or SAP BTP. Developers should also understand the integration of SAP systems with other systems and know how to deploy and maintain applications on the SAP platform.
Full Stack Prerequisites
A prospective full stack developer should ideally have the following prerequisites.
- Backend development knowledge: A full stack developer should have knowledge of backend languages, programming models, and frameworks, such as ABAP, ABAP RESTful application programming model, Node.js, or SAP Cloud Application Programming Model, and know how to work with databases such as SAP HANA, SAP HANA Cloud, PostgreSQL, MongoDB, or Redis.
- DevOps knowledge: A full stack developer should understand DevOps and know how to deploy and scale applications on a server as well as know how to maintain them. Our experience shows that DevOps, especially in the SAP environment, is mostly nonexistent or only rudimentary among developers. Therefore, an adequate basic knowledge in DevOps must be built up.
- Analytical and problem-solving skills: A full stack developer should be able to analyze and solve complex problems and quickly learn new technologies and tools.
- Communication skills: A full stack developer should communicate and collaborate well with other members of the development team and other departments.
- Willingness to learn: A full stack developer should be constantly willing to learn and keep up to date with rapidly changing technology.
- Source code management system knowledge: A full stack developer should have knowledge of at least one source code management system such as Git.
We don’t want to discourage you with this list. Every developer can become a full stack developer with the right motivation and the right training and coaching from experienced developers. Derived from these requirements, full stack developers may face the following challenges in their daily work.
- Learning curve: Technology is constantly evolving, and it can be difficult to keep up with the latest trends and tools.
- Debugging and troubleshooting: It can be difficult to find and fix bugs in a program code.
- Performance optimization: Optimizing the performance of an application, especially for large and complex applications, can be difficult.
- Requirements and priorities: It can be difficult to balance customer or business requirements with technical capabilities.
- Communication and collaboration: Coordinating with other members of the development team and other departments to make sure everyone is on the same page can be complicated.
- Security: It’s important to design applications securely to prevent data loss and leaks, as well as to ensure data integrity.
- Deployment and maintenance: Successfully deploying applications to a production server and keeping them up and running are difficult tasks.
These are just some of the challenges developers can face. It’s important to be flexible and have a positive attitude toward learning and problem solving to be successful as a full stack developer.
A typical SAP developer comes from either the on-premise or cloud world (also known as SAP BTP). Most of the time, his expertise is either in the backend or in the form of SAP Fiori in the frontend. The stereotype of the full stack developer often only exists on paper. For a full stack developer in the SAP environment, it’s almost always about learning the missing technologies. In the ABAP world, developers usually also bring in-depth knowledge in one or more modules, such as finance, material management, or sales and distribution. Many of them have met SAP Fiori as part of an SAP Fiori implementation.
In addition to the classic technical skills, a developer should also know and understand the OData protocol.
Editor’s note: This post has been adapted from a section of the book Full Stack Development with SAP by Rene Glavanovits, Martin Koch, Daniel Krancz, and Maximilian Olzinger.