ohjelmistokehityksen työkalut - cs.tut.fiohjsuun/luennot/ohj_tyokalut.pdf · tavoite •continuous...

19
Ohjelmistokehityksen työkalut

Upload: lamngoc

Post on 15-Mar-2018

221 views

Category:

Documents


1 download

TRANSCRIPT

Ohjelmistokehityksen työkalut

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?

Oikean maailman esimerkki

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

Reaalimaailman dokumentointiputki

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

Analytiikka

• SiteCatalyst

• Snoobi

• Clickview

• A/B testaus: Optimizely

• Splunk

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

Vertailumatriisi

Työkalujen heikkouksia

Työkalujen heikkouksia

• Jotkut työkalut vaativat tiettyjä muita osia työkaluketjusta

• Kieliriippuvuus

• Saattaa pakottaa tietyt ajatusmallit

• Vendor lock-in

• Osaamisen puute

That’s all

• Kysymyksiä?