cern it department ch-1211 genève 23 switzerland t towards agile software development marwan...

37
CERN IT Department CH-1211 Genève 23 Switzerland www.cern.ch/ Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May 2013

Upload: bernard-johns

Post on 18-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

Towards agile software development

Marwan Khelif

IT-CS-CT

IT Technical Forum – 31th May 2013

Page 2: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

2

Introduction

Towards agile software development

• CS group– Large infrastructure (network, telephony, Wi-Fi)

• 3250 network equipment (switches, routers, PABX, …)• 950 Wi-Fi station• 12000 fixed phones / 5700 mobile phones

– Limited staffing

Automation+

Simplified management+

Robustness

Page 3: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

3

Introduction

Towards agile software development

• CT section (7 people)– Software for automation– Critical applications

• CERN network and telephony depend on these

High turnover+

Flexible to new user demands

Page 4: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

4

Introduction

Towards agile software development

Page 5: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

5

Introduction

Towards agile software development

Application Languages LOC

WebReq (users) Perl + Web 75 000

CSDBWeb (admins) Java + Web 315 000

CFMGR Perl 150 000

Magic Java 17 000

Syslog Perl 6 000

WIND Java 77 000

MIKE Perl + Web 27 000

NetLive Perl + Web 17 000

LANDB PL/SQL 180 000

• Main applications

Page 6: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

6

Introduction

Towards agile software development

More than 200 tables

Page 7: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

7

Continuous consolidation strategy

Towards agile software development

• Programming languages– Java, Perl, PL/SQL, Web (JS, HTML, …)

• Technologies– Web, Rich Client, command line

• Architectures• Software development life cycle (SDLC)

Knowledge consolidation

Page 8: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

8

SDLC

Towards agile software development

Page 9: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

9

• Full process setup since November 2011

• Adapted to our needs

• Main goals:– Simplify software development management– Improve code quality / applications reliability– Ease knowledge transfer to new members

SDLC

Towards agile software development

Page 10: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

10

SDLC

Towards agile software development

Page 11: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

11

• Atlassian JIRA used as repository (Backlog)

• Users requests coming from ServiceNow

• Long term planning– Program of work– Management decisions

SDLC

Towards agile software development

Page 12: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

12

SDLC

Towards agile software development

Page 13: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

13

Agile Scrum

Towards agile software development

Dailymeeting

Weeklymeeting

<15min ≈30min

Page 14: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

14

Agile Scrum

Towards agile software development

• Time-boxing– Retrospective (feedback) planning refinement

• Self empowered and organized– Requires team commitment

• Shippable code– Incremental releases

Page 15: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

15

• Agile Scrum: pragmatic approach– 4 weeks meeting: prioritization + estimation– GreenHopper plugin for JIRA

Short term planning

Towards agile software development

Page 16: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

16

• Sprint follow-up

Short term planning

Towards agile software development

Dailymeeting

Weeklymeeting<15min ≈30min

Page 17: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

17

SDLC

Towards agile software development

Page 18: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

18

Architectural Meetings

Towards agile software development

• For new critical/complex features

• Decide on functional implementations– Involve end-users for validation

• Homogenize technical architecture

Page 19: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

19

Short term development process

Towards agile software development

Page 20: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

20

Short term development process

Towards agile software development

Page 21: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

21

Feature Branch Development

Towards agile software development

• Static code analysis using Sonar– Only Java code checked– Multiple plugins used

Page 22: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

22

Feature Branch Development

Towards agile software development

Page 23: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

23

Feature Branch Development

Towards agile software development

• Commit validation (RepoGuard)– SVN hook applied before each commit– Code checked against Checkstyle rules– Commit aborted if check fails

Page 24: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

24

Short term development process

Towards agile software development

Page 25: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

25

Automated tests

Towards agile software development

• Selenium based GUI testing (Web)– End-user experience validation– Detect integration problems

• Grid distribution of tests– Virtual Machines execute tests– Each test is executed against Firefox/Chrome/IE

Page 26: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

26

Automated tests

Towards agile software development

Virtual Machines

Page 27: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

27

Short term development process

Towards agile software development

Page 28: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

28

Peer review

Towards agile software development

• At least 2 developers need to validate

• Detect issues and improve architecture

• Homogenize code style

• Transfer of knowledge

Page 29: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

29

Peer review

Towards agile software development

Page 30: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

30

Short term development process

Towards agile software development

Page 31: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

31

Build

Towards agile software development

• Atlassian Bamboo software used

• Automated and centralized build process– Backed by SVN repository

Page 32: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

32

Builds

Towards agile software development

Page 33: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

33

Short term development process

Towards agile software development

Page 34: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

34

Summary

Towards agile software development

• Continuous process improvement– From developers feedback

• Knowledge sharing is part of the process

• Empowers the team Team commitment

• Improves software quality

Page 35: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

35

Integrated toolset

Towards agile software development

JIRA

Tracking System

Bamboo

Build System

GreenHopper

Planning

Fisheye+

Crucible

Review

Selenium

Testing

Sonar

Analysis

SVN+

Repoguard

Repository

ServiceNow

Support

Page 36: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

36

Integrated toolset

Towards agile software development

• Documentation: Twiki + Doxygen

• Statistics: Ohcount (non-Java projects)

• Monitoring: Spectrum + CS Synapse

• Evaluating Central Atlassian services

Page 37: CERN IT Department CH-1211 Genève 23 Switzerland  t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May

CERN IT Department

CH-1211 Genève 23

Switzerlandwww.cern.ch/

it

37

Questions ?

Towards agile software development

Questions?