Self Service Tools and its Impact on Business Efficiency: Analysis of Knowledge Retention Strategies in Engineering Teams and Impact on Software Maintenance

Author:
Khan, Fardeen, School of Engineering and Applied Science, University of Virginia
Advisor:
JACQUES, RICHARD, EN-Engineering and Society, University of Virginia
Abstract:

The compilation of my technical and STS papers is related through my experiences at various internships as a student. The technical paper covers the practices I followed whilst working as a Software Engineer Intern in order to create a tool that allows Marketing and Analyst specialists to track the delivery status of messages between them and their respective banking customers. My STS paper iterates over the importance of emphasizing knowledge retention techniques in different engineering teams to minimize the loss of knowledge when a team member of an engineering team leaves the team. This is a common issue I had seen in various companies I had interned at. Minimizing these effects will allow for companies to in turn minimize the productivity losses by companies and allow seamless transitions between different personnel on a team.


My technical project consisted of working with a team of six other interns to produce a tool used for internal banking employees to track the status of their messages between them and their customers, such as the status of a promotional offer email. Using this tool, in the event of a failure to deliver a message to the customer, the cause of a failure and the progress the message made in its path to the customer will be easier to see and troubleshoot. My team accomplished this through each of us selecting a few areas of the project to focus on. My specific focus for this project was working on the API to fetch and update the payload information pertaining to status of the message, such as its creation time, language, delivery status, error codes, and time of last update. I was also responsible for configuring cloud infrastructure for hosting the tool once it is deployed. In the process of creating the API, I had to implement a way for a front-end app to communicate with the Java Spring Boot REST framework in order to retrieve the necessary information to be read by the front-end. The process for configuring the cloud infrastructure first began with creating specific AWS roles for the application when deployed onto the messaging services AWS domain. The purpose of these roles is to define what information and services the tool does and does not have access to for security and in order to keep the services decoupled from one another. The app was also containerized and run on a secured version of Alpine Linux using Docker and deployed onto AWS ECS Fargate. This allowed for convenience when it comes to scaling up and down the compute usage of the containers. Along with the resiliency services provided by AWS Cross-Region Replication and traffic routing with AWS Route 53, we created a reliable tool for providing users with statuses of their messages.

My STS Research explores various techniques that may be used to combat the negative effects of knowledge loss with changes in the makeup of an engineering team, especially in the maintenance phase of a software product. When an engineer leaves a team, they take with them valuable information about the team’s project, especially if they are a core developer on the team. A few of the methods found to be effective were the implementation of management frameworks emphasizing short, iterative and incremental work periods such as Agile and Asynchronous frameworks, following documentation and communication practices set by opensource projects such as Linux and TensorFlow, and using a task assignment style known as “knowledge diffusion”, where the engineers are assigned tasks they are unfamiliar with, with the expectation for them to learn more about that area. Following such practices will hopefully not only allow for more efficiency in an engineering team, but also create a method for engineers to grow and learn technically.

Degree:
BS (Bachelor of Science)
Keywords:
self service tool efficiency, knowledge retention in engineering teams, software maintainence
Language:
English
Rights:
All rights reserved (no additional license for public reuse)
Issued Date:
2024/05/10