Browsing by Author "Rapeli, Sampo"
Now showing 1 - 2 of 2
- Results Per Page
- Sort Options
- Understanding the role of Unix shell in software development and developer experience
Perustieteiden korkeakoulu | Master's thesis(2024-08-20) Rapeli, SampoWhile regular computer users do not have to use the command-line interface (CLI), it remains a vital tool for software developers. Many tools, including newly developed ones, are primarily available for the CLI. Equivalent graphical user interface (GUI) based tools are not always sufficient or preferred by developers. Some operating systems like Linux and MacOS use the Unix shell as their CLI. The basics of the Unix shell as an environment and a programming language are covered in the study. Furthermore, the study contains literature background on developer experience (DE^x) and general factors related to CLI tools and code comprehension. To find out how professional software developers utilize the Unix shell in their day-to-day work tasks, a contextual inquiry based qualitative study was performed. Seven software developers from a small Finnish company were interviewed and asked to provide examples of their shell usage. In addition to actual use cases, DE^x and emotions related to shell usage were examined. Although GUI based tools are used by many developers, the CLI is still preferred by some. The developers reported that they use the tool that is best fit for a certain purpose, which in various situations turns out to be a CLI tool. Common shell use cases include version control system (VCS) usage with Git, and managing development and production setups. Emotions towards shell usage varied greatly. As with CLI and GUI tool selection, most participants took a pragmatic approach to shell usage, and it did not feel especially good or bad--the shell is a tool among others. Some disliked shell usage, while many reported a sense of ease and comfort regarding the Unix shell. A participant's feelings changed towards more positive after initial negative or confusing experiences. Another participant reported that he does almost everything in the shell. The Unix shell provides easy automation possibilities beyond what GUIs have to offer. Such automation plays an important role in development environment management and continuous integration and continuous delivery (CI/CD) pipelines. Using and understanding the Unix shell remains a crucial aspect of software development. - Visualisointivalinnat verkkomuotoisten tietorakenteiden havaitsemisessa
Perustieteiden korkeakoulu | Bachelor's thesis(2020-12-08) Rapeli, Sampo