Lappeen annan eknillinen yliopis o
School o Enginee ing Science
Tie o ekniikan koulu usohjelma
Kandidaa in yö
Ville Ha ikainen
Ohjelmis oalan pk-y i yksen mobiilikehi yksen ja ku a in eg aa io
Työn a kas aja( ): Tu kija oh o i A i Happonen
Työn ohjaaja( ): Tu kija oh o i A i Happonen
Tuo an ojoh aja Ilkka Toi anen
ii
TIIVISTELMÄ
Lappeen annan eknillinen yliopis o
School o Enginee ing Science
Tie o ekniikan koulu usohjelma
Ville Ha ikainen
Ohjelmis oalan pk-y i yksen mobiilikehi yksen ja ku a in eg aa io
Kandidaa in yö
2018
50 si ua, 2 ku aa, 8 aulukkoa, 1 lii e
Työn a kas aja: TkT A i Happonen
Hakusana : ja ku a in eg aa io, mobiiliohjelmis okehi ys, De Ops
Keywo ds: con inuous in eg a ion, mobile applica ion de elopmen , De Ops
Työn a oi eena on u kia, mi ä on ja ku a in eg aa io ja kuinka op imoida sen o eu us
yönkulun suju oi amiseksi e ilais en käy än eiden ja yökalujen a ulla. Tässä yössä
ja ku aa in eg aa io a a kas ellaan mobiilikehi ys- ja De Ops -kon eks issa ohjelmis oalan
pk-y i yksen näkökulmas a. Työn empii isessä osassa u ki aan yhden ja ku an in eg aa ion
yökalun so el u uu a mobiilikehi yskäy öön, implemen oimalla ja ku a in eg aa io Reac
Na i e -kehysympä is öllä kehi e ä ään mobiilikehi ysp ojek iin.
Työn uloksena unnis e iin, e ä ja ku an in eg aa ion op imaalisuu een aiku a a
eknis en ekijöiden lisäksi o ganisaa iokul uu i ja oimin amalli . Lisäksi ha ai iin, e ä
ja ku a in eg aa io on yksi ä keimmis ä De Ops-mene elmis ä. Työn empii isessä
u kimuksessa unnis e iin mobiilikehi yksen ja ku an in eg aa ion e i yispii ei ä sekä
ode iin u ki a an yökalun so el u an mobiilikehi yskäy öön ja De Ops-mene elmien
yökalupale iin.
iii
ABSTRACT
Lappeen an a Uni e si y o Technology
School o Enginee ing Science
Deg ee P og am in Compu e Science
Ville Ha ikainen
Con inuous in eg a ion o mobile applica ions in a so wa e indus y SME
Bachelo ’s Thesis
2018
50 pages, 2 igu es, 8 ables, 1 appendix
Examine : D. Sc. A i Happonen
Keywo ds: con inuous in eg a ion, mobile applica ion de elopmen , De Ops
The aim o his hesis is o esea ch con inuous in eg a ion and how o op imize i s
implemen a ion o s eamlining o wo k low wi h he help o di e en me hods and ools.
This hesis examines con inuous in eg a ion in mobile de elopmen and De Ops con ex
om a iewpoin o a small o medium sized so wa e de elopmen company. Empi ical
esea ch o he hesis ocuses on e alua ing he sui abili y o one con inuous in eg a ion ool
o mobile applica ion de elopmen by implemen ing con inuous in eg a ion in a Reac
Na i e -mobile applica ion p ojec .
As a esul o he hesis, i was obse ed ha he op imiza ion o con inuous in eg a ion is
a ec ed by echnical aspec s as well as o ganiza ional cul u e and ope a ing models.
Addi ionally, i was obse ed ha con inuous in eg a ion is a undamen al pa o De Ops.
Cha ac e is ics o con inuous in eg a ion in mobile applica ion de elopmen we e
ecognized as a esul o empi ical esea ch. I was ound ou ha he esea ched ool sui s
o mobile applica ion de elopmen as well as o he De Ops- oolbox.
1
SISÄLLYSLUETTELO
1 JOHDANTO ................................................................................................................. 4
1.1 TYÖN TAUSTA ......................................................................................................... 4
1.2 TAVOITTEET JA RAJAUKSET .................................................................................... 5
1.3 TYÖN RAKENNE ...................................................................................................... 6
2 JATKUVA INTEGRAATIO OHJELMISTOTUOTANNOSSA ............................ 7
2.1 PROSESSI ................................................................................................................. 7
2.2 TYÖVAIHEET ........................................................................................................... 8
2.3 KYPSYYSTASOMALLIT .......................................................................................... 10
2.4 EDUT JA HAASTEET ............................................................................................... 15
2.5 MOBIILIKEHITYKSEN OSANA ................................................................................. 16
2.6 DEVOPSIN OSANA ................................................................................................. 17
3 JATKUVAN INTEGRAATION TYÖKALUT ....................................................... 19
3.1 JATKUVAN INTEGRAATION PÄÄTYÖKALUT ........................................................... 19
3.2 JATKUVAN INTEGRAATION APUTYÖKALUT ........................................................... 21
3.3 MOBIILIKEHITYKSEEN SOVELTUVAT TYÖKALUT ................................................... 21
4 OHJELMISTOTYÖKALUN SOVELTUVUUS .................................................... 23
4.1 OHJELMISTOTYÖKALUN SOVELTUVUUDEN ARVIOINTI .......................................... 23
4.2 VAATIMUKSET JA RAJA-ARVOT ............................................................................. 23
4.3 EMPIIRISEN TUTKIMUKSEN TOTEUTUS .................................................................. 24
5 TYÖKALUN SOVELTUVUUDEN ARVIOIMINEN ........................................... 26
5.1 TYÖKALUN ESITTELY ............................................................................................ 26
5.2 EMPIIRINEN TUTKIMUS ......................................................................................... 27
5.3 TYÖKALUN SOVELTUVUUS PK-YRITYKSEEN ......................................................... 32
6 JOHTOPÄÄTÖKSET ............................................................................................... 35
6.1 PÄÄTELMÄ ............................................................................................................ 35
6.2 REFLEKTIO ............................................................................................................ 36
6.3 JATKOTUTKIMUS ................................................................................................... 37
2
LÄHTEET .......................................................................................................................... 38
LIITTEET
LIITE 1: Empii isen u kimuksen Ci cleCI YAML-kon igu oin i iedos o
3
SYMBOLI- JA LYHENNELUETTELO
APK And oid Applica ion Package
CD Con inuous Deli e y
CI Con inuous In eg a ion
De Ops De elopmen & Ope a ions
JS Ja aSc ip
XML Ex ensible Ma kup Language
YAML YAML Ain’ Ma kup Language
4
1 JOHDANTO
Tie o eknise lai ee o a kehi ynee yhä mobiilimpaan muo oon. Näin ollen
pal elun a joajien on äy yny laajen aa pal elui aan sekä ukeaan mobiilima kkinoille.
Mobiililai eiden kompak i koko ja koske usnäy ö mahdollis a a uusien inno aa ioiden ja
pal elujen kehi ämisen. Mobiililai eille kehi e ään ja ku as i uusia so elluksia ja näiden
so ellus en kehi äminen on me ki ä ää liike oimin aa. Tässä yössä käsi ellään
mobiiliohjelmis okehi ys ä suju oi a aa sekä sen laa ua pa an a aa p osessia, ja ku aa
in eg aa io a (Du all, Ma yas & Glo e 2007). Johdannossa aus oi e aan yön läh ökohda ,
a oi ee sekä ku a aan yön sisäl ö.
1.1 Työn aus a
Ke e än ohjelmis okehi yksen pe uspe iaa ee , ku en laadukkaan ohjelmis on ja ku an
oimi amisen mahdollis aminen ja muu u iin asiakas aa imuksiin as aaminen (Agile
Alliance 2018), edelly ä ä laadukkai a p osesseja koko ohjelmis o uo an oke jul a. Ja ku a
in eg aa io (CI eli Con inuous In eg a ion) on suosi u p osessi ke e ien
ohjelmis okehi yksen mene elmien keskuudessa (Bosch 2014, s. 107). Ja ku an in eg aa ion
p osessi o a lähimmässä uo o aiku uksessa ohjelmis on lähdekoodin kanssa ja näin ollen
pe us a koko ke jun oiminnalle.
Ke e ien mene elmien mukaelma, De Ops (De elopmen & Ope a ions), py kii
yhdis ämään usein oisis aan e illisen kehi ys yön ja uo annon yh enäiseksi ke juksi (Ebe ,
Galla do, He nan es ja Se ano 2016, s. 94). Kehi ys yö ja uo annollise p osessi py i ään
au oma isoimaan hyödyn ämällä p osesseihin so el u ia yökaluja (A lassian 2018a).
Hyödynne ä ien De Ops- yökalujen ki jo on nykypäi änä laaja, jo en on ä keää ka oi aa
sekä a ioida, mi kä yökalu so el u a o ganisaa ioihin pa hai en.
Työn aiheen on mää i äny ohjelmis oalan pk-y i ys OCTO3 Oy. De Ops on oleellinen osa
OCTO3:n aja usmaailmaa ja oimin amallia, jo a hyödyn ämällä y i ys as aa ke e äs i
sopimusohjelmis okehi yksen haas eisiin. Ja ku aa in eg aa io a on o eu e u y i yksessä
p ojek ikoh aises i. Työn sisäl ämä u kimus ka oi aa mahdollisuuksia ja ku an
in eg aa ion o eu amiseen mobiilikehi ysympä is össä sekä a ioi sen aa imien yökalujen
so el u uu a nopeas i kas a an pk-y i yksen mobiilikehi yshankkeisiin.
5
1.2 Ta oi ee ja ajaukse
Tämän kandidaa in yön a oi eena on sel i ää, kuinka mobiilikehi yksen ja ku a
in eg aa io on mahdollis a o eu aa ja op imoida pk-y i yksessä e ilais en käy än eiden ja
yökalujen a ulla sekä esi ää a io ali un yökalun so el u uudes a y i yksen a peisiin.
Työssä ka oi e aan mobiilikehi ysympä is öön so el u ia ja ku an in eg aa ion yökaluja ja
käy än ei ä sekä ku a aan lyhyes i yökalun alin ap osessin aihee . Työn pääpaino on
empii isessä u kimuksessa, johon on ali u yksi ja ku an in eg aa ion yökalu. Työkalun
so el u uus ohjelmis oalan pk-y i ys OCTO3 Oy:n mobiilikehi ys a peisiin a ioidaan.
Työn u kimuskysymys on seu aa a:
Kuinka op imoida ja ku a in eg aa io ohjelmis oalan pk-y i yksen
mobiilikehi yksessä yönkulun suju oi amiseksi e ilais en käy än eiden ja
yökalujen a ulla?
Tu kimuskysymyksen jäsen elyn a uksi ali uja lisä u kimuskysymyksiä o a seu aa a :
So el uuko ali u yökalu pk-y i yksen mobiilikehi yksen a peisiin?
Tukeeko yökalu mui a De Ops-käy än ei ä?
Ja ku an in eg aa ion op imoinnilla a koi e aan ämän yön kon eks issa yökaluja ja
oimin amalleja, jo ka ehos a a sekä helpo a a ja ku an in eg aa ion o eu amis a
laajemman De Ops-kul uu in osana. Ja ku an in eg aa ion op imaalisuu a ali ulla
yökalulla sekä yökalun so el u uu a a ioidaan peilaamalla empii isen u kimuksen
uloksia ki jallisuuska saukses a ke ä yyn aineis oon.
Ja ku a in eg aa io ku a aan yössä laajemman De Ops-kul uu in osana, jossa
e sionhallinnassa sijai se an ohjelmis on koodikannan jokaises a päi i ykses ä
käynnis e ään in eg aa iop osessi. In eg aa iop osessi on äysin au oma isoi u, ja se sisäl ää
ohjelmis on koon i e sioinnin (build), es aamisen, käy ööno on sekä koodin
analysoimisen. Viimeisenä aiheena p osessin suo i ukses a oimi e aan kehi äjille ja muille
asianomaisille apo i.
6
1.3 Työn akenne
Lu ussa kaksi ku a aan, mi ä on ja ku a in eg aa io ja mi ä käy än ei ä siihen kuuluu.
Läh ö ie oina ke o aan ja ku an in eg aa ion aus aa sekä sen aiku uksia
ohjelmis op ojek eihin. Lu un a koi uksena on a a a lukijalle ja ku an in eg aa ion
kon eks i sekä iippu uude muihin ke e än ohjelmis okehi yksen (De Ops)
oimin amalleihin. Ja ku aa in eg aa io a ku a aan ja analysoidaan mobiilikehi yksen
näkökulmas a. Kolmannessa lu ussa ka oi e aan yleises i ki jallisuuska sauksen keinoin,
mi ä ja ku an in eg aa ion mahdollis a ia yökaluja on olemassa sekä mi ä ne eke ä .
Pääpaino on a sinais en CI- yökalujen aih oehdoissa sekä oiminnallisuuksissa. Lisäksi
si u aan pää yökalun suo i ukseen ky key y iä ja ku aa in eg aa io a uke ia yökaluja,
ku en ohjelmakoodin ka selmoin i- ja a ioin i yökaluja. Lu ussa neljä ku a aan yleises i
ohjelmis o yökalun so el u uuden mää i ys ki jallisuuska sauksen pohjal a. Lisäksi
ku a aan OCTO3 Oy:n ase ama eknise aa imukse . Lu ussa myös ku a aan empii isen
u kimuksen suo i us ali ulla ja ku an in eg aa ion yökalulla. Empii isessä u kimuksessa
u ki aan ali ua ja ku an in eg aa ion yökalua mobiilikehi ysp ojek issa.
Käy ökon eks issa on ah ana es ausau omaa io ja so el u uus De Ops-kokonaisuu een.
Viidennessä lu ussa esi ellään ali u yökalu, ku a aan ha ainno empii ises ä
u kimukses a sekä esi e ään a io yökalun so el u uudes a ohjelmis oalan pk-y i yksen
mobiilikehi yksen a peisiin. Viimeisessä lu ussa esi e ään yön joh opää ökse as aamalla
esi e yihin u kimuskysymyksiin yön ki jallisuuska sauksen ja empii isen u kimuksen
pohjal a. Lisäksi e lek oidaan k ii ises i, kuinka yön u kimus sujui ja unnis e aan yön
aiheeseen lii y iä ja ko u kimuskoh ei a.
13
Taulukko 4. Rapo oinnin kypsyys aso (U banCode 2018)
Base
Visibili y: Repo Runne
Tool gene a ed epo s
Beginne
Visibili y: Team
La es epo s always accessible
In e media e
Visibili y: C oss Silo
His o ical Repo s a ailable o iewing
Ad anced
Repo ending
Ex eme
C oss Silo Analysis
O ganisaa iokul uu in ( aulukko 5) pohja asolla edelly e ään yön jao elua,
dokumen aa io a ja ihei ä e sionhallinnan koodikannan päi i yksiä. Keski asolle
e eneminen edelly ää ke e ien kehi ysmene elmien hyödyn ämis ä, iimien älis en ajojen
ikkomis a sekä p osesseja. Kypsimmillä asoilla kehi ys iimi yösken ele ä is iin,
yökaluille on as uu iimi ja as uu a jae aan kehi ys iimien kesken. (In oQ 2018)
14
Taulukko 5. O ganisaa iokul uu in kypsyys aso (In oQ 2018)
Base
P io i ized wo k
De ined and documen ed p ocess
F equen commi s
Beginne
One backlog pe eam
Sha e he pain
S able eams
Adop basic Agile me hods
Remo e bounda y de & es
In e media e
Ex ended eam collabo a ion
Componen owne ship
Ac on me ics
Remo e bounda y de & ops
Common p ocess o all changes
Decen alized decisions
Ad anced
Dedica ed ools eam
Team esponsible all he way o p od
Deploy disconnec ed om Release
Con inuous Imp o emen (Kaizen)
Ex eme
C oss unc ional eams
No ollbacks (always oll o wa d)
Suunni elun- ja a kki eh uu in ( aulukko 6) pohja asolla edelly e ään akiin umis a
joihinkin alus oihin sekä eknologioihin. Keski asoille e eneminen edelly ää
e sionhallinnassa haa au umisen minimoin ia ja sii ymises ä modula isaa ion
hyödyn ämises ä i senäis en ohjelmis okomponen ien kehi ämiseen. Kypsimmillä asoilla
a kki eh uu i on ie y ää immäisyyksiin, mahdollis aen ympä is öjen pys y ämisen ja
kon igu oinnin ähällä manuaalisella yöllä. (In oQ 2018)
15
Taulukko 6. Suunni elun- ja a kki eh uu in kypsyys aso (In oQ 2018)
Base
Consolida ed pla o m & echnology
Beginne
O ganize sys em in o modules
API managemen
Lib a y managemen
Ve sion con ol DB changes
In e media e
No (o minimal b anching)
B anch by abs ac ion
Con igu a ion as code
Fea u e hiding
Making componen s ou o modules
Ad anced
Full componen based a chi ec u e
Push business me ics
Ex eme
In as uc u e as code
2.4 Edu ja haas ee
Du all e al. (2006) esi ä ä ja ku an in eg aa ion o eu amisen eduiksi iskien ja ois u an
manuaalisen yön minimoimisen, ohjelmis on käy ööno on helpo umisen sekä p ojek in
näky yyden ja uo eeseen luo amuksen pa an umisen. Riskejä minimoi a ja ku a
es aaminen ja analysoin i, jonka a ulla ohjelmis on i hee ja ongelma o a ha ai a issa
aikaisessa aiheessa sekä laa u on ja ku assa a kkailussa. Tois u an manuaalisen yön
minimoiminen apau aa kehi äjä keski ymään oleelliseen ja yön au oma isoin i akaa
sen, e ä p osessi suo i e aan aina samalla a alla. Ja ku a in eg aa io helpo aa
huoma a as i ohjelmis on käy ööno oa, mahdollis aen ideaali apauksessa sen sii ämisen
oimi uspu keen milloin ahansa ja ku an oimi amisen p osessien a ulla. P ojek in
näky yy ä ja pää öksen ekoa uke a ja ku an in eg aa ion suo i uksis a ke ä ä ä ie o ja
endi . Lisäksi luo amus uo eeseen pa anee, sillä es aus ja analysoin i suo i e aan
jokaises a lähdekoodikannan muu okses a.
Kysely u kimuksessa, jo a a en haas a el iin neljän e i ohjelmis o uo een pa issa
yösken ele iä asian un ijoi a, ha ai iin ja ku an in eg aa ion pa an a an p ojek in
ennus e a uu a sekä p ojek ihenkilös ön kommunikaa io a. Vii ei ä ha ai iin myös
16
es auksen ukemises a ja kehi äjän uo eliaisuuden pa anemises a. Tu kimus ulokse
kui enkin osoi a a hajonnallaan sen, e ä ja ku an in eg aa ion hyödy oi a aihdella
hy in paljon e i ohjelmis o uo eiden ja niiden kehi ysp ojek ien älillä. (S åhl e al. 2013)
Hil on, Tunnell, Huang, Ma ino ja Dig (2016) esi ä ä laajaan a oimen lähdekoodin
ohjelmis op ojek eis a ke ä yyn aineis oon pe us uen, e ä ja ku aa in eg aa io a
hyödyn ä ä p ojek i julkaise a ohjelmis oaan useammin, hy äksyn äp osessi ehdo e uille
lähdekoodimuu oksille on nopeampi ja päälinjaan ei lii e ä ohjelmis on ikko aa
lähdekoodia.
Ja ku an in eg aa ion implemen oiminen edelly ää osaamis a sekä esu sseja. A oimen
lähdekoodin ohjelmis op ojek eissa me ki ä immiksi syiksi, miksi ja ku aa in eg aa io a ei
käy e ä, ha ai iin kehi äjien kokema omuus, au omaa i es ien puu uminen sekä se, e ei
koodimuu oksia iedä e sionhallin aan ii ä än usein (Hil on e al. 2016, s. 432). Shahin
e al. (2017, s. 16) o eu amassa ki jallisuus u kimuksessa ha ai iin as aa as i hidas eena
es aukseen lii y ä puu ee ja koodin lii os is i iida (me ge con lic s). Nämä haas ee
indikoi a ah as i, e ä ja ku alla in eg aa iolla on me ki ä ä aiku us yönkulkuun ja sen
implemen oin iin aiku a a hy in paljon ohjelmis o uo een ai sen uo ekehi ysp ojek in
yyppi.
Ha ainno u kimusaineis ojen pohjal a uke a äi e ä sii ä, e ä ja ku a in eg aa io a joaa
lukuisia e uja ohjelmis op ojek ien yönkulkuun. E uja ei oi kui enkaan yksiseli eises i
yleis ää kaikkiin ohjelmis op ojek eihin. Työn u kimuskysymyksen kannal a uleekin
huomioida, e ei ä ha ainno ja ku an in eg aa ion so el u uudes a yön pk-y i yksen
mobiilikehi yskon eks iin ole äl ämä ä suo aan so elle a issa oisiin o ganisaa ioihin ai
kehi ysp ojek eihin.
2.5 Mobiilikehi yksen osana
Mobiiliso ellus on ohjelmis o, joka on suunni el u suo i e a aksi mobiililai eella, ku en
älypuhelimella ai able illa. Mobiiliso ellus en pääasiallise kehi ysalus a o a And oid- ja
iOS-käy öjä jes elmä , sillä lähes kaikki mobiililai ee hyödyn ä ä edellä maini uja
käy öjä jes elmiä (Ne Ma ke Sha e 2018). Mobiiliso ellus en alus a o a ja ku assa
muu oksessa. Uusia lai ei a ilmes yy ja ku as i ja käy öjä jes elmä e sio päi i y ä
uosi ain. Alus amuu oksiin eagoiminen sekä so elluskaupoissa menes yminen
17
edelly ä ä iheää julkaisusykliä. Uusien ominaisuuksien ja i heko jaus en ke e ä julkaisu
aa i a kehi yske jul a nopeaa eagoin ia. Kehi ykseen on näin ollen luon e aa hyödyn ää
ja ku aa in eg aa io a. Mobiiliso elluksia oidaan kehi ää na ii is i (eli alus akoh aises i)
sekä alus a iippuma omas i (c oss-pla o m). Na ii iso elluksia kehi e ään alus an
mukaisilla kehi ys yökaluilla, ajapinnoilla sekä ohjelmoin ikielillä. Alus a iippuma omas i
mobiiliso elluksia oi kehi ää selainpohjaises i web- eknologioilla ai esime kiksi Reac
Na i e ja Xama in - yökaluja hyödyn äen. (Jobe 2013, s. 27)
Mobiilikehi yksessä suu immiksi haas eiksi on ha ai u muun muassa saman ohjelmis on ja
käy ölii ymän kehi äminen usealle e i käy öjä jes elmälle ja lai eis olle. Tes aaminen on
myös yksi mobiilikehi yksen haas eis a (Joo abchi, Mesbah & K uch en 2013, s. 23;
Wasse mann 2013). Nämä haas ee kohda aan myös ja ku aa in eg aa io a
implemen oidessa mobiilikehi ysp ojek issa. Na ii ikehi yksessä koodikan a on jokaiselle
ue a alle alus alle e ilainen ja näin ollen jokaiselle alus alle ulee o eu aa oma ja ku a
in eg aa io. Alus a iippuma omassa kehi yksessä sen sijaan koodikannas a suu in osa on
yh eis ä kaikille alus oille. Mobiiliso ellus en es aamisen haas ei a o a sen
monimu kaisuus ja lai eiden sekä niiden ohjelmis o e sioiden moninaisuus (Akou , Falah,
Ahmad, Bou ia & Aleme ien 2016). Mobiilikehi yksen ja ku an in eg oimisen
op imoiminen edelly ää näin ollen alus ojen ase amien lainalaisuuksien un emis a sekä
ali ua kehi ys eknologiaa uke ia ja ajan asaisia yökaluja.
2.6 De Opsin osana
De Ops:in pääidea on ohjelmis on oimi amiske jun ehos aminen. Kehi yspään
(de elopmen ) p osessi, ja ku a in eg aa io, ei yksinään kykene ähän, aan a i aan si ä
uke ia uo annollisia (ope a ions) p osesseja. (Vi mani 2015, s. 78) Vaikka De Ops-
e mille ei ole a sinais a mää i elmää (Roche 2013, s. 40), käsi e ään e mi yleises i
mene elmien ja yökalujen hyödyn ämisenä, jo ka edesau a a ja au oma isoi a
ohjelmis on kehi yksen ja uo annon p osesseja (A lassian 2018a; Ebe e al. 2016; OCTO3
2017). Ja ku a in eg aa io on yksi De Ops- oiminnan mahdollis a a mene elmä.
Ja ku a oimi aminen (CD eli Con inuous Deli e y) on De Ops-mene elmä, joka laajen aa
ja ku aa in eg aa io a. Ja ku an oimi amisen a oi eena on mahdollis aa uuden
ohjelmis o e sion julkaisemisen uo an oon suo a ii aises i he kenä minä hy änsä
18
(Lianping 2015; OCTO3 2017). Oleellisia CD-p osesseja o a mm. kon igu aa ionhallin a,
hy äksymis es aus ja julkaisunhallin a ( elease managemen ) (Humble e al. 2010).
Ja ku an in eg aa ion läpäise ä koon i e sio oidaan a i aessa lähe ää au oma isoi uihin
ja ku an oimi amisen p osesseihin, jonka loppu uo eena on ohjelmis o, joka on almis
julkais a aksi.
De Ops-mene elmien ja yökalujen hyödyn äminen ohjelmis okehi yksessä edelly ä ä
eknisiä ja y i yskul uu illisia muu oksia. De Ops-mene elmien, ku en ja ku an
in eg aa ion, implemen oiminen edelly ää yökalujen hyödyn ämis ä ja näiden yökalujen
käy ööno o oi aa ia muu oksia ohjelmis okehi yshankkeen läpi iemiseen
p ojek inhallinnan asol a kehi äjän asolle saakka (Zhu, Bass & Champlin-Scha 2016).
De Ops-mene elmien hyödyn ämisen eduiksi on ha ai u julkaisu iheyden ja
es iau omaa io-osaamisen pa an uminen sekä sen hyödyn äminen laajemmassa
mi akaa assa. O ganisaa io asolla De Ops-mene elmä oi a a jo a pa annus a
kommunikaa ioon sekä sallia kokeile aa ohjelmis okehi yskul uu ia. Me ki ä immä
haas ee De Ops-kul uu in hyödyn ämiseen o a kommunikaa io-ongelma kehi ys- ja
uo an o iimin älillä sekä o ganisaa iokul uu imuu okse . (Riungu-Kalliosaa i 2016)
19
3 JATKUVAN INTEGRAATION TYÖKALUT
Ja ku an in eg aa ion o eu amiseen hyödynne ään yleensä pää yökalua, ns. pal elin a,
jonka eh ä ä on kuunnella e sionhallinnan koodikannassa apah u ia muu oksia ja aloi aa
ha ai us a muu okses a koon i e sioin ip osessi komen osk ip in mukaises i sekä lopuksi
oimi aa loki suo i uksen kulus a kehi äjille (Meye 2014, s. 15). Tähän pää yökaluun
oidaan ky keä apu yökaluja, jo ka uke a ai laajen a a ja ku an in eg aa ion p osesseja
sekä niiden suo i amis a.
3.1 Ja ku an in eg aa ion pää yökalu
Ja ku aa in eg aa io a oi o eu aa myös omilla koon i e sioin isk ip eillä, ilman a sinais a
kyseiseen a koi ukseen suunni el ua ohjelmis oa. Usea ja ku an in eg aa ion yökalu o a
kui enkin ilmaisia a oimen lähdekoodin ohjelmis oja ja yökalu suo a ii ais a a ja ku an
in eg aa ion implemen oin ia. (Du all e al. 2007 s. 8) Pienikus an einen ai jopa äysin
ilmainen ohjelmis o a kaisu, joka odennäköises i uo lisäa oa ohjelmis op ojek iin, on
hy in houku ele a konsep i. Täy yy kui enkin huoma a, e ä yökalus a iippuen a sinainen
hankin akus annus oi olla hy in minimaalinen e a una yökalun ylläpi o- ja
kon igu oin ikus annuksiin.
Ja ku an in eg aa ion pää yökalun pe us oiminnallisuuksiin kuulu a e sionhallinnan
kuun elu, koon i e sioin isk ip ien suo i us sekä suo i uksen ki jaaminen lokiin,
koon i e sion leimaaminen ja ilmoi us en lähe ys. Työkalun ulee mahdollis aa
ohjelmis okoodin kään äminen, iippu uuksien hallin a, es ien suo i aminen ja
koon i e sion käy ööno o. Työkalu oi a jo a käy ölii ymän oiminnallisuuksien
kon igu oin iin sekä apo ien esi ämiseen. Ja ku an in eg aa ion yökalujen
hyödyn ämises ä on luon ais a sii yä au oma isoimaan myös ohjelmis on julkaisua, mihin
hyödynne ä ä yökalu oi a jo a mahdollisuuden suo aan ai a jo a hy än ajapinnan
koon i e sion käy ööno oon julkaisuke jussa.
Ki jallisuudes a, kon e enssijulkaisuis a ja a ikkeleis a löy yy ku auksia sekä u kimuksia
ja ku as a in eg aa ios a ja sen p osesseis a yleisellä asolla. Sen sijaan ain muu amia
yökaluja on käsi el y ki jallisuudessa. Työkalujen u kimuksen suh een pääasiallisia läh ei ä
o a e kkoa ikkeli ja as aa anlaise julkaisu . Työkalujen a joajien in e ne si us o ,
20
uo eku aukse ja dokumen aa io ii ä ä pääosin ja ku an in eg aa ion
implemen oimiseen. Implemen aa ion so el u uus sekä op imaalisuus käy öympä is öön
a mis e aan kui enkin ain u kimalla ja es aamalla.
Ja ku an in eg aa ion pää yökalujen suosios a löy yy ka a a a ioin i G2 C owd -
e kkosi us ol a. Ohjelmis oalalla yösken ele ä ai alalla aiku a a henkilö oi a käydä
a ioimassa si us olle käy ämiään ja ku an in eg aa ion yökaluja (G2C owd 2018). Näin
ollen si us on ilas ois a saa melko ele an ia sekä ajan asais a ie oa sii ä, mi ä yökaluja
käy e ään eollisuudessa, ja mi kä niiden ah uude sekä heikkoude o a . Viisi pa haaksi
a ioi ua ja joh a an ma kkina-aseman omaa ia ja ku an in eg aa ion yökalua o a
Ci cleCI, T a is, CodeShip, Jenkins ja TeamCi y (G2C owd, 2018). Näis ä yökaluis a
Jenkins on ilmainen a oimen lähdekoodin ohjelmis o ja muu a joa a ilmaisen
kokeilujakson aja uilla ominaisuuksilla. Ilmainen kokeilujakso on hyödyllinen e enkin, jos
kokee epä a muu a yökalun läh ökoh aiselle so el u uudelle hyödynne ä ien
kehi ys eknologioiden kanssa. Jos kehi ysp ojek eja on usei a ai kehi ysp ojek i on al a an
laaja, saa a a samanaikaisuu een ja koon i e sioin ien lukumää iin ase e u aja ajoi a a
yösken elyä. Työkalun oimi ajas a iippuen löy ynee kui enkin kaikkiin käy ö apauksiin
sopi a ja skaalau u a a kaisu maksua as aan. Huomiona ois a on se, e ä maksullise
yökalu a joa a a oimen lähdekoodin k i ee i äy ä ille ohjelmis okehi ysp ojek eille
yleises i pienemmä kus annukse ai jopa ilmaisen pal elun.
Ja ku an in eg aa ion yökalun alinnassa huomioi a ia asioi a o a yökalun a joama
oiminnallisuude , so el u uus käy öympä is öön, luo e a uus, pi käikäisyys ja
käy e ä yys (Du all e al. 2008, s. 248-255). Käy öympä is öön so el u uuden
pe usedelly ys kaupallisissa ja ku an in eg aa ion yökaluissa on yh eensopi uus
käy e ä än e sionhallin ajä jes elmän kanssa. Lisäksi on huomioi a a, haluaako käy ää
a oimen- ai sulje un lähdekoodin yökalua ja aje aanko in eg oin i u iini ulkopuolisella ai
omalla pal elimella. Työkalun käy ön oppimiskäy än jy kkyys ja dokumen aa ion sekä uen
aso o a myös ä kei ä ka oi uksen koh ei a. (Sq een 2018) Ohjelmis o yökalun alinnassa
oleellis a on myös ka oi aa, löy yykö e kos a ai ki jallisuudes a ma e iaalia as aa an
käy ö apauksen o eu amiseen.
21
3.2 Ja ku an in eg aa ion apu yökalu
Ja ku an in eg aa ion apu yökaluja o a yökalu , joi a oidaan ky keä pää yökalun
yh ey een ja jo ka uke a ja ku an in eg aa ion p osesseja. Apu yökaluina oidaan
hyödyn ää esime kiksi s aa isia lähdekoodianalysoin i yökaluja, jo ka käy ä koodikan aa
läpi ja ilmoi a a yökalulle mää i el yjen koodauskäy än eiden ikkomises a. S aa inen
lähdekoodianalyysi on k ii inen osa laadukas a es aus a (Wang, Meng, Han & Bai 2014, s.
1280). Sen mahdollis a a yökalu uke a manuaalis a koodika selmoin ia ja nopeu a a
ja ku an in eg aa ion p osessia (Du all e al. 2007, s. 163). Sona Qube on yksi kaupallinen
analyysi- ja laadunhallin a yökalu, joka so el uu osaksi De Ops-käy än ei ä ja se oidaan
in eg oida CI- yökaluun (Sona Qube 2018). E i ohjelmoin ikielille saa a a lin - yökalu
mahdollis a a s aa isen lähdekoodianalyysin (Gimpel 2014). Riippuen ohjelmis op ojek in
yypis ä, ka a an es iau omaa ion suo i aminen oi aa ia lisäksi e illisien
es auskehysympä is öjen ( amewo k) hyödyn ämis ä. Tes iau omaa io a uke ia
apu yökaluja oidaan ja on suo a aa hyödyn ää ja ku an in eg aa ion yh eydessä, jo a
kaikki paikallises i suo i e u es i oidaan suo i aa myös in eg aa ioympä is össä.
Apu yökalujen hyödyn ämiselle a jo a a uki iippuu pää yökalus a.
3.3 Mobiilikehi ykseen so el u a yökalu
G2G owdin (2018) iides ä pa haaksi a ioidus a ja joh a an ma kkina-aseman omaa is a
ja ku an in eg aa ion yökaluis a na ii imobiilikehi ys ä (iOS ja And oid) uke a i allises i
Ci cleCI ja T a is (Ci cleCI 2018; T a is 2018). Mui a mobiilikehi yksen ja ku aa
in eg aa io a uke ia yökaluja o a muun muassa Bi ise, Gi Lab CI ja Ne e code (Bi ise
2018; Gi Lab CI 2018; Ne e code 2018). Lisäksi Bamboo- ja Jenkins- yökaluille on lisäosia,
joilla saa u e aan uki mobiilikehi ykselle (A lassian 2018b; Jenkins 2018). Tuki
alus a iippuma omille kehi ys eknologioille äy yy sel i ää yökalukoh aises i. Työkalujen
ma kkinoinnis a ja dokumen aa ios a ei äl ämä ä saa yksikäsi eis ä ie oa, ue aanko
alus a iippuma omia eknologioi a. Mobiilikehi ysp ojek issa oidaan hyödyn ää lukuisia
e ilaisia apu yökaluja ja kehysympä is öjä. S aa inen lähdekoodianalyysi mobiilikehi yksen
ja ku an in eg aa ion osana oi edelly ää apu yökalujen hyödyn ämis ä, jo ka a joa a uen
käy e ä älle ohjelmoin ikielelle sekä in eg oi u a pää yökaluun. Esime kiksi
na ii ikehi ysympä is ö And oid S udio ja iOS-käy öjä jes elmän Xcode sisäl ä ä yökalu
s aa iseen lähdekoodianalyysiin (And oid S udio 2018; Apple 2018). Mobiilikehi yksessä
22
suosi uja es iau omaa io yökaluja o a muun muassa Appium, Esp esso ja Calabash
(As egic 2018).
29
s o e_ es _ esul s- yö aiheessa mahdollis aa es i ulos en lukemisen suo aan Ci cleCI-
käy ölii ymäs ä.
Kon igu aa ion es aaminen on mahdollis a käy äen Ci cleCI-komen o i i yökalua.
Komen o i i yökalun käy äminen edelly ää Docke -ohjelmis on asen amis a omaan
kehi ysympä is öön. Komen o i i yökalu mahdollis aa YAML-kon igu oin i iedos on
alidoinnin ja öiden suo i amisen paikallises i. Työkalun käy össä on kui enkin me ki ä iä
ajoi ei a. Linux- i uaalikoneen sekä älimuis in käy ö ei ole eknises i mahdollis a.
Lisäksi kon igu aa iossa ei oi käy ää ympä is ömuu ujia eikä yönkulkuja. Tu kimuksessa
ha ai iin, e ä nämä ajoi ee hai asi a komen o i i yökalun hyödyn ämis ä
huoma a as i. Komen o i i yökalun käy ö edelly i käy ännössä oisen
kon igu aa io iedos on luomis a, jos a aje iin yksi äisiä öi ä kon igu aa ion es aamiseksi.
Tämä mene elmä ode iin hankalaksi ja näin ollen kon igu aa ion suo i uksen es aus
apah ui pääosin ekemällä muu os e sionhallin aan ja odo amalla suo i uksen loppu ulos a
Ci cleCI:n pal elimel a.
P ojek in lopullinen Ci cleCI-kon igu aa io (Lii e 1) koos ui kolmes a yös ä ja kahdes a
yönkulus a. Alus a iippuma omalle Ja aSc ip -osan yö suo i e iin Docke -kon in
Node.js-le yku assa. Node.js-p ojek in iippu uude asenne iin ya n-
pake inhallin a yökalulla ja suo i usaikaa nopeu e iin kon igu oimalla Ci cleCI
allen amaan iippu uude älimuis iin seu aa ia suo i uske oja a en. P ojek in es i
suo i e iin Jes - yökalulla, jonka lisäksi hyödynne iin jes -juni -ki jas oa es i ulos en
ki joi amiseen Ci cleCI:n ukemaan XML- o maa iin (Ex ensible Ma kup Language).
Alus a iippuma oman osan iippu uude allenne iin yöhakemis oon, jo a And oid-
p ojek in suo i uksissa samoja aihei a ei a innu ois aa.
And oid-p ojek in yö suo i e iin Docke -kon issa And oid-le yku assa G adle-
koon i e sioin i yökalulla. G adle- yökalun oimiminen edelly i ympä is ömuu ujan
ase amis a kon igu aa ioon. And oid- yö aiheissa hae iin lähdekoodi e sionhallinnas a,
o e iin käy öön Ja aSc ip -osan iippu uude sekä lada iin suo i e a an And oid-p ojek in
iippu uude . Riippu uude allenne iin Ci cleCI:n älimuis iin. Yksikkö es ien ja
analysoinnin suo i uksen sekä loppu ulos en allen amisen jälkeen, suo i e iin p ojek in
uo an o e sion koon i e sioin i ja muodos u an .apk- iedos on (And oid Applica ion
30
Package) allennus. Tuo an okoon i e sion a men aminen (code-signing) onnis ui G adle-
yökalua hyödyn ämällä. And oid-p ojek in kon igu oinnissa ha ai iin, e ei Ci cleCI 2.0-
e sio ue simulaa o isuo i us a. Simulaa o ia aa i a es i äy yisi suo i aa esime kiksi
Fi ebase Tes Lab -pal elussa.
iOS-p ojek in yö suo i e iin Ci cleCI:n macOS-ympä is össä Xcodebuild- yökalulla. Mac-
ympä is öön uli asen aa ensin Ja aSc ip -osan iippu uude . Koon i e sioin i, es aus ja
analysoin i suo i e iin samassa yö aiheessa ja es i ulokse allenne iin iedos ona
Ci cleCI:n pal elimelle. So elluksen uo an o e sion koon i e sioin i suo i e iin ilman
a men amis a. Ci cleCI ukee ainoas aan Fas lane Ma ch- yökalua iOS-so ellus en
lähdekoodin a men amiseen, jo en Fas lane- yökalujen hyödyn äminen on edelly ys
oikealla lai eella suo i e a an ai so elluskauppaan lähe e ä än koon i e sion luomiselle.
Ci cleCI ukee And oid-ympä is ös ä poike en es ien suo i amis a simulaa o issa MacOS-
ympä is össä.
Työnkuluissa mää i el iin kaksi e i öiden suo i us u iinia. Toinen yönkulku suo i e aan
jokaises a päälinjan koodimuu okses a ja oinen ajas e us i ke an uo okaudessa.
Työnkulkujen mää i ely ha ai iin u kimuksessa hy äksi ominaisuudeksi. Tu kimuksessa
käy e yn p ojek in Reac Na i e -alus a iippuma oman Ja aSc ip -osan yö suo i e iin
ensin, jonka jälkeen And oid- ja iOS- yö suo i e iin innakkain (ku a 1). Tä en oi iin
hyödyn ää And oid-p ojek issa Ja aSc ip -osan iippu uuksia ilman uudelleenla auksia
sekä ja ke iin suo i us a ain alus a iippuma oman osan u iinien onnis uessa. Suu emman
kokoluokan p ojek eissa ominaisuuden a o ain kas aa. Työnkulkujen lisäksi Ci cleCI: ä
oi ope oida ajapinnan kau a. Rajapinnan kau a oi muun muassa hakea ie oa
suo i uksis a, suo i uksen aikana allenne uja iedos oja sekä käynnis ää suo i uksia.
Ja ku an in eg aa ion kokonaissuo i usaika u kimuksen Reac Na i e -p ojek issa oli
keskimää in noin kahdeksan minuu ia. Alus a iippuma oman osan öiden suo i aminen
kes i keskimää in 25 sekun ia, And oid- öiden kaksi ja puoli minuu ia ja iOS- öiden ajaa
kahdeksan minuu ia. iOS- öiden suo i usaikaan aiku i me ki ä äs i ali un
simulaa o ilai een yyppi.
31
Ku a 1. P ojek in yönkulku -näkymä
Ci cleCI- yökalun kon igu oiminen u kimuksen Reac Na i e -p ojek iympä is össä
ode iin kokonaisuudessaan melko yksinke aiseksi, joskin aikaa ie äksi. Ci cleCI:n
dokumen aa ios a ja i allisel a oo umil a löy yi lähes kaikki a i a a ie o ja ku an
in eg aa ion implemen oimiseen u kimuksen p ojek iin. Ci cleCI:n e kkosi us on
käy ölii ymän käy e ä yys ode iin u kimusjakson aikana hy äksi. Käy ölii ymäs ä oi
sää ää yleisiä ja p ojek ikoh aisia ase uksia, lukea suo i e ujen öiden loki ie oja, lada a
suo i uksen aikana allenne uja iedos oja sekä a kas ella ilas oja suo i uksis a (ku a 2).
Ci cleCI lähe ää ole usase uksilla iedon ja ku an in eg aa ion onnis umises a suo aan
e sionhallin aan. Tu kimuksen aikana huoma iin, e ei Ci cleCI ue käy ö apaus a, jossa
ja ku an in eg aa ion u iini suo i e aan päälinjaan ja muihin haa oihin ain silloin, jos
niis ä oli lähe e y pyyn ö pull eques - oiminnallisuudelle. Tu kimuksessa yökalu
kon igu oi iin apo oimaan sähköpos in äli yksellä.
32
Ku a 2. P ojek in suo i us ilas o
5.3 Työkalun so el u uus pk-y i ykseen
Työkalun so el u uu a a ioi iin peilaamalla empii isessä u kimuksessa saa u e un
ja ku an in eg aa ion o eu us a ki jallisuuska saukses a ke ä yyn aineis oon.
Tu kimuksessa ode iin Ci cleCI- yökalun mahdollis a an ja ku aan in eg aa ioon kuulu a
p osessi u kimuksen mobiilikehi ysp ojek issa. Mobiilialus oille ki joi e un lähdekoodin
kään äminen, es aaminen, analysoin i sekä käy ööno o ode iin mahdolliseksi es a a alla
yökalulla. Tie okan ain eg aa ion osal a ei oida o aa kan aa ämän yön kon eks issa, sillä
empii isen u kimuksen es ip ojek i ei aa inu e illis ä ie okan ain eg aa io a.
Toisena so el u uuden a kas elun ii ekehyksenä käy e iin u kimuksessa
ohjelmis o yökalun laa ua. Laadun a ioinnin ii ekehyksenä hyödynne iin ISO/IEC
25010-s anda dia. Työkalun oiminnallinen sopi uus mobiilikehi yksen ja ku aan
in eg aa ioon ode iin u kimuksessa ii ä äksi muu amin ajoi ein. Näis ä me ki ä in on
suo an uen puu uminen And oid-simulaa o in käy ölle. Työkalun ehokkuus oli
u kimuksen Reac Na i e -kehysympä is öllä o eu e a an ohjelmis op ojek in kon eks issa
kel ollinen. Töiden suo i usaja oli a , u kimuksen p ojek iympä is ö huomioon o aen,
hy äksy ä iä. Yh eensopi uus muiden jä jes elmien kanssa oli koh uullinen.
Ve sionhallin ain eg aa io ain Gi Hub- ja Bi bucke -jä jes elmien kanssa ajoi aa
yh eensopi uu a. Toisaal a Ci cleCI- yökalun a oime kon i- ja i uaalikoneympä is ö
mahdollis a a laajan yh eensopi uuden lukuis en muiden yökalujen kanssa.
33
Käy e ä yydessä ei ha ai u me ki ä iä puu ei a. Työkalun käy ölii ymä uki eh ä iä
oimenpi ei ä ja yökalun kon igu oin i ode iin melko yksinke aiseksi dokumen aa ion ja
muun uen a ulla. Käy ölii ymässä näy e ä ä i heilmoi ukse oli a selkei ä ja niiden
a ulla esime kiksi kon igu oin i i hee oi iin paikallis aa sekä ko ja a. Työkalun
luo e a uus ode iin hy äksi. Empii isen u kimuksen es ijakson aikana ei ö mä y
yh eenkään yökalus a joh u aan i heeseen ai ongelmaan. Tu allisuuden näkökulmas a
yökalua ei juu ikaan päässy yön empii isessä u kimuksessa a ioimaan. Tu kimuksessa
kui enkin ha ai iin, e ä yökalun käy ööno o edelly i oikeuden an amis a kaikkiin
e sionhallinnan p ojek eihin. Ja ku a in eg aa io suo i e iin Ci cleCI- yökalun
pal elimilla, jo en u allisuus oli yökalun pal elinkon igu aa ion a moilla.
Ylläpide ä yyden osal a yökalu on hy ällä asolla. Toimi an kon igu aa ion mää i el yään,
yökalun käy ö ei edelly äny mui a ylläpi o oimenpi ei ä. Paikallis en
komen o i i yökalujen käy ö ode iin ylläpi oa helpo a aksi ekijäksi, e enkin
kon igu aa ion alidoinnissa. Työkalun sii e ä yyden näkökulmas a yökalua on hankala
a ioida, sillä u kimuksessa yökalua käy e iin Ci cleCI:n pal elinympä is össä. Tuki
yökalun käy öön omassa pal elinkon igu aa iossa on sii e ä yy ä edis ä ä ekijä. Usea
ja ku an in eg aa ion yökalu käy ä ä kon igu oinnissa YAML- iedos oja, jo en Ci cleCI-
kon igu aa ion pe usaja us a oi hyödyn ää pohjana oisiin ja ku an in eg aa ion
yökaluihin, aikka syn akseissa onkin e oja.
Kolman ena so el u uuden k i ee inä oli a OCTO3 Oy:n ase ama aa imukse . Työkalun
uli mahdollis aa Reac Na i e -mobiilikehi ysp ojek in ja ku a in eg aa io. Empii isen
u kimuksen koh eena oli Reac Na i e -p ojek i, jonka kon eks issa yökalu ode iin
so el u aksi ja ku an in eg aa ion o eu amiseen. Työkalun ode iin myös uke an mui a
De Ops-mene elmiä a joamalla suo an alus an ja ku an oimi amisen implemen oimiseen
samalla kon igu aa io iedos olla. Empii isessä u kimuksessa implemen oi u ja ku an
in eg aa ion ympä is ö on koh uullisen hy in ois e a issa myös oisiin mobiilip ojek eihin.
Aikaisempia kon igu aa ioi a oidaan hyödyn ää läh ökoh ana muiden as aa anlaisien
mobiilikehi ysp ojek ien ja ku an in eg aa ion implemen oinnissa.
Yleisiä ha ai uja yökalun so el u uu a ajoi a ia ekijöi ä o a yökalun hinnoi elu,
komen o i i yökalun aja aisuus, ue ujen e sionhallin ajä jes elmien ajallisuus, aadi u
si ou uminen a menne ussa iOS-koon i e sioinnissa Fas lane Ma ch - yökaluun sekä
34
And oid-simulaa o i uen puu uminen. Mac-ympä is ön uen puu uminen o ganisaa ion
omalla pal elimella aje aessa on myös me ki ä ä puu e mobiilikehi yskon eks issa.
Ci cleCI on yökaluna melko uo e ja näin ollen yökalu kehi yy ja ku as i. Ja ku a
muu okse ja mahdollinen epä akaus oidaan nähdä yökalun so el u uu a ajoi a ana
ekijänä.
35
6 JOHTOPÄÄTÖKSET
Tämä kappale on omis e u yön u kimuskysymykseen as aamiseen sekä o eu e un
u kimuksen e lek oimiseen. Lisäksi kappaleessa ku a aan yön aiheeseen lii y ä
ja ko u kimuskoh ee .
6.1 Pää elmä
Ki jallisuuska saukseen sekä empii iseen u kimukseen pohjau uen ja ku an in eg aa ion
op imoimiseen ei ole oiko ie ä. Jokaisen ohjelmis okehi ysp ojek in ollessa hieman
e ilainen, ei ja ku aan in eg aa ioon ole yleis ä sapluunaa, jo a nouda amalla pääsisi
pa haaseen loppu ulokseen. Pääosa ja ku an in eg aa ion yökaluis a so el u a hy in
a koi ukseensa ja ne ei ä aadi al a ia ylläpi opanos uksia. Ja ku an in eg aa ion
op imoiminen on kui enkin me ki ä äs i kiinni si ä suo i a as a ahos a,
ohjelmis okehi äjis ä. Op imoin i oi edelly ää uusien oimin a apojen omaksumis a sekä
asennoi umis a ja ku an in eg aa ioon yönkulkua edis ä ällä a alla. Toimin a a ois a
me ki ä in on es auksen kehi äminen, sillä ja ku a in eg aa io hyö yy me ki ä äs i
laadukkaas a ja au oma isoidus a es aus u iinis a. Laadukas ja lyhy kes oinen es i u iini
paljas aa suu emmalla odennäköisyydellä ohjelmis on ongelmakohda ja i hee
mahdollisimman aikaisessa aiheessa sekä op imoi ja ku an in eg aa ion yönkulkua.
Ja ku an in eg aa ion op imoinnissa isossa oolissa on myös kehi äjien osaaminen.
Aikaisemma kokemukse ja ku an in eg aa ion implemen oinnis a ähen ä ä
implemen oin iin kulu aa aikaa sekä mahdollis a a oikeiden yökalujen alinnan ja
yönkulun kehi ämisen. Aikaisemmin oimi aksi ode u implemen aa io on hy ä
läh ökoh a ja ku an in eg aa ion hyödyn ämiselle uudessa as aa anlaisessa p ojek issa.
Työhön ali u pk-y i ys -kon eks i ei sinällään uo me ki ä ää muu os a näkemykseen
ja ku an in eg aa ion op imoinnis a. Ja ku an in eg aa ioon implemen oimiseen sekä
ylläpi oon kulu a esu ssi y i yksen alku aipaleella oi a olla me ki ä ä , mu a pi källä
aika älillä ja ku an in eg aa ion uo ama lisäa o ka aa a mas i siihen kulu a esu ssi .
Ohjelmis on kehi yksen suju uuden sekä sen laadun al onnan pa an uminen o a
pääasioi a, joi a ja ku a in eg aa io oi a jo a. Lisäksi ja ku a in eg aa io oimii
ohjelmis okehi äjälle hy änä ponnis usalus ana oman amma i aidon kehi ämiselle, sillä
ja ku an in eg aa ion op imoin i edelly ää laadukkaiden au omaa i es ien ki joi amis a.
36
Täy yy ie enkin huomioida, e ei kaikissa pk-y i yksen pienemmissä kehi ysp ojek eissa
äl ämä ä ole sijaa mi a alle ja ku an in eg aa ion implemen oimiselle.
Mobiiliohjelmis okehi ys uo ja ku an in eg aa ion implemen oimiseen haas ei a lai eiden
monimuo oisuudella sekä es auksen hankaluudella ja näin ollen ja ku an in eg aa ion
yönkulun op imoin i oi olla haas a ampaa. Työn u kimuksessa ha ai iin, e ei kaikki
suosi uimma ja ku an in eg aa ion yökalu äl ämä ä a joa ukea mobiilikehi ykselle.
Na ii i- ja alus a iippuma oman mobiiliohjelmis okehi yksen e o oi a myös aiheu aa
haas ei a ja ku an in eg aa ion implemen oimiseen. Työn empii isessä u kimuksessa
ha ai iin, e ä e enkin mobiilikehi yskon eks issa ja ku an in eg aa ion op imaalisuus
iippuu paljon käy e ä is ä yökaluis a. Tu kimuksen pohjal a oidaan ode a, e ä ja ku an
in eg aa ion op imoin i mobiilikehi yskon eks issa edelly ää suu emmissa mää in oikeiden
yökalujen alin aa ja niiden un emis a.
Työn lisä u kimuskysymyksinä oli sel i ää, so el uuko ali u yökalu mobiilikehi yksen
a peisiin ja ukeeko ali u yökalu mui a De Ops-käy än ei ä. Työn empii isessä
u kimuksessa implemen oi iin ja ku a in eg aa io Reac Na i e -kehysympä is öllä
kehi e yyn ohjelmis op ojek iin Ci cleCI- yökalulla. Tu kimuksessa hyödynne y p ojek i
sisälsi alus a iippuma on a- ja And oid- ja iOS-na ii ikoodia. Lähdekoodin koon i e sioin i
suo i e iin And oid- ja iOS-alus oille na ii i yökaluilla. Työn empii isessä u kimuksessa
ode iin Ci cleCI- yökalun so el u an na ii i- ja Reac Na i e -kehysympä is öllä
o eu e a aan mobiilikehi ykseen. Empii isessä u kimuksessa ode iin myös yökalun
almius ja ku an oimi amisen oimenpi eiden suo a ii aiseen implemen oin iin ja
a joa an ehokkaan sekä luo e a an alus an ohjelmis okehi yske jun ehos amiseen.
6.2 Re lek io
Työn u kimus e eni suunni elman mukaises i aika aulu us a lukuun o ama a. Työn
u kimuskysymyksiin pys y iin as aamaan, aikkei mobiilikehi yksen ja ku as a
in eg aa ios a me ki ä äs i aikaisempaa u kimus ie oa löy yny kään. Ja ku a in eg aa io on
yleisenä oimin amallina kui enkin melko yksiseli einen ja yleis e ä issä
ohjelmis okehi ysp ojek i yyppien ajojen yli. Kaikki ohjelmis op ojek i sisäl ä ä
lähdekoodia, joka ulisi saa aa suo i e a aan muo oon ja sen laa u ulisi a mis aa. Näin
ollen mobiilikehi ys yön ii ekehyksenä ei aiku anu u kimukseen ko inkaan
me ki ä äs i.
37
Työn empii iseen osuu een, ja ku an in eg aa ion yökalun so el u uuden koes amiseen,
kului odo e ua enemmän aikaa. Empii iselle u kimukselle olisi oinu a a a enemmän
aikaa ja u kimuksen suunni elma olisi oinu olla a kempi. Empii isessä u kimuksessa
saa u e iin kui enkin ase e u u kimus a oi ee . Työkalun so el u uu a olisi oinu
a ioida a kemmin, jos empii iseen u kimukseen olisi hyödynne y p ojek ia, jossa olisi
ollu laajempi es ika aus. Työkalun so el u uus laajempaan au oma isoi uun in eg aa io- ja
sys eemi es aukseen jäi yön u kimuksessa sel i ämä ä. Työkalun uo annollinen käy ö
laajemmassa ohjelmis okehi ysp ojek issa ei myöskään ollu yön olosuh eissa mahdollis a.
Tuo annollisessa käy össä yökalus a olisi oinu ke ä ä enemmän da aa ja empii is ä
u kimus a olisi oinu lähes yä enemmän yön pää u kimuskysymyksen kau a.
6.3 Ja ko u kimus
Työn pää u kimuskysymykseen as a iin pääosin ki jallisuuska sauksen kau a.
Mobiilikehi yksen ja ku an in eg aa ion op imoin ia oisi u kia laajemmin odellis en
uo annollis en ohjelmis op ojek ien kau a. Useamman mobiilikehi ysp ojek in e ailu
niissä hyödynne ä ien ja ku an in eg aa ion implemen aa ioiden osal a a joaisi laajemman
ku an sii ä, millaise oimin amalli ja yökalu o a op imaalisimpia
mobiilikehi ysp ojek eihin. Työn empii is ä u kimus a oisi laajen aa e ailemalla
useampaa ja ku an in eg aa ion yökalua. Ma kkinoilla on usei a yökaluja, jo ka
ma kkinoi a a joa ansa uen mobiilikehi ykselle. Olisi hy ä sel i ää, onko yökaluissa
me ki ä iä e oja. Ja ko u kimuskoh eena oisi olla myös mobiilikehi yksen ja ku a
oimi aminen, jo a yössä si u iin.
38
LÄHTEET
Agile Alliance 2018. 12 P inciples Behind he Agile Mani es o [ e kkodokumen i].
[Vii a u 24.3.2018]. Saa a illa h ps://www.agilealliance.o g/agile101/12-p inciples-
behind- he-agile-mani es o/
Aho, A. V., Lam, S. M., Se hi, R. & Ullman J. D. 2006. Compile s: P inciples,
Techiniques and Tools, 2nd edi ion, Addison Wesley, Bos on.
Akou , M., Falah, B. Ahmad, A. Bou ia , S. & Aleme ien, K. 2016. Mobile So wa e
Tes ing: Though s, S a egies, Challenges and Expe imen al S udy. In e na ional Jou nal
o Ad anced Compu e Science and Applica ions, ol. 7, no. 6, s.12-19
All Abou Ci cui s 2018. Wha a e In eg a ed De elopmen En i onmen s?
[ e kkodokumen i]. [Vii a u 21.05.2018]. Saa a illa
h ps://www.allabou ci cui s.com/ echnical-a icles/wha -a e-in eg a ed-de elopmen -
en i onmen s/
And oid 2018. De elope s: And oid S udio [ e kkodokumen i]. [Vii a u 21.05.2018].
Saa a illa h ps://de elope .and oid.com/s udio/
Apple 2018. De elope Technical No e: Building om Command Line wi h Xcode FAQ
[ e kkodokumen i]. [Vii a u 21.05.2018] Saa a illa
h ps://de elope .apple.com/lib a y/a chi e/ echno es/ n2339/_index.h ml
As egic 2018. 6 Mobile Tes Au oma ion Tools You Should Know Abou
[ e kkodokumen i]. [Vii a u 21.05.2018]. Saa a illa h ps://www.as egic.com/6-mobile-
es -au oma ion- ools-know/
A lassian 2018a. De Ops: B eaking he De elopmen -Ope a ions ba ie
[ e kkodokumen i]. [Vii a u 27.3.2018]. Saa a illa h ps://a lassian.com/de ops
(ja kuu)
Lii e 1. (ja koa)
and oid:
wo king_di ec o y: ~/ eac na i eci/and oid
docke :
- image: ci cleci/and oid:api-27-node8-alpha
en i onmen :
# G adle equi es TERM en i onmen a iable in Ci cleCI
TERM: dumb
s eps:
- checkou :
pa h: ~/ eac na i eci
- a ach_wo kspace:
a : ~/ eac na i eci
- es o e_cache:
key: ja s-{{ checksum "build.g adle" }}-{{ checksum "app/build.g adle" }}
- un:
name: Ins all dependencies
command:
./g adlew and oidDependencies
- sa e_cache:
pa hs:
- ~/.g adle
key: ja s-{{ checksum "build.g adle" }}-{{ checksum "app/build.g adle" }}
- un:
name: Build, es and inspec
command:
./g adlew lin es
- s o e_ es _ esul s:
pa h: app/build/ es - esul s
- un:
name: Build elease
command: ./g adlew clean assembleRelease --no-daemon
- s o e_a i ac s:
pa h: app/build/ epo s
des ina ion: epo s/
- s o e_a i ac s:
pa h: app/build/ou pu s/
des ina ion: ou pu s/
(ja kuu)
Lii e 1. (ja koa)
ios:
macos:
xcode: "9.4.0"
wo king_di ec o y: ~/ eac na i eci
s eps:
- checkou
- es o e_cache:
key: ya n- 1-{{ checksum "ya n.lock" }}-{{ a ch }}
- es o e_cache:
key: node- 1-{{ checksum "package.json" }}-{{ a ch }}
- un:
name: Ins all dependencies
command: ya n ins all
- sa e_cache:
key: ya n- 1-{{ checksum "ya n.lock" }}-{{ a ch }}
pa hs:
- ~/.cache/ya n
- sa e_cache:
key: node- 1-{{ checksum "package.json" }}-{{ a ch }}
pa hs:
- node_modules
- un:
name: Build, es and inspec
command: xcodebuild
-sdk iphonesimula o
-des ina ion 'pla o m=iOS Simula o ,OS=11.2,name=iPhone X'
-scheme " eac na i eci"
clean build es analyze |
xcp e y --colo - juni -o es - esul s/ esul s.xml
wo king_di ec o y: ios
- un:
name: Build elease
command: xcodebuild
-scheme " eac na i eci"
-sdk iphoneos
-con igu a ion elease
CODE_SIGN_IDENTITY=""
CODE_SIGNING_REQUIRED=NO | xcp e y
wo king_di ec o y: ios
- s o e_ es _ esul s:
pa h: ios/ es - esul s
- s o e_a i ac s:
pa h: ios/ es - esul s
des ina ion: ios- es - esul s
(ja kuu)
Lii e 1. (ja koa)
wo k lows:
e sion: 2
commi -node-and oid-ios:
jobs:
- node:
il e s:
b anches:
only: mas e
- and oid:
il e s:
b anches:
only: mas e
equi es:
- node
- ios:
il e s:
b anches:
only: mas e
equi es:
- node
nigh ly-node-and oid-ios:
igge s:
- schedule:
c on: "0 0 * * *" # UTC midnigh
il e s:
b anches:
only:
- mas e
jobs:
- node:
il e s:
b anches:
only: mas e
- and oid:
il e s:
b anches:
only: mas e
equi es:
- node
- ios:
il e s:
b anches:
only: mas e
equi es:
- node