Nykyinen näkemys prosessista
CI
Versionhallinta
Deploy
BacklogKehitystyö
Staging/QA
Palaute ja mittaukset
DEV
Tavoite
• Continuous Deployment
• Nopea arvonlisä asiakkaalle
– JIT
• Nopea palaute
• Aina ehjä build
• Hyötyjä saatavissa vaikkei asennuksia tehdäkään jatkuvasti
• A/B –testaus, käyttäjän seuraaminen?
Työkaluja eri vaiheisiin
• Vaatimusten kerääminen ja hallinta• Versionhallinta• Kehitystyökalut• Backlogin hallinta• Koodikatselmointi• Bugiseuranta• Buildaus• Testaus
– Yksikkötestaus– Käyttöliittymätestaus– Hyväksymistestaus– Laatutestaus– Suorituskykytestaus
• CI• Deployment• Kommunikaatio• Virtualisointi
Miksi työkaluja ja automaatiota?
• Automaatio nopeuttaa toistuvia tehtäviä
• Vähemmän mahdollisuuksia tehdä inhimillisiä virheitä
• Kunnon työkaluputken pystyttäminen ei ole triviaalia
– Yleisesti 2 vko setup –aika
– Matala truck number
• Lean SW & DevOps
Miten valita työkalut?
• Tiettyjen toimittajien työkalupinot (esim. Atlassian)
– Integraatio sujuvaa
• Tuttuus aina plussaa
• Mitä muut ovat kokeneet hyväksi
– Blogit
– Yritysten väliset koulutustilaisuudet
Domain Requ
ireme
nts
Elicit
ation
Versio
n
Contro
l
Artifact
Reposito
ry
Backlog
Managem
ent
Provisionin
g &
Environme
nts
Build Continuo
us
Integratio
n
Unit
Testin
g
UI
Testin
g
Bug
Trackin
g
Quality &
Performan
ce
Code
Revie
w
Acceptan
ce
Testing
Deployme
nt
Feedba
ck
Consulting / IT
Products
Consulting / IT
Products
Consulting / IT
Services
Telecom
Products
Telecom
Products
Telecom
Products
Web Platform
Development
Platform
Mobile Games
Mobile Games
Mobile Games
B2B Services
B2B Services
Industrial
Automation
Embedded
Systems
UI Framework
Kehitystyökalut
• Vaatimukset: Jira, Trello
• Versionhallinta: Git, SVN, Mercurial
• Kommunikaatio: IRC, Slack, Skype, Hipchat, Github, Flowdock, Lync, SharePoint, WebExConnect
• Koodikatselmointi: Gerrit
Staattinen analyysi ja dokumentointi
• Javadocs
• Schemaspy
• Swagger
• Checkmarx, Findbugs, SonarQube, Clang, Bullseye, Coverity Prevent, Understand, lint
CI/testaus
• Jenkins, TeamCity, CircleCI, Bamboo, Buildbot
• Robot framework
• Chai, Expect.js, Mockito, Jasmine, Cucumber, Mocha
• Junit
• Load tests: Gatling, flood.io
• Monitorointi: New Relic, Zabbix, Pingdom, AWS Cloudwatch, Jmeter, Google, Yahoo pagespeed
• Selenium, Capybara, Browserstack, Webdriver
Virtualisointi/asennus/IT infra
• Virtuaaliympäristöjä: Virtualbox, Vmware, Docker
• Pilviympäristö: AWS, Rackspace
• Configuraationhallinta: Chef/Puppet
• Servereiden elinkaarenhallinta: Foreman
• Etäserveriautomaatio: Capistrano, Rake
• Mobiilialustat: Hockeyapp
Työkalujen vertailu
• Työkalu-/teknologiavalinnat voivat olla myös arkkitehtuuripäätöksiä.
• Teknologiavertailu
– Toistetaan esim. vuoden välein
– Dokumentoi samalla päätöksen syyt
Työkalujen heikkouksia
• Jotkut työkalut vaativat tiettyjä muita osia työkaluketjusta
• Kieliriippuvuus
• Saattaa pakottaa tietyt ajatusmallit
• Vendor lock-in
• Osaamisen puute