Understanding the role of Unix shell in software development and developer experience
Loading...
URL
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu |
Master's thesis
Unless otherwise stated, all rights belong to the author. You may download, display and print this publication for Your own personal use. Commercial use is prohibited.
Authors
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, MarkoThesis advisor
Hellas, ArtoKeywords
Unix shell, command-line, developer experience, software development