Post on 27-Dec-2015
3
Who we are?
Sergejus Barinovas
Architect at Adform
Email: sergejus.barinovas@[adform|gmail].comBlog: http://sergejus.blogas.ltTwitter: @sergejusb
6
Scrum calculator
2 weeks = 10 work days- 20% (2 days) for Scrum rituals- 1.5 day for integration and manual deployment- 1.5 day for manual testing= 5 work days!
8
Agile best practices to the rescue!
Nightly buildsContinuous integrationUnit testsAutomatic deploymentAutomatic functional and UI testsUnified release packagesContinuous deployment
10
Adform before: basic practices only
All source code in SVNNightly builds on TeamCityFew unit and functional tests
17
Identified problems
Release “jams”Release packages various from team to teamOn-site participation of 1-2 team members during release
19
Eliminating time killers
Integrations done at the endAutomatic builds on commitIntegration tests
Manual deploymentAutomatic deployment to DEV (x2) and INT environments from TeamCity
Manual testingUnit and integration testsFunctional and UI tests (SoapUI, Selenium)
20
Eliminating code horror
Small change requires full regression testingUnit tests Best to have experienced person in place Will require code refactoring Separate data storage from the business logic Are part of the task DONE criteriaIntegration tests Working with DB, Web services, file system, etc.
21
Eliminating release “jams”Unified release packages
MSBuild scripts with custom tasksOne-click principleSingle package for all environmentsInitially takes some time to create, but later is semi- or fully-automatically created on TeamCity
Centralized release serverSingle place to deploy packages to remote servers
22
Quote from the actual letter
Paketai prasisuko be klaidų, jei kokio nors funkcionalumo nėra ar kas nors veikia nekorektiškai – duokit žinoti.
Beje, šį penktadienį buvo sudiegta 13 releasų į 4 aplinkas – tai reiškia, kad 52 releasai per dieną ...
Have a nice day,Laisvis.
23
Adform now: most Agile practices
Nightly buildsContinuous integrationUnit testsAutomatic deploymentAutomatic functional and UI testsUnified release packagesContinuous deployment
24
Adform next: continuous deployment
Nightly buildsContinuous integrationUnit testsAutomatic deploymentAutomatic functional and UI testsUnified release packagesContinuous deployment
26
Who is doing?
WordPress.com“Everyone has access to a deploy button”“Deployment to 400 production servers in our web tier in less than 30 seconds”
FacebookFlickrAtlassianothers...
27
Adform Releazr
Unified way of releasing applications and visualizing release process for developers and release managers across all environments
28
Releazr features
Release planningQuick and easy way to fill release plansAutomatic pre-fill of fields and from historyVisual representation of the current release stateAbility to select group of servers
29
Releazr features
Release dashboardEasy and intuitive way to release applicationsAbility to deploy, rollback and rerelease packagesVisual representation of the current release stateComprehensive release log per package per server
35
Summary
Agile is THE WAY to develop softwareTo be effective teams need to have appropriate cultural and technical skillsWith Agile best practices in place you will be able to continuously deliver valuable software
36
Last note…
We started using Agile best practices because we were forced to, not because it is cool