Toiminnalliset prototyypit ketterässä ohjelmistokehityksessä : hyödyt ja haasteet
Puolitaival, Ville (2022)
Kandidaatintyö
Puolitaival, Ville
2022
School of Engineering Science, Tietotekniikka
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2022080252501
https://urn.fi/URN:NBN:fi-fe2022080252501
Tiivistelmä
Ketterät ohjelmistokehitysmenetelmät kasvattavat jatkuvasti suosiotaan, sillä loppukäyttäjien tarpeiden ja toiminnallisten vaatimusten huomioiminen on entistä tärkeämpää. Toiminnallinen prototypointi on ketterä ohjelmistokehitysmenetelmä, jossa teoreettisen konseptin toimintaa havainnollistetaan käytännössä. Konkreettinen malli mahdollistaa palautteen saamisen ja vaatimusmäärittelyn tarkentamisen suoraan kehityksen yhteydessä.
Tässä työssä selvitetään minkälaisissa projekteissa toiminnallisten prototyyppien kehittäminen on hyödyllistä ja mitä niihin liittyviä haasteita kehitystiimi voi kohdata. Tutkimus toteutetaan kirjallisuuskatsauksen ja tapaustutkimuksen yhdistelmänä. Tapaustutkimuksessa tarkastellaan oikeaa ohjelmistokehitysprojektia, jossa vaatimusmäärittelyä tarkennetaan prototypoinnin avulla.
Prototypointi on hyödyllisintä projekteissa, joissa lähtökohdat ovat epämääräiset, mutta tuotteen lopputuloksesta on olemassa selkeä visio. Prototypointistrategioita on olemassa useita, joita yhdistelemällä prototypointia voidaan soveltaa useisiin erilaisiin tarkoituksiin. Vaikka prototyypit esittävät selkeästi yhtä tai useampaa toiminnallisuutta, haasteena prototypoinnissa voi olla kommunikoinnin vaikeus. Kokonaisuudeltaan puutteellinen prototyyppi voi viestiä epärealistisen kuvan kehitettävän tuotteen edistymisestä. Toiminnallisten prototyyppien kehityksessä täytyisi pyrkiä kertakäyttöisyyteen, sillä ne ovat vain konseptia kuvaavia malleja ja tuotantoon päätyvän koodin tulisi olla mahdollisimman laadukasta. Agile software development methodologies keep rising in popularity as end users’ needs and functional requirements are becoming more important than ever. Functional prototyping is an agile methodology where a theoretical concept is demonstrated in practice. A tangible model makes it possible to gather feedback and refine the requirement specification simultaneously during the development.
This thesis explores what types of software projects benefit the most from the creation of functional prototypes and what challenges the development team may face during the development process. The research is conducted as a combination of a literature review and a case study. The case study looks at a real-world software development project where prototyping is used to improve the requirements specification.
Prototyping is most useful in projects where the starting points are vague, but there is a clear vision of the desired end product. There are several prototyping techniques that, when combined, can be applied to a wide range of projects. Although prototypes can clearly demonstrate one or more functionalities, it possibly arises a problem in communication as the prototypes can convey an unrealistic picture of the progress of the product being developed. Prototypes should only be models that describe a concept and therefore be discarded after use, so the used source code does not end up in the final product.
Tässä työssä selvitetään minkälaisissa projekteissa toiminnallisten prototyyppien kehittäminen on hyödyllistä ja mitä niihin liittyviä haasteita kehitystiimi voi kohdata. Tutkimus toteutetaan kirjallisuuskatsauksen ja tapaustutkimuksen yhdistelmänä. Tapaustutkimuksessa tarkastellaan oikeaa ohjelmistokehitysprojektia, jossa vaatimusmäärittelyä tarkennetaan prototypoinnin avulla.
Prototypointi on hyödyllisintä projekteissa, joissa lähtökohdat ovat epämääräiset, mutta tuotteen lopputuloksesta on olemassa selkeä visio. Prototypointistrategioita on olemassa useita, joita yhdistelemällä prototypointia voidaan soveltaa useisiin erilaisiin tarkoituksiin. Vaikka prototyypit esittävät selkeästi yhtä tai useampaa toiminnallisuutta, haasteena prototypoinnissa voi olla kommunikoinnin vaikeus. Kokonaisuudeltaan puutteellinen prototyyppi voi viestiä epärealistisen kuvan kehitettävän tuotteen edistymisestä. Toiminnallisten prototyyppien kehityksessä täytyisi pyrkiä kertakäyttöisyyteen, sillä ne ovat vain konseptia kuvaavia malleja ja tuotantoon päätyvän koodin tulisi olla mahdollisimman laadukasta.
This thesis explores what types of software projects benefit the most from the creation of functional prototypes and what challenges the development team may face during the development process. The research is conducted as a combination of a literature review and a case study. The case study looks at a real-world software development project where prototyping is used to improve the requirements specification.
Prototyping is most useful in projects where the starting points are vague, but there is a clear vision of the desired end product. There are several prototyping techniques that, when combined, can be applied to a wide range of projects. Although prototypes can clearly demonstrate one or more functionalities, it possibly arises a problem in communication as the prototypes can convey an unrealistic picture of the progress of the product being developed. Prototypes should only be models that describe a concept and therefore be discarded after use, so the used source code does not end up in the final product.
