Understanding the role of Unix shell in software development and developer experience

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Perustieteiden korkeakoulu | Master's thesis

Date

2024-08-20

Department

Major/Subject

Information Networks

Mcode

SCI3047

Degree programme

Master’s Programme in Information Networks

Language

en

Pages

106 + 3

Series

Abstract

While 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.

Vaikka tavanomainen tietokoneen käyttö ei nykyään edellytä komentorivin käyttöä, komentorivi on yhä keskeinen työkalu ohjelmistokehittäjille. Monet uudet ja vanhat työkalut ovat ensisijaisesti komentorivin kautta käytettäviä. Komentorivityökaluja vastaavat graafisen käyttöliittymän (GUI) työkalut eivät aina vastaa kehittäjien tarkoituksiin ja mieltymyksiin. Osa käyttöjärjestelmistä, kuten Linux ja MacOS tarjoavat komentorivinä Unix-komentotulkin (Unix shell, myös Unix-kuori). Tutkimus esittelee Unix-komentotulkin ympäristönä ja ohjelmointikielenä. Lisäksi taustoitetaan kirjallisuuden avulla kehittäjäkokemuksen käsite (DE^x) ja yleisiä tekijöitä komentoriviin sekä ohjelmakoodin ymmärtämiseen liittyen. Unix-komentotulkin käyttöä ohjelmistokehittäjien päivittäisissä työtehtävissä tutkittiin laadullisena tutkimuksena haastattelemalla ja käyttötapausesimerkkejä tutkimalla. Tutkimukseen osallistui seitsemän ohjelmistokehittäjää, jotka olivat kaikki saman suomalaisen yrityksen työntekijöitä. Unix-komentotulkin käytön lisäksi tutkittiin käyttöön liittyviä tunteita ja kokemuksia. Vaikka kehittäjät käyttävät GUI-työkaluja, osa käyttää mieluiten komentoriviä. Kehittäjät kuitenkin kertovat valitsevansa työkalun käyttöliittymän sijaan sen mukaan, miten hyvin ne soveltuvat käyttötarkoitukseen. Usein komentorivityökalut mielletään paremmin tarpeeseen sopiviksi. Yleisiä komentorivin käyttökohteita ovat lähdekoodin versionhallinta Git-työkalun avulla sekä kehitys- ja tuotantoympäristöjen hallinta. Unix-komentotulkin käyttöön liittyvissä tunteissa on paljon vaihtelua. Työkalun valinnan lisäksi myös komentorivin käyttöön suhtaudutaan käytännöllisesti. Monet kokevat komentorivin käytön neutraaliksi -- se on työkalu muiden joukossa. Jotkut eivät pidä komentorivin käytöstä, kun taas osa kokee käytön helpoksi ja mukavaksi. Yhden osallistujan tunteet muuttuivat positiivisemmiksi alkuvaiheen hämmennyksen jälkeen. Toinen osallistuja ilmaisi käyttävänsä komentoriviä lähes kaikkeen. Unix-komentotulkin avulla on mahdollista automatisoida tehtäviä tavoilla, joille ei ole vastinetta GUI-työkaluissa. Komentotulkilla rakennetut automaatiot ovat tärkeässä roolissa kehitysympäristöjen hallinnassa ja CI/CD-putkissa. Unix-komentotulkin ymmärtäminen ja käyttö on edelleen oleellinen osa ohjelmistokehitystyötä.

Description

Supervisor

Nieminen, Marko

Thesis advisor

Hellas, Arto

Keywords

Unix shell, command-line, developer experience, software development

Other note

Citation