In this blog post
Having been a part of application development for the past several years now, I have been fortunate to experience the transition from traditional application development to application engineering. Covering the entire spectrum of all application usage devices, from a desktop to a smartwatch, is an ART.
This artistic journey starts with defining the right user experience (UX). UX has become a necessity than a luxury. Superior experience for the end consumer (B2C) of an application has become the default expectation. The industry is also focusing on building simple and intuitive designs for B2B/enterprise applications. It not only increases application usage but also helps in reducing operation and training costs for enterprise applications. The complete UX journey right from user research to fine-tuned visual design and the right approach is explained by our UX team – UNBOX. You may read about it here – https://www.gslab.com/user-experience-design
An application engineer is more than just an engineer. He can be considered a translator of customer wants. Designing/re-designing future ready micro-services based applications is a major part of application engineering. Becoming a part of the user research conducted by UX team, helps application architects to design systems better. Utilizing not only customer inputs/needs but also sales information such as number of (concurrent) users, no. of licenses, roles, targeted region, and devices (desktops, mobiles etc.) help in designing a seamless system. In a nutshell, application engineers fulfill all the client requirements by designing an apt application. Isn’t that an ART in itself?
There are several requirements/situations to be handled by an architect. The following is an inexhaustive list:
- Working on/with existing applications and enhancing them to next level OR application modernization
- Hybrid approach of designing only some part of application (tough challenge!)
- Designing based on a completely new challenge (dream of all architects)
- Designing system for utilizing legacy system
Application development is like filling in colors to a pencil sketch. There are several approaches to application development. I will not go into the details of technology/framework selections. There are endless possibilities of defining the approach and design of an application. Multiple layers of the application are developed. It starts from the core layer of backend (database and data access), business logic (middleware), frontend and then finally presentation layer. All the layers are equally important. As per the architect’s design, the developer chooses the elements like the right DB, the right framework, the library, etc.
Next level skills are required to deal with user interface. The simple expectations are “users should feel like using application!” The UX team does its job of carving out the visual design. Now, it is the frontend developer’s skill to ensure it is available for users to experience it. This is the final touch by the team of artists. Numerous frameworks/libraries/no code/low code platforms are available to achieve this. The challenge is to ensure that it is reaches all targeted users across devices – desktops, laptops, iPad/tablets, mobiles, watch screens, etc.
Mobile-first approach. Ah! the challenge of enabling users to use the application on the move. This requires understanding a different mentality and accepting the fact of narrowed-down user interface and less resources (memory, network etc). It like creating miniature art. Mobile developers play an important role in giving handpicked features in the palm of your hands for immediate and quick consumption. This art is achieved by getting the privilege to choose between native, cross platform, hybrid development. Several mobile applications are enabled to use core important features such as AR/VR, IoT, to bridge between reality and dream.
Ensuring Quality of application is done by the iterative process of manual and automated verification. Application engineering constitutes of not just thinking of the visible/functional aspects of application but also to the invisible but important non-functional aspects. The thought process of identifying user acceptance testing (UAT) scenarios by getting into the shoes of the user is a must-have skill indeed.
Deployments and DevOps skills are to ensure that curated art is available with you forever! Application engineering stands out by choosing/suggesting the right approach between on-prem/cloud options. Several crucial factors are to be discussed and considered while designing the deployment architecture. Application availability as and when required is well thought of and implemented by the DevOps engineer. Details are covered in multiple articles/discussion by our DevOps team. You may read about it here – https://www.gslab.com/cloud/cloud-devops/
Documentation is done to retain knowledge by detailing out the entire application at various stages like code level document, product document, user stories, use cases, user guide etc.
Support/Maintenance is done by forming support teams and enabling them with all documentation details and tools to handle the support of the product.
These are some of the major stages in application engineering, just like the art of building an unforgettable masterpiece and making it available to all those who are willing to be a part of it.