www.immobilienscout24.de Agile Refactoring @ IS24 gearconf Düsseldorf 11.10.2010 André Neubauer & Oliver Schmitz-Hennemann
I m André Neubauer, find me at andre.neubauer@... devpg.com twitter.com/devpg Team Leader IT Development Researcher, Speaker, Author #web #devops #mobileweb #android #ar Seite 2 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
I m Oliver Schmitz-Hennemann, find me at schmitz@is24.de twitter.com/oschmi Head of IT Architecture OrgDev, agile evangelist, inconvenient Seite 3 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Warning Agile ideas ahead Seite 4 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Immobiliensuche gestern & heute Seite 5 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Some numbers 500 employees 140 IT 67 developer > 4,5 Million unique users > 1,5 Billion Page Impressions > 250 Million Expose views ~ 1,2 Million active listings > 120.000 Vendors per month Seite 6 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Page impressions 1,5 Mrd. 960 Page impressions Mio. 800 640 480 320 160 Jul 04 Jan 05 Jul 05 Jan 06 Jul 06 Jan 07 Jul 07 Jan 08 Jul 08 Jan 09 Jul 09 Jan 10 Seite 7 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer Quelle: ImmobilienScout24, 2004-2010
Availability 100,00% 99,80% 99,50% 99,00% 98,50% 98,00% 97,50% Verfügbarkeit Benchmark Verfügbarkeit 99,8% 97,00% Jul 04 Jan 05 Jul 05 Jan 06 Jul 06 Jan 07 Jul 07 Jan 08 Jul 08 Jan 09 Jul 09 Jan 10 Seite 8 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer Quelle: ImmobilienScout24, 2004-2010
Agile refactoring Seite 9 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Epic Some history Seite 10 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Story People unhappy Seite 11 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
To much legacy Seite 12 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Story Legacy Seite 13 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Story ARC desaster 2007/2008 Seite 14 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
ARC desaster Seite 15 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned No super goals. Focus! Seite 16 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned If you get stuck Get help! Seite 17 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Get external help! Seite 18 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned > 2 month You got stuck! Seite 19 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Ivory tower Seite 20 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Story Scrum 2008 Seite 21 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Why Delayed projects Seite 22 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Why To many topics per team Seite 23 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Why Much more developers Seite 24 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Teams want it CTO wants it Seite 25 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
How Team by team Seite 26 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
How External help Seite 27 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Prod up! Fun up! Energy! Seite 28 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Identifies waste Seite 29 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
A lot of impediments Seite 30 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Get s inconvenient Seite 31 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Epic Agile refactoring Seite 32 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Setting 1/3 2 years Stop the business Seite 33 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Setting 1/3 2 years Don t stop the business Seite 34 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Solution Put 33% of dev into ARC renewal team Seite 35 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Solution But wait Scrum Masters will kill you Seite 36 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
That s inconvenient Seite 37 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Epic Agile refactoring Seite 38 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Do it in the teams Seite 39 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Spread Know how Seite 40 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Seite 41 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Seite 42 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Involve commit Seite 43 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Story Standards Seite 44 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Some Details Hibernate/JPA Springframework SpringMVC/WebFlow Seite 45 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Task Start with OODM Seite 46 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Old architecture Web Tier ServicePool Apache Tomcat servlet filters Portallogic Corba Skeletons ServiceImpl ConfigServlet JSP Web Dialog Service Search MT Web UTIL web modules Workflow Index UTIL Service Wrappers Corba Stubs Business Object Seite 47 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Target architecture Seite 48 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Task Second step Web-Framework migration Seite 49 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Story SPoC CPoC rollout Seite 50 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Have switches Seite 51 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned New Features after SPoC Seite 52 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Prod up! Fun up! Energy! Seite 53 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Story P ARC O Product Owner Seite 54 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
CTO needs control Seite 55 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
CTO needs someone to ask? Seite 56 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
CTO needs Someone to hang! Seite 57 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Task Coordinate Teams & POs Seite 58 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Fight for 1/3 Seite 59 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
OODM 34 epics Seite 60 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
OODM 340 Stories Seite 61 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Have Mr. Pareto in the team Seite 62 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Trust in stack Seite 63 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned No more big things Seite 64 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
OODM Cockpit Über den Berg gelb: wir brauchen ARC-Stories (Stand 04.06.2010) Platform Authentication Account & API Authorization (Priv. & Roles) Customer OC1? Sonst Gerald SPC ShoppingCart Multimedia GIS Geocoding Hierarchy DEV2 sieht Probleme Addresses DEV2/API Offer Realtor Impressum Profile Real estates SM2.0 OC1?!? Angebots- & Exposé- Manager Focus Placement Toplisting Vendor Reporting Umstellung auf online reporting DB ist IT2010 TKM VÖ / Kanäle Expose Search PMI hat Interesse an Einführung von Expose 3.5 für alle Typen Search Shortlist Saved search Fulfillment BUs Leads Im alten Stack, wird vom PM migriert/neu geschrieben Financing Im alten Stack, wird vom PM migriert/neu geschrieben Valuation Relocation Allianz KSC Guideline machen und Team fragen Importer Data Events Misc. ESB Audit Trail Caching Seite 65 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & WTH? André Neubauer Mailer Scheduler & Jobs
Lesson learned Being 2 nd PO for 10 Teams sucks Seite 66 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Not for ARC but 4 you Seite 67 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Seite 68 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Never again Seite 69 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Story What was wrong Seite 70 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned IT/ARC Projects are bad Seite 71 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Project cycle Code Quality Speed Fun years Time Seite 72 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Story make it better Seite 73 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Task What would be agile Seite 74 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Read some books Seite 75 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Craftsmanship Seite 76 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Scout principle Seite 77 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned sustainability Seite 78 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Code Quality Speed Fun Jahre Sprint Time Seite 79 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Task How to reach it? Seite 80 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Fix what hurts most Seite 81 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Let people decide Seite 82 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Sounds simple Seite 83 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
But wait a minute Seite 84 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Task Somebody E Else s Problem Seite 85 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned responsibility requires power Seite 86 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Build environment Seite 87 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Get rid of silos Seite 88 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned With great power comes great responsibility Seite 89 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Give trust and help Seite 90 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Give trust and help Seite 91 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Task Greenfield more Efficient? Seite 92 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
But Seite 93 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned We changed our mindset Seite 94 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Code Quality Speed Fun Jahre Sprint Time Seite 95 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Lesson learned Enables Innovation Seite 96 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
The End People Happy! Seite 97 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
What s next Build 2010 Continuous deployment DevOps? Seite 98 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
Thanks Seite 99 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
IT2010 Increasing Features Quality Increasing Features Ist/Woche Soll Ist/Woche Linear (Ist/Woche) Efficiency Availability, 10,0 Performance 9,0 9,09,0 9,09,0 9,0 9,09,0 8,5 8,5 8,0 7,0 6,0 5,0 4,0 3,0 2,0 1,0 7,0 6,5 5,3 5,0 5,0 4,7 4,7 4,7 4,3 4,34,3 4,3 4,5 4,0 4,0 4,0 3,7 3,3 3,3 3,3 2,7 2,3 2,0 2,0 0,7 7,0 0,0 25.01.2009 15.02.2009 08.03.2009 29.03.2009 19.04.2009 10.05.2009 31.05.2009 21.06.2009 12.07.2009 02.08.2009 23.08.2009 13.09.2009 04.10.2009 25.10.2009 15.11.2009 06.12.2009 27.12.2009 17.01.2010 07.02.2010 28.02.2010 21.03.2010 11.04.2010 02.05.2010 23.05.2010 13.06.2010 04.07.2010 25.07.2010 15.08.2010 05.09.2010 26.09.2010 17.10.2010 07.11.2010 28.11.2010 19.12.2010 Seite 100 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer
IT2010 Improved Quality Quality 80 Test Prod 70 60 50 40 Efficiency Availability, Performance 30 20 10 0 R58 R59 R60 R61 R62 R63 R64 R65 R66 R67 R46 R47 R48 R49 R50 R51 R52 R53 R54 R55 R56 R57 100 90 80 Test Prod Sum Gesamt Polynomisch (Gesamt) 70 60 50 40 30 20 10 0 Seite 101 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer R16 R18 R20 R22/23 R25 R27 R29 R31 R33 R35 R37 R39 R41 R43 R45 R47 R49 R51 R53 R55 R57
Ressources http://agilemanifesto.org/ http://agilemanifesto.org/principles.html http://www.amazon.de/clean-code-handbook-software-craftsmanship/dp/0132350882 http://www.amazon.de/working-effectively-legacy-robert-martin/dp/0131177052 http://www.amazon.de/software-development-principles-patterns-practices/dp/0135974445 Seite 102 agile refactoring @ IS24 gearconf 2010 Oliver Schmitz & André Neubauer