cern it department ch-1211 genève 23 switzerland t towards agile software development marwan...
TRANSCRIPT
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
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
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
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
4
Introduction
Towards agile software development
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
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
6
Introduction
Towards agile software development
More than 200 tables
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
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
8
SDLC
Towards agile software development
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
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
10
SDLC
Towards agile software development
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
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
12
SDLC
Towards agile software development
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
13
Agile Scrum
Towards agile software development
Dailymeeting
Weeklymeeting
<15min ≈30min
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
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
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
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
17
SDLC
Towards agile software development
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
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
19
Short term development process
Towards agile software development
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
20
Short term development process
Towards agile software development
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
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
22
Feature Branch Development
Towards agile software development
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
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
24
Short term development process
Towards agile software development
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
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
26
Automated tests
Towards agile software development
Virtual Machines
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
27
Short term development process
Towards agile software development
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
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
29
Peer review
Towards agile software development
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
30
Short term development process
Towards agile software development
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
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
32
Builds
Towards agile software development
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
33
Short term development process
Towards agile software development
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
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
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
CERN IT Department
CH-1211 Genève 23
Switzerlandwww.cern.ch/
it
37
Questions ?
Towards agile software development
Questions?