Agile Practices
description
Transcript of Agile Practices
Agile Practices
3
Who we are?
Sergejus Barinovas
Architect at Adform
Email: sergejus.barinovas@[adform|gmail].comBlog: http://sergejus.blogas.ltTwitter: @sergejusb
4
Disclaimer
We’ve been using Agile for 2 years and we want to share our experience with you!
5
In 2 weeks sprint only 5 days* are spent for actual development
* for the new Agile team
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!
7
Challenge
How to increase number of development days up-to 7 (~30%) ?
8
Agile best practices to the rescue!
Nightly buildsContinuous integrationUnit testsAutomatic deploymentAutomatic functional and UI testsUnified release packagesContinuous deployment
9
Unfortunately, not every company uses Agile best practices
10
Adform before: basic practices only
All source code in SVNNightly builds on TeamCityFew unit and functional tests
11
Known fact
Without appropriate cultural and technical skills Agile teams will FAIL
12
Nevertheless, let’s do Scrum!
13
Sprint #1, #2, …
We are too slow!
14
What are the problems?
15
Identified problems
Time killersManual testingManual deploymentIntegrations done at the end
16
Identified problems
Code horrorSmall change requires full regression testing
17
Identified problems
Release “jams”Release packages various from team to teamOn-site participation of 1-2 team members during release
Release “jams”
18
Release managerTeam releases
Awaiting teams
PROD
19
Eliminating time killersIntegrations done at the end
Automatic 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 horrorSmall change requires full regression testing
Unit 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
25
Continuous deployment
Continuous, successful and repeatable methodology to deploying code
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
30
31
32
33
34
We are still in very early stage with Releazr and continuous deployment in general
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
37