169 resultados para agile methods
em Doria (National Library of Finland DSpace Services) - National Library of Finland, Finland
Resumo:
Agile software development methods are attempting to provide an answer to the software development industry's need of lighter weight, more agile processes that offer the possibility to react to changes during the software development process. The objective of this thesis is to analyze and experiment the possibility of using agile methods or practices also in small software projects, even in projects containing only one developer. In the practical part of the thesis a small software project was executed with some agile methods and practices that in the theoretical part of the thesis were found possible to be applied to the project. In the project a Bluetooth proxy application that is run in the S60 smartphone platform and PC was developed further to contain some new features. As a result it was found that certain agile practices can be useful even in the very small projects. The selection of the suitable practices depends on the project and the size of the project team.
Resumo:
Agile coaching of a project team is one way to aid learning of the agile methods. The objective of this thesis is to present the agile coaching plan and to follow how complying the plan affects to the project teams. Furthermore, the agile methods are followed how they work in the projects. Two projects are used to help the research. From the thesis point of view, the task for the first project is to coach the project team and two new coaches. The task for the second project is also to coach the project team, but this time so that one of the new coaches acts as the coach. The agile methods Scrum process and Extreme programming are utilized by the projects. In the latter, the test driven development, continuous integration and pair programming are concentrated more precisely. The results of the work are based on the observations from the projects and the analysis derived from the observations. The results are divided to the effects of the coaching and to functionality of the agile methods in the projects. Because of the small sample set, the results are directional. The presented plan, to coach the agile methods, needs developing, but the results of the functionality of the agile methods are encouraging.
Resumo:
Currently there is a vogue for Agile Software Development methods and many software development organizations have already implemented or they are planning to implement agile methods. Objective of this thesis is to define how agile software development methods are implemented in a small organization. Agile methods covered in this thesis are Scrum and XP. From both methods the key practices are analysed and compared to waterfall method. This thesis also defines implementation strategy and actions how agile methods are implemented in a small organization. In practice organization must prepare well and all needed meters are defined before the implementation starts. In this work three different sample projects are introduced where agile methods were implemented. Experiences from these projects were encouraging although sample set of projects were too small to get trustworthy results.
Resumo:
The aim of this master’s thesis is to study how Agile method (Scrum) and open source software are utilized to produce software for a flagship product in a complex production environment. The empirical case and the used artefacts are taken from the Nokia MeeGo N9 product program, and from the related software program, called as the Harmattan. The single research case is analysed by using a qualitative method. The Grounded Theory principles are utilized, first, to find out all the related concepts from artefacts. Second, these concepts are analysed, and finally categorized to a core category and six supported categories. The result is formulated as the operation of software practices conceivable in circumstances, where the accountable software development teams and related context accepts a open source software nature as a part of business vision and the whole organization supports the Agile methods.
Resumo:
In today’s world because of the rapid advancement in the field of technology and business, the requirements are not clear, and they are changing continuously in the development process. Due to those changes in the requirements the software development becomes very difficult. Use of traditional software development methods such as waterfall method is not a good option, as the traditional software development methods are not flexible to requirements and the software can be late and over budget. For developing high quality software that satisfies the customer, the organizations can use software development methods, such as agile methods which are flexible to change requirements at any stage in the development process. The agile methods are iterative and incremental methods that can accelerate the delivery of the initial business values through the continuous planning and feedback, and there is close communication between the customer and developers. The main purpose of the current thesis is to find out the problems in traditional software development and to show how agile methods reduced those problems in software development. The study also focuses the different success factors of agile methods, the success rate of agile projects and comparison between traditional and agile software development.
Resumo:
Agile software development has grown in popularity starting from the agile manifesto declared in 2001. However there is a strong belief that the agile methods are not suitable for embedded, critical or real-time software development, even though multiple studies and cases show differently. This thesis will present a custom agile process that can be used in embedded software development. The reasons for presumed unfitness of agile methods in embedded software development have mainly based on the feeling of these methods providing no real control, no strict discipline and less rigor engineering practices. One starting point is to provide a light process with disciplined approach to the embedded software development. Agile software development has gained popularity due to the fact that there are still big issues in software development as a whole. Projects fail due to schedule slips, budget surpassing or failing to meet the business needs. This does not change when talking about embedded software development. These issues are still valid, with multiple new ones rising from the quite complex and hard domain the embedded software developers work in. These issues are another starting point for this thesis. The thesis is based heavily on Feature Driven Development, a software development methodology that can be seen as a runner up to the most popular agile methodologies. The FDD as such is quite process oriented and is lacking few practices considered commonly as extremely important in agile development methodologies. In order for FDD to gain acceptance in the software development community it needs to be modified and enhanced. This thesis presents an improved custom agile process that can be used in embedded software development projects with size varying from 10 to 500 persons. This process is based on Feature Driven Development and by suitable parts to Extreme Programming, Scrum and Agile Modeling. Finally this thesis will present how the new process responds to the common issues in the embedded software development. The process of creating the new process is evaluated at the retrospective and guidelines for such process creation work are introduced. These emphasize the agility also in the process development through early and frequent deliveries and the team work needed to create suitable process.
Resumo:
Dagens programvaruindustri står inför alltmer komplicerade utmaningar i en värld där programvara är nästan allstädes närvarande i våra dagliga liv. Konsumenten vill ha produkter som är pålitliga, innovativa och rika i funktionalitet, men samtidigt också förmånliga. Utmaningen för oss inom IT-industrin är att skapa mer komplexa, innovativa lösningar till en lägre kostnad. Detta är en av orsakerna till att processförbättring som forskningsområde inte har minskat i betydelse. IT-proffs ställer sig frågan: “Hur håller vi våra löften till våra kunder, samtidigt som vi minimerar vår risk och ökar vår kvalitet och produktivitet?” Inom processförbättringsområdet finns det olika tillvägagångssätt. Traditionella processförbättringsmetoder för programvara som CMMI och SPICE fokuserar på kvalitets- och riskaspekten hos förbättringsprocessen. Mer lättviktiga metoder som t.ex. lättrörliga metoder (agile methods) och Lean-metoder fokuserar på att hålla löften och förbättra produktiviteten genom att minimera slöseri inom utvecklingsprocessen. Forskningen som presenteras i denna avhandling utfördes med ett specifikt mål framför ögonen: att förbättra kostnadseffektiviteten i arbetsmetoderna utan att kompromissa med kvaliteten. Den utmaningen attackerades från tre olika vinklar. För det första förbättras arbetsmetoderna genom att man introducerar lättrörliga metoder. För det andra bibehålls kvaliteten genom att man använder mätmetoder på produktnivå. För det tredje förbättras kunskapsspridningen inom stora företag genom metoder som sätter samarbete i centrum. Rörelsen bakom lättrörliga arbetsmetoder växte fram under 90-talet som en reaktion på de orealistiska krav som den tidigare förhärskande vattenfallsmetoden ställde på IT-branschen. Programutveckling är en kreativ process och skiljer sig från annan industri i det att den största delen av det dagliga arbetet går ut på att skapa något nytt som inte har funnits tidigare. Varje programutvecklare måste vara expert på sitt område och använder en stor del av sin arbetsdag till att skapa lösningar på problem som hon aldrig tidigare har löst. Trots att detta har varit ett välkänt faktum redan i många decennier, styrs ändå många programvaruprojekt som om de vore produktionslinjer i fabriker. Ett av målen för rörelsen bakom lättrörliga metoder är att lyfta fram just denna diskrepans mellan programutvecklingens innersta natur och sättet på vilket programvaruprojekt styrs. Lättrörliga arbetsmetoder har visat sig fungera väl i de sammanhang de skapades för, dvs. små, samlokaliserade team som jobbar i nära samarbete med en engagerad kund. I andra sammanhang, och speciellt i stora, geografiskt utspridda företag, är det mera utmanande att införa lättrörliga metoder. Vi har nalkats utmaningen genom att införa lättrörliga metoder med hjälp av pilotprojekt. Detta har två klara fördelar. För det första kan man inkrementellt samla kunskap om metoderna och deras samverkan med sammanhanget i fråga. På så sätt kan man lättare utveckla och anpassa metoderna till de specifika krav som sammanhanget ställer. För det andra kan man lättare överbrygga motstånd mot förändring genom att introducera kulturella förändringar varsamt och genom att målgruppen får direkt förstahandskontakt med de nya metoderna. Relevanta mätmetoder för produkter kan hjälpa programvaruutvecklingsteam att förbättra sina arbetsmetoder. När det gäller team som jobbar med lättrörliga och Lean-metoder kan en bra uppsättning mätmetoder vara avgörande för beslutsfattandet när man prioriterar listan över uppgifter som ska göras. Vårt fokus har legat på att stöda lättrörliga och Lean-team med interna produktmätmetoder för beslutsstöd gällande så kallad omfaktorering, dvs. kontinuerlig kvalitetsförbättring av programmets kod och design. Det kan vara svårt att ta ett beslut att omfaktorera, speciellt för lättrörliga och Lean-team, eftersom de förväntas kunna rättfärdiga sina prioriteter i termer av affärsvärde. Vi föreslår ett sätt att mäta designkvaliteten hos system som har utvecklats med hjälp av det så kallade modelldrivna paradigmet. Vi konstruerar även ett sätt att integrera denna mätmetod i lättrörliga och Lean-arbetsmetoder. En viktig del av alla processförbättringsinitiativ är att sprida kunskap om den nya programvaruprocessen. Detta gäller oavsett hurdan process man försöker introducera – vare sig processen är plandriven eller lättrörlig. Vi föreslår att metoder som baserar sig på samarbete när processen skapas och vidareutvecklas är ett bra sätt att stöda kunskapsspridning på. Vi ger en översikt över författarverktyg för processer på marknaden med det förslaget i åtanke.
Resumo:
Agile methods have become increasingly popular in the field of software engineering. While agile methods are now generally considered applicable to software projects of many different kinds, they have not been widely adopted in embedded systems development. This is partly due to the natural constraints that are present in embedded systems development (e.g. hardware–software interdependencies) that challenge the utilization of agile values, principles and practices. The research in agile embedded systems development has been very limited, and this thesis tackles an even less researched theme related to it: the suitability of different project management tools in agile embedded systems development. The thesis covers the basic aspects of many different agile tool types from physical tools, such as task boards and cards, to web-based agile tools that offer all-round solutions for application lifecycle management. In addition to these two extremities, there is also a wide range of lighter agile tools that focus on the core agile practices, such as backlog management. Also other non-agile tools, such as bug trackers, can be used to support agile development, for instance, with plug-ins. To investigate the special tool requirements in agile embedded development, the author observed tool related issues and solutions in a case study involving three different companies operating in the field of embedded systems development. All three companies had a distinct situation in the beginning of the case and thus the tool solutions varied from a backlog spreadsheet built from scratch to plug-in development for an already existing agile software tool. Detailed reports are presented of all three tool cases. Based on the knowledge gathered from agile tools and the case study experiences, it is concluded that there are tool related issues in the pilot phase, such as backlog management and user motivation. These can be overcome in various ways epending on the type of a team in question. Finally, five principles are formed to give guidelines for tool selection and usage in agile embedded systems development.
Resumo:
The purpose of this study was to explore software development methods and quality assurance practices used by South Korean software industry. Empirical data was collected by conducting a survey that focused on three main parts: software life cycle models and methods, software quality assurance including quality standards, the strengths and weaknesses of South Korean software industry. The results of the completed survey showed that the use of agile methods is slightly surpassing the use of traditional software development methods. The survey also revealed an interesting result that almost half of the South Korean companies do not use any software quality assurance plan in their projects. For the state of South Korean software industry large number of the respondents thought that despite of the weakness, the status of software development in South Korea will improve in the future.
Resumo:
Ketterillä menetelmillä tarkoitetaan erilaisista hyväksi havaituista ohjelmistotuotannon menetelmistä luotua sekä teoreettista että käytännöllistä viitekehystä. Nykyaikaiset ohjelmistotuotannon menetelmät, ketterät menetelmät ja käytettävyyssuunnittelu, vievät ohjelmistokehitystä kohtiasiakaslähtöisempää lähestymistapaa. Ohjelmien laadun takaamiseksi asiakas osallistuu tiiviisti jo ohjelmiston tuotantovaiheessa, jolloin turhilta ominaisuuksilta ja vääriltä ratkaisuilta vältytään paremmin. Tässä työssä käsitellään tapoja, joilla pk-yritys voisi parantaa toimintaansa ja saavuttaa siten kilpailuetua sovelluskehityksessä. Pk-yritys on suurempia yrityksiä paremmassa asemassa siinä, että se on luontaisesti ketterä ja nopea käännöksissään, mutta siltä puuttuu perinteet ohjelmistokehityksessä ja siksi käytössä voi olla kehittymättömiä ratkaisuja. Yrityksissä ohjelmistotuotannon muuttaminen kohti ketterämpiä menetelmiä ei ole mahdotonta, mutta se vaatii sekä työntekijöiltä että sidosryhmiltä halua ja sitoutumista kehitykseen. Jos edellä mainittuja asioita ei löydy, ei ketteriin menetelmiin siirtyminen ole järkevää, vaan yrityksen kannattaa pitäytyä nykyisissä menetelmissä ja kehittää niitä. Työssä käsitellään myös käytettävyyden suunnittelua ja sen toteutusta hyvin pienin muutoksin perinteisiin työtapoihin. Lähtökohtaisesti voidaan ajatella, etteivät pk-yrityksen voimavarat riitä täysimittaiseen käytettävyyssuunnitteluun, siksi työssä ehdotetaan keveitä ratkaisuja, joilla voidaan kuitenkin huomattavasti parantaa ohjelmiston käyttökokemusta.
Resumo:
Requirements-relatedissues have been found the third most important risk factor in software projects and as the biggest reason for software project failures. This is not a surprise since; requirements engineering (RE) practices have been reported deficient inmore than 75% of all; enterprises. A problem analysis on small and low maturitysoftware organizations revealed two; central reasons for not starting process improvement efforts: lack of resources and uncertainty; about process improvementeffort paybacks.; In the constructive part of the study a basic RE method, BaRE, was developed to provide an; easy to adopt way to introduce basic systematic RE practices in small and low maturity; organizations. Based on diffusion of innovations literature, thirteen desirable characteristics; were identified for the solution and the method was implemented in five key components:; requirements document template, requirements development practices, requirements; management practices, tool support for requirements management, and training.; The empirical evaluation of the BaRE method was conducted in three industrial case studies. In; this evaluation, two companies established a completely new RE infrastructure following the; suggested practices while the third company conducted continued requirements document; template development based on the provided template and used it extensively in practice. The; real benefits of the adoption of the method were visible in the companies in four to six months; from the start of the evaluation project, and the two small companies in the project completed; their improvement efforts with an input equal to about one person month. The collected dataon; the case studies indicates that the companies implemented new practices with little adaptations; and little effort. Thus it can be concluded that the constructed BaRE method is indeed easy to; adopt and it can help introduce basic systematic RE practices in small organizations.
Resumo:
Ketterät menetelmät ovat yleistymässä ohjelmistotuotannossa. Yleistyminen aiheuttaa paineita ohjelmistotestaukselle, koska ketteryyttä vaaditaan myös testaukselta. Ketterät menetelmät jakavat samat perusarvot ja periaatteet, mutta lähestymistavat niiden täyttämiseksi poikkeavat toisistaan. Tässä työssä tutkitaan tarkemmin Scrum-menetelmän vaikutuksia ohjelmistotestaukseen ja laadunhallintaan. Scrum-menetelmää verrataan myös eXtreme Programming-menetelmään.
Resumo:
Tämän tutkimuksen tavoitteena on selvittää, miten erityyppisissä organisaatioissa ohjelmistotestaus on organisoitu, sekä mitä ongelmia ja etuja testauksen toimenpieteissä on käytännössä havaittu. Tutkimuksessa kiinnitetään huomiota myös testausresurssien määrään ja asiakkaan toimintaan ohjelmistokehitysprojekteissa. Tässä tutkimuksessa keskityttiin selvittämään ketterien menetelmien vaikutusta ohjelmistotestauksen toteuttamiseen, sekä miten ketterät menetelmät vaikuttavat asiakkaiden toimintaan ohjelmistokehitysprojekteissa. Tutkimus toteutettiin laadullisena tutkimuksena, jossa tutkimusmenetelmänä käytettiin aineistopohjaista menetelmää. Tutkimusaineisto on kerätty haastattelemalla 12 organisaatioyksikön edustajia. Tutkimuksessa havaittiin, että ketterien menetelmien käytöllä voidaan järjestää lisää aikaa ohjelmistotestauksen toteuttamiseen. Ketterissä menetelmissä testaus sidotaan kehitysprosessiin tiiviisti, jolloin testaustoimenpiteet tulee huomioida jo kehitystyön alkaessa. Tällainen lähtökohta tasaa testausresurssien tarvetta, koska testaustoimenpinteitä voidaan suorittaa projektin alusta lähtien. Ketterien menetelmien havaittiin vaikuttavan myös asiakkaan toimintaan. Ketteriä menetelmiä varten toimittajaorganisaation on lisättävä yhteistyön ja kommunikoinnin määrää asiakkaan kanssa. Lisäksi asiakkaalta vaaditaan jatkuvaa läsnäoloa sekä ymmärrystä ketterästä kehityksestä, jotta kehittäjät saavat jatkuvasti palautetta nopean ja joustavan kehityksen takaamiseksi.
Resumo:
Kandidaatin työmme tarkoitus on tutkia voisiko ketteriä ohjelmistokehitysmenetelmiä soveltaa innovaatioprosessiin. Innovaatioprosessissa on hyvin samankaltaiset vaiheet kuin perinteisessä ohjelmistokehitysprosessissa eli vesiputousmallissa. Vesiputousmallin ongelmia on ratkaistu ketterien menetelmien keinoin, joten päätimme lähteä tutkimaan löytyisikö perinteisen ohjelmistokehitysprosessin ja innovaatioprosessin ongelmista yhteneviä piirteitä. Oletimme, että jos ongelmat yhtenevät tarpeeksi, voisi ketteristä menetelmistä löytyä keinoja innovaatioprosessin ongelmien ratkaisemiseen. Tavoitteena on löytää innovaatioprosessin parannuskohteita, joihin ketteristä menetelmistä löytyisi ratkaisu joko kokonaan tai osittain. Aluksi tarkastellaan innovaatioprosessin historiaa, kehitystä ja ongelmia. Innovaatioprosessin tutkimisen jälkeen käydään läpi järjestelmäkehitysprosessin historiaa, kehitystä ja ongelmia. Järjestelmäkehitysprosessin jälkeen käydään läpi merkittävimmät ketterät menetelmät, jotka ovat ratkaisseet perinteisen ohjelmistokehitysprosessin keskeisiä ongelmia. Työmme lopussa on innovaatioprosessin ja järjestelmäkehitysprosessin synteesi. Synteesissä tutkitaan ongelmien yhtenevyyttä ja ketterien menetelmien ratkaisuja ongelmiin. Synteesissä myös pohdimme, mitä ketterien menetelmien työkaluista voisi soveltaa innovaatioprosessin. Työn johtopäätös on, että ketteristä menetelmistä löytyy sovellettavia työtapoja innovaatioprosessiin. Työn laajuus estää soveltamisen mahdollisuuksien tarkemman tutkimisen ja yksittäisten ketterien työtapojen soveltaminen osaksi innovaatioprosessia olisikin hyvä jatkotutkimuksen aihe.
Resumo:
Ketterien menetelmien käyttö on yleistymässä ohjelmistotuotannossa. Tämän vuoksi ketteriltä menetelmiltä vaaditaan hyvää laadunhallintaa. Ketteriä menetelmiä on olemassa useita erilaisia, mutta ne kaikki jakavat samanlaiset perusarvot ja periaatteet. Tässä työssä tutkitaan kolmea eri ketterää menetelmää: Scrum, eXtreme Programming (XP) sekä Dynamic Systems Development Method (DSDM). Jokaisesta menetelmästä selvitetään, miten niissä hoidetaan laadunhallinta. Työssä otetaan myös kantaa ketterien ja perinteisten menetelmien eroihin sekä siihen, millaisissa projekteissa ketteriä menetelmiä kannattaa käyttää.