CERN IT Department CH-1211 Genève 23 Switzerland t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May 2013
CERN IT Department CH-1211 Genève 23 Switzerland t Introduction Towards agile software development2 CS group –Large infrastructure (network, telephony, Wi-Fi) 3250 network equipment (switches, routers, PABX, …) 950 Wi-Fi station fixed phones / 5700 mobile phones –Limited staffing Automation + Simplified management + Robustness
CERN IT Department CH-1211 Genève 23 Switzerland t Introduction Towards agile software development3 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 Switzerland t Introduction Towards agile software development4
CERN IT Department CH-1211 Genève 23 Switzerland t Introduction Towards agile software development5 ApplicationLanguagesLOC WebReq (users)Perl + Web CSDBWeb (admins)Java + Web CFMGRPerl MagicJava SyslogPerl6 000 WINDJava MIKEPerl + Web NetLivePerl + Web LANDBPL/SQL Main applications
CERN IT Department CH-1211 Genève 23 Switzerland t Introduction Towards agile software development6 More than 200 tables
CERN IT Department CH-1211 Genève 23 Switzerland t Continuous consolidation strategy Towards agile software development7 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 Switzerland t SDLC Towards agile software development8
CERN IT Department CH-1211 Genève 23 Switzerland t 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 development9
CERN IT Department CH-1211 Genève 23 Switzerland t SDLC Towards agile software development10
CERN IT Department CH-1211 Genève 23 Switzerland t Atlassian JIRA used as repository (Backlog) Users requests coming from ServiceNow Long term planning –Program of work –Management decisions SDLC Towards agile software development11
CERN IT Department CH-1211 Genève 23 Switzerland t SDLC Towards agile software development12
CERN IT Department CH-1211 Genève 23 Switzerland t Agile Scrum Towards agile software development13 Daily meeting Weekly meeting <15min≈30min
CERN IT Department CH-1211 Genève 23 Switzerland t Agile Scrum Towards agile software development14 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 Switzerland t Agile Scrum: pragmatic approach –4 weeks meeting: prioritization + estimation –GreenHopper plugin for JIRA Short term planning Towards agile software development15
CERN IT Department CH-1211 Genève 23 Switzerland t Sprint follow-up Short term planning Towards agile software development 16 Daily meeting Weekly meeting <15min≈30min
CERN IT Department CH-1211 Genève 23 Switzerland t SDLC Towards agile software development17
CERN IT Department CH-1211 Genève 23 Switzerland t Architectural Meetings Towards agile software development18 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 Switzerland t Short term development process Towards agile software development19
CERN IT Department CH-1211 Genève 23 Switzerland t Short term development process Towards agile software development20
CERN IT Department CH-1211 Genève 23 Switzerland t Feature Branch Development Towards agile software development21 Static code analysis using Sonar –Only Java code checked –Multiple plugins used
CERN IT Department CH-1211 Genève 23 Switzerland t Feature Branch Development Towards agile software development22
CERN IT Department CH-1211 Genève 23 Switzerland t Feature Branch Development Towards agile software development23 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 Switzerland t Short term development process Towards agile software development24
CERN IT Department CH-1211 Genève 23 Switzerland t Automated tests Towards agile software development25 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 Switzerland t Automated tests Towards agile software development26 Virtual Machines
CERN IT Department CH-1211 Genève 23 Switzerland t Short term development process Towards agile software development27
CERN IT Department CH-1211 Genève 23 Switzerland t Peer review Towards agile software development28 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 Switzerland t Peer review Towards agile software development29
CERN IT Department CH-1211 Genève 23 Switzerland t Short term development process Towards agile software development30
CERN IT Department CH-1211 Genève 23 Switzerland t Build Towards agile software development31 Atlassian Bamboo software used Automated and centralized build process –Backed by SVN repository
CERN IT Department CH-1211 Genève 23 Switzerland t Builds Towards agile software development32
CERN IT Department CH-1211 Genève 23 Switzerland t Short term development process Towards agile software development33
CERN IT Department CH-1211 Genève 23 Switzerland t Summary Towards agile software development34 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 Switzerland t Integrated toolset Towards agile software development35 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 Switzerland t Integrated toolset Towards agile software development36 Documentation: Twiki + Doxygen Statistics: Ohcount (non-Java projects) Monitoring: Spectrum + CS Synapse Evaluating Central Atlassian services
CERN IT Department CH-1211 Genève 23 Switzerland t Questions ? Towards agile software development37 Questions?