Agile Practices

Post on 23-Feb-2016

25 views 0 download

Tags:

description

Agile Practices. Who we are?. Gedimas Guoba Architect at Adform Email : gediminas.guoba@adform.com. Who we are?. Sergejus Barinovas Architect at Adform Email : sergejus.barinovas @[ adform|gmail ].com Blog : http://sergejus.blogas.lt Twitter : @ sergejusb. Disclaimer. - PowerPoint PPT Presentation

Transcript of Agile Practices

Agile Practices

2

Who we are?

Gedimas Guoba

Architect at Adform

Email: gediminas.guoba@adform.com

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