Treffer: Increasing Full Stack Development Productivity via Technology Selection

Title:
Increasing Full Stack Development Productivity via Technology Selection
Authors:
Publication Year:
2021
Document Type:
other/unknown material
Language:
English
Rights:
undefined
Accession Number:
edsbas.F2E36554
Database:
BASE

Weitere Informationen

Building web application prototypes is a common project type for consulting companies. Developers can have hard time selecting the best technologies from dozens of options. The primary objective was to find backend and frontend technologies to improve the productivity of full stack development. The secondary goals were determining the extent of features available in modern frontend and backend technologies and studying which are the most significant features for technology evaluation. Research papers on software development productivity were analyzed to find factors suitable for guiding the technology selection process. The most popular programming languages and their web frameworks and libraries were collected for comparative analysis. Technologies’ features were gathered from official documentation websites to gain a good understanding of the spectrum of features. Finally, technologies were compared by how well each feature was supported. Reuse, adequate documentation, automatization and community support were identified to be the few productivity factors relevant for technology selection process. JavaScript, TypeScript, Python, C#, Java and PHP were found to be the most popular programming languages for web development. Feature comparison revealed backend technologies having great differences in the available features. Especially request binding and the ability to automatically infer OpenAPI documentation were detected to reduce manual repetitive work. ASP.NET Core, NestJS, Laravel, FastAPI and Spring were found to be the most feature rich frameworks for different programming languages. Frontend technologies were found to have only minor differences. Comparison results can be used to evaluate technologies for new full stack development projects today. The feature evaluation process can also be utilized in the future to compare how well new technologies measure up with prior ones.