Value of internal tool development to software delivery projects
Krutsin, Janne (2021)
Diplomityö
Krutsin, Janne
2021
School of Engineering Science, Tuotantotalous
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2021120959900
https://urn.fi/URN:NBN:fi-fe2021120959900
Tiivistelmä
Despite the advancements in technologies and overall processing power, many real-world tasks are still bottlenecked by the lack of appropriate tooling. This lack of tooling leads to more manual work and slower project progress. However, some tools can be created by software delivery projects for specific use cases to achieve better efficiency. This thesis focuses on software-based internal tools in delivery projects. The objectives are to define the term internal tools, examine the prerequisites and effort required for their development, and investigate their value to software delivery projects.
Software-based internal tools can be defined as auxiliary tools developed by employees inside an organization for specific internal use cases without productization purposes, internal or external. Unmodified third-party tools and open-source projects, simple derivatives of third-party tools or open-source projects, and software languages, libraries, frameworks, or protocols are not internal tools. Internal tools are innovations, and as such, need to be functional and implementable. Included case studies revealed that the benefits of internal tools are usually derived from repetitive use cases or use cases that enable the delivery project. The existence of these benefits is also a prerequisite for internal tool development. The tool's scope will determine the effort its development requires, which is restricted by the delivery project's limits.
The resources an internal tool saves or generates for the delivery project will determine its value. Value can be either calculated from known variables or estimated. Estimating the internal tool's value is done by comparing its benefits to the effort used for the development. This report proposes the internal tool value estimation matrix to help with the value estimation of an internal tool. The proposed matrix categorizes internal tools into high- and low-value tools in addition to a middle section that indicates possible problems with the tool. Teknologian ja laskentatehon kehityksistä huolimatta useita reaalimaailman tehtäviä rajoittaa edelleen sopivien työkalujen puuttuminen. Työkalujen puuttuminen lisää manuaalisen työn määrää ja hidastaa projekteja. Joidenkin käyttötapauskohtaisten työkalujen luominen onnistuu kuitenkin projektitiimin jäsenien toimesta ohjelmisto-toimitusprojektin toiminnan tehostamiseksi. Tämä työ keskittyy ohjelmistopohjaisten sisäisten työkalujen kehittämiseen ohjelmistotoimitusprojekteissa. Työn tarkoituksena on määritellä termi sisäiset työkalut, tarkastella edellytyksiä ja vaadittavaa työmäärää sisäisten työkalujen kehitykselle sekä tutkia niiden arvoa ohjelmistotoimitusprojekteille.
Ohjelmistopohjaiset sisäiset työkalut voidaan määritellä avustaviksi työkaluiksi, joita kehitetään organisaation sisäisten työntekijöiden toimesta erityistä käyttötarkoitusta varten. Sisäisiä työkaluja ei kehitetä ulkoisiksi eikä sisäisiksi tuotteiksi. Pelkät muokkaamattomat kolmannen osapuolen kehittämät työkalut, avoimen lähdekoodin projektit, yksinkertaiset kolmannen osapuolen työkalujen tai avointen lähdekoodiprojektien johdannaiset, ohjelmointikielet, koodikirjastot, viitekehykset tai protokollat eivät ole sisäisiä työkaluja. Sisäiset työkalut ovat innovaatioita ja siten niiden on oltava sekä implementoitavissa että funktionaalisia. Työn tapaustutkimukset osoittavat, että sisäisen työkalun hyödyt voidaan yleensä johtaa toistuvista käyttötapauksista tai käyttötapauksista, jotka mahdollistavat ohjelmistotoimitusprojektin. Käyttötapausten hyödyllisyys on myös sisäisten työkalujen kehityksen edellytys. Työkalun toiminta-ala määrää sen kehitykseen vaadittavat resurssit. Näiden resurssien määrää rajoittavat toimitusprojektin asettamat rajoitukset.
Sisäisen työkalun säästämät ja tuottamat resurssit määrittävät sen arvon. Työkalun arvo voidaan laskea tunnettujen muuttujien perusteella tai arvioida. Työkalun arvoa arvioidaan vertaamalla sen hyötyjä kehitystyön vaatimiin resursseihin. Tämä työ esittelee sisäisten työkalujen arvon arviointimatriisin helpottamaan arvon määrittelyä. Esitelty matriisi kategorisoi sisäiset työkalut projektin kannalta arvokkaisiin, vähäarvoisiin ja mahdollisia ongelmia sisältäviin työkaluihin.
Software-based internal tools can be defined as auxiliary tools developed by employees inside an organization for specific internal use cases without productization purposes, internal or external. Unmodified third-party tools and open-source projects, simple derivatives of third-party tools or open-source projects, and software languages, libraries, frameworks, or protocols are not internal tools. Internal tools are innovations, and as such, need to be functional and implementable. Included case studies revealed that the benefits of internal tools are usually derived from repetitive use cases or use cases that enable the delivery project. The existence of these benefits is also a prerequisite for internal tool development. The tool's scope will determine the effort its development requires, which is restricted by the delivery project's limits.
The resources an internal tool saves or generates for the delivery project will determine its value. Value can be either calculated from known variables or estimated. Estimating the internal tool's value is done by comparing its benefits to the effort used for the development. This report proposes the internal tool value estimation matrix to help with the value estimation of an internal tool. The proposed matrix categorizes internal tools into high- and low-value tools in addition to a middle section that indicates possible problems with the tool.
Ohjelmistopohjaiset sisäiset työkalut voidaan määritellä avustaviksi työkaluiksi, joita kehitetään organisaation sisäisten työntekijöiden toimesta erityistä käyttötarkoitusta varten. Sisäisiä työkaluja ei kehitetä ulkoisiksi eikä sisäisiksi tuotteiksi. Pelkät muokkaamattomat kolmannen osapuolen kehittämät työkalut, avoimen lähdekoodin projektit, yksinkertaiset kolmannen osapuolen työkalujen tai avointen lähdekoodiprojektien johdannaiset, ohjelmointikielet, koodikirjastot, viitekehykset tai protokollat eivät ole sisäisiä työkaluja. Sisäiset työkalut ovat innovaatioita ja siten niiden on oltava sekä implementoitavissa että funktionaalisia. Työn tapaustutkimukset osoittavat, että sisäisen työkalun hyödyt voidaan yleensä johtaa toistuvista käyttötapauksista tai käyttötapauksista, jotka mahdollistavat ohjelmistotoimitusprojektin. Käyttötapausten hyödyllisyys on myös sisäisten työkalujen kehityksen edellytys. Työkalun toiminta-ala määrää sen kehitykseen vaadittavat resurssit. Näiden resurssien määrää rajoittavat toimitusprojektin asettamat rajoitukset.
Sisäisen työkalun säästämät ja tuottamat resurssit määrittävät sen arvon. Työkalun arvo voidaan laskea tunnettujen muuttujien perusteella tai arvioida. Työkalun arvoa arvioidaan vertaamalla sen hyötyjä kehitystyön vaatimiin resursseihin. Tämä työ esittelee sisäisten työkalujen arvon arviointimatriisin helpottamaan arvon määrittelyä. Esitelty matriisi kategorisoi sisäiset työkalut projektin kannalta arvokkaisiin, vähäarvoisiin ja mahdollisia ongelmia sisältäviin työkaluihin.