Giter Site home page Giter Site logo

kandidaattitutkielma's Introduction

Aine - artikkelit

1) Iterative and Incremental Development: A Brief History

Tulokset

Iteratiivisuus on ollut keskeinen menettelytapa ohjelmistotuotannossa kautta historian. Jopa vesiputousmallin luoneen Winston Roycen pääajatuksena oli iteratiivinen ohjelmistokehitys. Royce kuvaa vesiputousmallin toimivan vain yksinkertaisimpiin projekteihin. Yhdysvaltain hallituksen sopimusmallit sisälsivät tiukkoja rajoituksia ja vaatimuksia. Työssään Royce kuvasi vesiputousmallin lisäksi iteratiivisten käytänteiden toteuttamista tiukkojen rajojen puitteissa.

Monet kriittisissä ohjelmistotuotantoprojekteissa, joissa oli suuri suunnitteluvaihe ennen toteutusta, käytettiin iteraatiivisia menetelmiä. Vesiputousmalli Nähtiin hyvin varhain vääränlaisena mallina ohjelmistokehitykselle. Malli sopi ideaalitilanteeseen, jossa vaatimusmäärittely voitiin tyhjentävästi toteuttaa.

Päätavoitteet

Artikkeli osoittaa, että iteratiivista ohjelmistokehitystä on onnistuneesti toteutettu jo 1950-luvulla monissa ohjelmistoprojekteissa. Seuraavien vuosikymmenten ohjelmistosuunnittelun näkyvimmät suunnannäyttäjät tukivat iteratiivisia ohjelmistokäytänteitä.

Yleinen kuvaus

Artikkeli kuvaa ohjelmistotuotannon kehitystä vesiputousmallista kohti ketteriä kehitysmenetelmiä. Konkreettisten ohjelmistotuotantoprojektien kautta artikkeli pyrkii näyttämään, että ohjelmistokehitys on ollut aina iteratiivista prosessia.

2) Agile Software Development: It’s about Feedback and Change

Tulokset

Ohjelmistotuontannon ketterät kehitysmenetelmät toimivat sopivissa olosuhteissa: vaihtuvat vaatimukset, ei-kriittinen ohjelmisto sekä pieni ja taitava yhdessä toimiva ryhmä. Ketterät menetelmät toimivat parhaiten alle 50 hengen organisaatiossa, joissa kehittäjillä on hyvä yhteys asiakkaisiin ja liiketoiminnan asiantuntijoihin. Menetelmiä voidaan omaksua ja mukauttaa muihin olosuhteisiin, mutta täyden ketterien menetelmien reunaehdot ovat selvät.

Ketteriä käytäntöjä toteutetaan useissa hankkeissa ja organisaatioissa. Monet laatustandardeja (CMM, ISO 9000) toteuttavat organisaatiot ovat omaksuneet ketteriä käytänteitä ja huomanneet niiden lisänneen tehokkuutta ilman sertifionnista luopumista.

Päätavoitteet

Tarkastella mitä ohjelmistotuotannon ketterät kehitysmenetelmät ovat. Tuoda esille, miten perinteisen insinöörityön käytänteissä voidaan omaksua ketteriä menetelmiä.

Yleinen kuvaus

Artikkeli kuvaa keskustelua ketterien menetelmien ympärillä 2000-luvulla ja keskustelun painopistettä vuosikymmenellä. Tuo esiin miten käytänteitä on otettu käyttöön ja miten ne ovat organisaatioissa vaikuttaneet.

3) Agile Software Development: The Business of Innovation

Tulokset

Ohjelmistotuotannon ketterät menetelmät ovat luovaa yhteistyötä painopiste tehokkuudella ja liikkuvuudella.

Päätavoitteet

Määrittää ongelman, johon ohjelmistotuotannon ketterät kehitysmenetelmät pyrkivät vastaamaan. Esittää miksi ketterät kehitysmentelmät parantavat ohjelmistotuotannon käytänteitä.

Yleinen kuvaus

4)Get Ready for Agile Methods, with Care

Tulokset

Todellisia esimerkkejä on jotka vakuuttavat ketterien menetelmien puolesta, joissa on onnistuneesti vastattu muutoksiin. Ja on olemassa epäonnistuneita projekteja, joissa muutoksiin liiallinen sopeutuminen on tullut kalliiksi. Molemmille sekä ketterille menetelmille että suunnitelmaperustaisella lähestymistavalla on omat etunsa. Joissain tapauksissa molempien menetelmien käytänteitä voidaan yhdistää tehokkaasti.

Hyvillä, pienellä määrällä kehittäjiä sekä pienellä projektilla ketterät menetelmät toimivat. Suunnitelmaperustainen kehitys skaalautuu paremmin isoihin projekteihin.

Päätavoitteet

Osoittaa, että suunnitteluperusteisella ohjelmistotuotantomentelmillä on tarvetta edelleen tarvetta.

Yleinen kuvaus

Ketterät kehitysmenetelmät vaativat osaavan kehittäjätiimin. Kaikki kehittäjät eivät voi tilastollisesti huomioiden osaavia, joten ohjelmistokehityksessä on edelleen tarvetta suunnittelulle. Ketterät kehitymenetelmät luottavat kehittäjien ja tiimin hiljaiseen tietoon, sen sjaan että dokumentoitaisiin suunnitelmaa. Kehittäjät saattavat tehdä peruuttamattomia arkitehtuurisia päätöksiä perustuen vajavaiseen tietoon. Suunnitelmaperustainen kehitys vähentää riskiä.

5) Agile Software Development: The People Factor

Tulokset

Ketterässä kehityksessä kantavana ajatuksena on kehittäjätiimin kyky vastata muutoksiin: helpottamalla tiedonsiirtoa ihmisten välillä sekä pienentämällä aikaa päätöksenteon ja toteutuksen välillä. Tämä saavutetaan tekemällä liiketoimialueen asiantuntijoista osa kehitystiimiä ja työskentelemällä inkrementaalisesti. Ketterän kehitystiimin yksilöiden taito on kriittinen tekijä projektien onnistumiselle. Jos ihmiset ovat taitavia, he voivat saavuttaa tavoitteensa prosesseista riippumatta. Taitamattomien riittämättömyyttä ei mikään prosessi voi korvata.

Päätavoitteet

Osoittaa, että hmiset yhdessä saavuttavat, hyvällä viestinnän ja vuorovaikutuksen avulla, enemmän kuin yksilöinä. Prosessit luovat puitteet ryhmille ja yksilöille, mutta prosessi ei itsessään korvaa pätevyyden puutetta. Pätevyys sen sijaan voi ylittää prosessien aiheuttamat vaikeudet.

Yleinen kuvaus

Ketterä kehitys keskittyy yksilön kykyyn ja taitoon. Prosesseja tulee muokata yksilöiden ja tiimien mukaan.

6) Empirical studies of agile software development: A systematic review

Tulokset

Päätavoitteet

Yleinen kuvaus

7) Selecting a Project’s Methodology

Tulokset

Suuri projekti tarvitsee paljon koordinointia. Mitä suurempi määrä eri rooleja kehitystiimissä on sitä suurempi menetelmä tarvitaan. Kriittinen järjestelmä, jonka havaitsemattomat viat tuottavat suurta vahinkoa, tarvitsee enemmän suunnittelua tietyillä työkaluilla sekä prosesseilla.

Raskaat tuotantomentelmät laskevat tuottavuutta. Ongelman ratkaisuun tarvitaan vähemmän ihmisiä kevyemmillä menetelmillä. Ihmisten määrä rajoittaa ratkaistavien ongelmien kokoa. Iso kehitystiimi kykenee ratkaisemaan raskailla menetelmillä suuria ongelmia. Kun ongelman koko muuttuu, niin erillaisten menetelmien yhdistelmät ovat optimaalisia. Ongelman laajuuden tai projektin alussa tarvittavan kehittäjätiimin minimikoon määrittäminen on vaikeaa.

Päätavoitteet

Artikkeli pyrkii kuvaamaan puitteet ohjelmistotuotantomenetelmien eriyttämiseksi ja periaatteita menetelmien valitsemiseksi.

Yleinen kuvaus

Artikkeli esittelee ohjelmistotuotannossa esiintyviä muuttujia, joiden perusteella voidaan kategorisoida ohjemistoprojekteja ja selvittää niille sopivimmat mentelmät.

8) Embracing Change with Extreme Programming

Tulokset

XP (extreme programming) muuttaa perinteistä ohjelmistotuotannon prossesseja. XP pyrkii vähentämään ohjelmiston muuttamisen kustannuksia luonnnostelemalla, analysoimalla ja suunnittelemalla koko kehitysprosessin ajan.

Päätavoitteet

Yleinen kuvaus

Artikkeli kuvaa XP:n (extreme programming) käytänteitä ja miten ne vastaavat ohjelmistotuotannon ongelmiin.

9) Is Internet-Speed Software Development Different?

Tulokset

Kustannukset ja laatu eivät ole internet-ohjelmistojen kehitystä ohjaavia määreitä. Nopeus on tärkein tuotantoa ohjaava arvo. Laatuvaatimukset ovat neuvoteltavissa ja muuttuvat toiminnallisuuden ja tuotteen saatavuuden mukaan. Projektihallinta on jatkuvaa operointia ilman alkua ja loppua. Ohjelmistokehityksen ongelmat ovat pilkottu pieniksi tehtäviksi, jotka esitellään pieninä räätälöityinä tuotteina. Ylläpitö on yhdistetty "vaatimusmäärittely-toteutus-julkaisu"-kiertoon tuoden uusia toiminnallisuuksia.

Päätavoitteet

Yleinen kuvaus

10) A Spiral Model of Software Development and Enhancement

Tulokset

Ohjelmistuotannon riskeihin perustuva spiraalimalli on mukautuvampi erilaisiin ohjelmistotuotantoprojekteihin kun vesiputousmalli tai koodiin perustuva menetelmä. Se on erityisen käyttökelpoinen laajoihin ja monimutkaisiin ohjelmistoihin.

Riskiin perustuva lähestymistapa mahdollistaa spriraalimallin mukautumaan yhdistelemällä spesifiointia, prototyypitystä, simulointia tai muita ohjelmistokehityksen menetelmiä.

Päätavoitteet

Perinteiset ohjelmistoprosessit ehkäisevät tehokkaampia ohjelmistotuotantomentelmiä. Artikkeli esittelee spiraalimallin ohjelmistoprosessimalliksi. Spiraalimalli tärkein tunnusmerkki on riskiin perustuva lähestymistapa, eikä niinkään dokumentointiin.

Yleinen kuvaus

Vesiputousmallin pääasiallinen ongelma on loppuun asti laadittujen asiakirjojen Korostuminen. Laaditut dokumentit ovat merkkinä vaatimusmäärittelyn ja suunnitteluvaiheen valmistumiselle. Vaikka joillekin ohjelmistoille vesiputousmalli on tehokkain tapa, niin interaktiivisille ja loppukäyttäjille suunnitelluille ohjelmistoille vesiputousmalli ei toimi hyvin.

11)The Agile Manifesto

Tulokset

Asiakkaita tyydyttääkseen on toimitettava toimivaa ohjelmistoa mahdollisimman aikaisin ja jatkuvasti. Kasvava tulevaisuuden ennakoimattomuus on nykyisen talouden haastellisimpia näkökohtia. Muuttuvat vaatimukset ovat toivottavia ja ne on käännettävä asiakkaan kilpailueduksi.

Päätavoitteet

Artikkeli formalisoi useita kevyitä ohjelmistotuotannon kevyitä menetelmiä.

Yleinen kuvaus

Artikkelissa määritellään kevyiden ohjelmistotuotantomenetelmien periaatteita ja arvoja.

12) On the effectiveness of the test-first approach to programming

Tulokset

TDD-mentelmää käyttävät opiskelijat kirjoittivat keskimäärin enemmän testejä sekä olivat tuottavampia.

Päätavoitteet

Esitellä formaali tutkimus TDD:n vahvuuksista ja heikkouksista.

Yleinen kuvaus

Artikkelissa kuvataan kokeilua TDD:n (Test-Driven Development) kehitysmenetelmän arvioimiseksi: TDD:ssä ohjelmoijat kirjoittaa toiminnallisuuden testit ennen vastaavaa varsinaista toiminnallisuutta. Koe suoritettiin opiskelijoilla. Molemmat testiryhmät käyttivät iteratiivista prosessia lisäämällä uusia toiminnallisuuksia sekä tekemällä regressiotestejä näille.

13) Coordination in Software development

Tulokset

Ohjelmistokehitys vaatii viestintää eri toimintojen välillä. Hallinnollisia sekä teknisiä ongelmia tulee esiin jatkuvasti. Jotkin ongelmat vaativat tieto ja yhteistyötä toisilta ihmisiltä. Henkilökohtainen viestintä on tärkeää menestymiselle, mutta saattaa olla liian kallista, lyhytaikaista tai paikallista ollakseen tehokasta. Ihmistenvälistä viestintää pitää tehostaa ja tehdä siitä vaikuttavampaa.

Päätavoitteet

Yleinen kuvaus

Suurten ohjelmistotuotantoprojektien aikaansaaminen johtaa työn erikoistumiseen ja jakautumiseen. Organisaatiossa tämä johtaa yhteenliittyvien toimijoiden lokerointiin maantieteellisesti ja sosiaalisesti erillisiin alaorganisaatioihin. Tämä luo esteitä ja vähentää halua jakaa tietoa sekä oppia kollegoilta. Työn osastoiminen isossa organisaatiossa vähentää tarpeettoman tiedon määrää, mutta luo koordinointiin liittyviä ongelmia.

14) Managing the development of large software

Tulokset

Ohjelmistotuotannon hallinassa on vaadittava paljon dokumentointia. Ohjelmistontuotannnon hallinta ei ole mahdollista ilman kattavaa dokumentointia. Hyväksyttävä kirjallinen kuvaus pakottaa yksiselitteiseen mielipiteeseen ja tarjoaa konkreettisen todisteen valmistumisesta.

Päätavoitteet

Kuvata suuriin ohjelmistojärjestelmien kehitykseen sopivan ohjelmistotuotantomenetelmän.

Yleinen kuvaus

Artikkeli kuvaa ohjelmistotuotannossa käytettävän vesiputousmallin.

15) The new methodology

Tulokset

Kevyet ohjelmistotuotantomenetelmät eivät sovi kaikkiin projekteihin. Tämän päivän yleisin ohjelmistotuotannnon lähestymistapa on: ensin koodaa ja sitten korjaa (code and fix). Kevyiden ohjelmistotuotantomenetelmien käyttöönotto on helpompaa kuin raskaiden menetelmien ohjelmistoprojektien läpiviemiseen. Helpompia menetelmiä noudatetaan todennäköisemmin jos organisaatiossa ei olla aikaisemmin noudatettu mitään menetelmiä.

Kevyiden ohjelmistotuotantomenetelmien sopivuudesta suurempiin projekteihin ei ole riittävästi näyttöä.

Päätavoitteet

Selvittää milloin ohjelmistotuotantoprojekteissa on välttämätöntä käyttää kevyempiä ohjelmistotuotantomenetelmiä ja milloin raskaammat menetelmät ova sopivampia.

Yleinen kuvaus

Artikkelissa kuvataan syitä kevyille ohjelmistotuotantomenetelmille keskittyen niiden mukautuvaan luonteeseen ja ihmiskeskeiseen lähestymistapaan.

kandidaattitutkielma's People

Contributors

jarlerik avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.