37
Agile Practices

Agile Practices

  • Upload
    hina

  • View
    25

  • Download
    0

Embed Size (px)

DESCRIPTION

Agile Practices. Who we are?. Gedimas Guoba Architect at Adform Email : [email protected]. 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

Citation preview

Page 1: Agile Practices

Agile Practices

Page 2: Agile Practices

2

Who we are?

Gedimas Guoba

Architect at Adform

Email: [email protected]

Page 3: Agile Practices

3

Who we are?

Sergejus Barinovas

Architect at Adform

Email: sergejus.barinovas@[adform|gmail].comBlog: http://sergejus.blogas.ltTwitter: @sergejusb

Page 4: Agile Practices

4

Disclaimer

We’ve been using Agile for 2 years and we want to share our experience with you!

Page 5: Agile Practices

5

In 2 weeks sprint only 5 days* are spent for actual development

* for the new Agile team

Page 6: Agile Practices

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!

Page 7: Agile Practices

7

Challenge

How to increase number of development days up-to 7 (~30%) ?

Page 8: Agile Practices

8

Agile best practices to the rescue!

Nightly buildsContinuous integrationUnit testsAutomatic deploymentAutomatic functional and UI testsUnified release packagesContinuous deployment

Page 9: Agile Practices

9

Unfortunately, not every company uses Agile best practices

Page 10: Agile Practices

10

Adform before: basic practices only

All source code in SVNNightly builds on TeamCityFew unit and functional tests

Page 11: Agile Practices

11

Known fact

Without appropriate cultural and technical skills Agile teams will FAIL

Page 12: Agile Practices

12

Nevertheless, let’s do Scrum!

Page 13: Agile Practices

13

Sprint #1, #2, …

We are too slow!

Page 14: Agile Practices

14

What are the problems?

Page 15: Agile Practices

15

Identified problems

Time killersManual testingManual deploymentIntegrations done at the end

Page 16: Agile Practices

16

Identified problems

Code horrorSmall change requires full regression testing

Page 17: Agile Practices

17

Identified problems

Release “jams”Release packages various from team to teamOn-site participation of 1-2 team members during release

Page 18: Agile Practices

Release “jams”

18

Release managerTeam releases

Awaiting teams

PROD

Page 19: Agile Practices

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)

Page 20: Agile Practices

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.

Page 21: Agile Practices

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

Page 22: Agile Practices

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.

Page 23: Agile Practices

23

Adform now: most Agile practices

Nightly buildsContinuous integrationUnit testsAutomatic deploymentAutomatic functional and UI testsUnified release packagesContinuous deployment

Page 24: Agile Practices

24

Adform next: continuous deployment

Nightly buildsContinuous integrationUnit testsAutomatic deploymentAutomatic functional and UI testsUnified release packagesContinuous deployment

Page 25: Agile Practices

25

Continuous deployment

Continuous, successful and repeatable methodology to deploying code

Page 26: Agile Practices

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...

Page 27: Agile Practices

27

Adform Releazr

Unified way of releasing applications and visualizing release process for developers and release managers across all environments

Page 28: Agile Practices

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

Page 29: Agile Practices

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

Page 30: Agile Practices

30

Page 31: Agile Practices

31

Page 32: Agile Practices

32

Page 33: Agile Practices

33

Page 34: Agile Practices

34

We are still in very early stage with Releazr and continuous deployment in general

Page 35: Agile Practices

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

Page 36: Agile Practices

36

Last note…

We started using Agile best practices because we were forced to, not because it is cool

Page 37: Agile Practices

37