SlideShare a Scribd company logo
Refaktoryzacja systemu
eBankowości
Oddolna inicjatywa programistów
w Nordea IT (obecnie Nordea Bank AB)
Kontekst
• Nordea IT rozwija eBankowość w krajach
bałtyckich
• Biznes długo czeka na zlecone funkcjonalności
(do kilku miesięcy)
• Niektóre zlecenia są niemożliwe do wykonania
z powodów technologicznych
• Biznes zamawia funkcjonalności „na szybko” u
lokalnych dostawców
Cel współpracy (ver. 1)
• Skrócić czas stworzenia nowej funkcjonalności
do 30 dni
• Action-30
Potrzeby
Problemy
Dlaczego?
Chcę uniknąć…
Korzyści
Po co?
Chcę
osiągnąć…
#1 Root Cause Analysis
#1 Root Cause Analysis
• Używanie Struts 1.2
• Nadmierna uniwersalność kodu
#2 Analiza architektury
#2 Analiza architektury
• Przetwarzanie biznesowe na JSP
• Konieczność przestrzegania architektury Struts
1.2
• Silne zależności od innych systemów
• Duża ilość nieużywanego kodu
#3 Analiza procesu dostarczania
#2 Analiza procesu dostarczania
• Multitasking (czas przełączenia się: 30-60
min.)
• Pseudoarytmetyka projektowa (%%)
• Nieefektywne spotkania
• Specjalizacja programistów
Plan działań
• Pracujemy A’la scrum
– A’la sprint trwa 1m-c
– Czwartek – Pomodoro Day
• Pracujemy po 2 osoby nad 1 zadaniem
• 1 zadanie techniczne na pierwszy sprint
– Kilka zadań organizacyjnych
• Wspólna zgoda na unikanie spotkań
A’la sprint #1 - Retro
• ++
– Cel osiągnięty
– Dobrze pracuje się razem; jako zespół i w parach
– Spotkania się ustrukturyzowały i zagęściły
– Udało się poświęcić więcej czasu niż planowaliśmy
• --
– Więcej zespołowego planowania
TeamNorms
• Zawsze pracujemy w 2 osoby
• Regularne 15-min standups
• Świętujemy sukcesy
• Unikamy nieproduktywnych spotkań
• Podkręcamy PomodoroDay – tylko
programowanie, zero spotkań
• …
Podręcznik refaktoryzacji
• „Żeby dodać nowy feature, musisz…”
• „Użyj modułu mavena, aby…”
• …
• Podręcznik ma formę papierową (flipachart)
– Jest aktualizowany podczas codziennych spotkań
– Docelowa będzie na wiki
Obserwacje
• Action-30 żyje własnym życiem, ludzie gadają
• Jak coś jest fajne i ciekawe, to czas się znajdzie
• Manager robi dobrą robotę
Sprint #2 Jak przebić się „wyżej”?
Sprint #2 Jak przebić się „wyżej”?
• Redukcja wierszy kodu o 3%
• Redukcja CC o 15%
Dla tej próbki kodu można by wykonać 29
testów mniej
– aproksymując po całym kodzie…
• przeliczając wykonane testy na dni robocze…
Sprint #2 Wsparcie od biznesu?
• Jakich funkcjonalności do tej pory
odmawialiśmy?
#angularjsworkshop
Obserwacje
• Kierownicy projektów proszą o więcej
• Management zainteresowany Action-30
• Programiści z innych zespołów przyłączają się
do inicjatywy
• Wsparcie od całego managementu i top
managementu
Zdaniem zespołu Action-30
Co dalej?
• Pokazaliśmy biznesowi, że „można”
– Że nie będzie drogie (@see problem)
– Że nie będzie długotrwałe (@see problem)
• Biorą to pod uwagę, gdy powołują nowe
inicjatywy
• Zmiana myślenia, że system nie jest
„zabetonowany”
• Przejmujemy produkty rozwijane przez Grupę dla
krajów nordyckich – development i maintenance
• Wykorzystujemy zdobytą wiedzę
Zadanie domowe ;)
• Które wzorce wprowadzania zmian
zostały wykorzystane w trakcie
pracy, o której rozmawiamy?

More Related Content

Similar to JDD 2016 - Michal Bartyzel, Lukasz Korczynski - Refaktoryzacja Systemu eBankowości

Projekt getin bank
Projekt getin bank Projekt getin bank
Projekt getin bank knaparty
 
Girls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćGirls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząć
monterail
 
Pomysł na analizę w Agile: Agile Modeling
Pomysł na analizę w Agile: Agile ModelingPomysł na analizę w Agile: Agile Modeling
Pomysł na analizę w Agile: Agile Modeling
Paweł Jarosiński
 
Projekty internetowe: książka kucharska czyli... szczypta teorii i kocioł p...
Projekty internetowe: książka kucharska czyli... szczypta teorii i kocioł p...Projekty internetowe: książka kucharska czyli... szczypta teorii i kocioł p...
Projekty internetowe: książka kucharska czyli... szczypta teorii i kocioł p...
Michal Bukowski, MBA, P2P
 
Najnowsze światowe trendy zarządzania projektami
Najnowsze światowe trendy zarządzania projektamiNajnowsze światowe trendy zarządzania projektami
Najnowsze światowe trendy zarządzania projektamiJanusz Pieklik
 
Zawód: programista gier. Jak zacząć pracę w branży?
Zawód: programista gier. Jak zacząć pracę w branży?Zawód: programista gier. Jak zacząć pracę w branży?
Zawód: programista gier. Jak zacząć pracę w branży?
GameDesire Company
 
Agile Silesia - Scrum w zespołach rozproszonych - Łukasz Kempny
Agile Silesia - Scrum w zespołach rozproszonych - Łukasz KempnyAgile Silesia - Scrum w zespołach rozproszonych - Łukasz Kempny
Agile Silesia - Scrum w zespołach rozproszonych - Łukasz Kempny
Agile Silesia
 
Tdd - Czyli jak tworzyć dobre jakościowo aplikacje
Tdd - Czyli jak tworzyć dobre jakościowo aplikacjeTdd - Czyli jak tworzyć dobre jakościowo aplikacje
Tdd - Czyli jak tworzyć dobre jakościowo aplikacje
SPARK MEDIA
 
Lean UX vs Design Thinking (lang: PL)
Lean UX vs Design Thinking (lang: PL)Lean UX vs Design Thinking (lang: PL)
Lean UX vs Design Thinking (lang: PL)
Ideacto
 
Równoległy rozwój Aplikacji Webowych | Codesushi
Równoległy rozwój Aplikacji Webowych | CodesushiRównoległy rozwój Aplikacji Webowych | Codesushi
Równoległy rozwój Aplikacji Webowych | Codesushi
Krzysztof (Chris) Ozog
 
Zwinność w praktyce, Jarek Potiuk
Zwinność w praktyce, Jarek PotiukZwinność w praktyce, Jarek Potiuk
Zwinność w praktyce, Jarek Potiuk
MamStartup
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
Tomasz Borowski
 
Techniczna organizacja zespołu cz 2
Techniczna organizacja zespołu cz 2Techniczna organizacja zespołu cz 2
Techniczna organizacja zespołu cz 2
intive
 
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side developmentTomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
SharePoint Saturday Warsaw
 
Wiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Wiosenne Wieczory ze Scrum 2 Estymacja i PlanowanieWiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Wiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Michał Parkoła
 
Design Thinking vs Lean UX Startup
Design Thinking vs Lean UX StartupDesign Thinking vs Lean UX Startup
Design Thinking vs Lean UX Startup
Marcin Cichoń
 
Skuteczne Zarządzanie Projektami Internetowymi 2015
Skuteczne Zarządzanie Projektami Internetowymi 2015Skuteczne Zarządzanie Projektami Internetowymi 2015
Skuteczne Zarządzanie Projektami Internetowymi 2015
GoTechnologies sp. z o.o.
 
Mateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowej
Mateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowejMateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowej
Mateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowej
PROIDEA
 
Webinar "Nowoczesne wsparcie procesów biznesowych z narzędziem Nintex Workflow"
Webinar "Nowoczesne wsparcie procesów biznesowych z narzędziem Nintex Workflow"Webinar "Nowoczesne wsparcie procesów biznesowych z narzędziem Nintex Workflow"
Webinar "Nowoczesne wsparcie procesów biznesowych z narzędziem Nintex Workflow"
Intratic
 
Dwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówDwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędów
Michal Lukaszewski
 

Similar to JDD 2016 - Michal Bartyzel, Lukasz Korczynski - Refaktoryzacja Systemu eBankowości (20)

Projekt getin bank
Projekt getin bank Projekt getin bank
Projekt getin bank
 
Girls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćGirls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząć
 
Pomysł na analizę w Agile: Agile Modeling
Pomysł na analizę w Agile: Agile ModelingPomysł na analizę w Agile: Agile Modeling
Pomysł na analizę w Agile: Agile Modeling
 
Projekty internetowe: książka kucharska czyli... szczypta teorii i kocioł p...
Projekty internetowe: książka kucharska czyli... szczypta teorii i kocioł p...Projekty internetowe: książka kucharska czyli... szczypta teorii i kocioł p...
Projekty internetowe: książka kucharska czyli... szczypta teorii i kocioł p...
 
Najnowsze światowe trendy zarządzania projektami
Najnowsze światowe trendy zarządzania projektamiNajnowsze światowe trendy zarządzania projektami
Najnowsze światowe trendy zarządzania projektami
 
Zawód: programista gier. Jak zacząć pracę w branży?
Zawód: programista gier. Jak zacząć pracę w branży?Zawód: programista gier. Jak zacząć pracę w branży?
Zawód: programista gier. Jak zacząć pracę w branży?
 
Agile Silesia - Scrum w zespołach rozproszonych - Łukasz Kempny
Agile Silesia - Scrum w zespołach rozproszonych - Łukasz KempnyAgile Silesia - Scrum w zespołach rozproszonych - Łukasz Kempny
Agile Silesia - Scrum w zespołach rozproszonych - Łukasz Kempny
 
Tdd - Czyli jak tworzyć dobre jakościowo aplikacje
Tdd - Czyli jak tworzyć dobre jakościowo aplikacjeTdd - Czyli jak tworzyć dobre jakościowo aplikacje
Tdd - Czyli jak tworzyć dobre jakościowo aplikacje
 
Lean UX vs Design Thinking (lang: PL)
Lean UX vs Design Thinking (lang: PL)Lean UX vs Design Thinking (lang: PL)
Lean UX vs Design Thinking (lang: PL)
 
Równoległy rozwój Aplikacji Webowych | Codesushi
Równoległy rozwój Aplikacji Webowych | CodesushiRównoległy rozwój Aplikacji Webowych | Codesushi
Równoległy rozwój Aplikacji Webowych | Codesushi
 
Zwinność w praktyce, Jarek Potiuk
Zwinność w praktyce, Jarek PotiukZwinność w praktyce, Jarek Potiuk
Zwinność w praktyce, Jarek Potiuk
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
Techniczna organizacja zespołu cz 2
Techniczna organizacja zespołu cz 2Techniczna organizacja zespołu cz 2
Techniczna organizacja zespołu cz 2
 
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side developmentTomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
 
Wiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Wiosenne Wieczory ze Scrum 2 Estymacja i PlanowanieWiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Wiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
 
Design Thinking vs Lean UX Startup
Design Thinking vs Lean UX StartupDesign Thinking vs Lean UX Startup
Design Thinking vs Lean UX Startup
 
Skuteczne Zarządzanie Projektami Internetowymi 2015
Skuteczne Zarządzanie Projektami Internetowymi 2015Skuteczne Zarządzanie Projektami Internetowymi 2015
Skuteczne Zarządzanie Projektami Internetowymi 2015
 
Mateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowej
Mateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowejMateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowej
Mateusz Gajewski - Architektura Allegro - 4 lata po rewolucji mikrousługowej
 
Webinar "Nowoczesne wsparcie procesów biznesowych z narzędziem Nintex Workflow"
Webinar "Nowoczesne wsparcie procesów biznesowych z narzędziem Nintex Workflow"Webinar "Nowoczesne wsparcie procesów biznesowych z narzędziem Nintex Workflow"
Webinar "Nowoczesne wsparcie procesów biznesowych z narzędziem Nintex Workflow"
 
Dwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówDwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędów
 

JDD 2016 - Michal Bartyzel, Lukasz Korczynski - Refaktoryzacja Systemu eBankowości

  • 1. Refaktoryzacja systemu eBankowości Oddolna inicjatywa programistów w Nordea IT (obecnie Nordea Bank AB)
  • 2. Kontekst • Nordea IT rozwija eBankowość w krajach bałtyckich • Biznes długo czeka na zlecone funkcjonalności (do kilku miesięcy) • Niektóre zlecenia są niemożliwe do wykonania z powodów technologicznych • Biznes zamawia funkcjonalności „na szybko” u lokalnych dostawców
  • 3. Cel współpracy (ver. 1) • Skrócić czas stworzenia nowej funkcjonalności do 30 dni • Action-30
  • 4.
  • 6. #1 Root Cause Analysis
  • 7. #1 Root Cause Analysis • Używanie Struts 1.2 • Nadmierna uniwersalność kodu
  • 9. #2 Analiza architektury • Przetwarzanie biznesowe na JSP • Konieczność przestrzegania architektury Struts 1.2 • Silne zależności od innych systemów • Duża ilość nieużywanego kodu
  • 10. #3 Analiza procesu dostarczania
  • 11. #2 Analiza procesu dostarczania • Multitasking (czas przełączenia się: 30-60 min.) • Pseudoarytmetyka projektowa (%%) • Nieefektywne spotkania • Specjalizacja programistów
  • 12. Plan działań • Pracujemy A’la scrum – A’la sprint trwa 1m-c – Czwartek – Pomodoro Day • Pracujemy po 2 osoby nad 1 zadaniem • 1 zadanie techniczne na pierwszy sprint – Kilka zadań organizacyjnych • Wspólna zgoda na unikanie spotkań
  • 13. A’la sprint #1 - Retro • ++ – Cel osiągnięty – Dobrze pracuje się razem; jako zespół i w parach – Spotkania się ustrukturyzowały i zagęściły – Udało się poświęcić więcej czasu niż planowaliśmy • -- – Więcej zespołowego planowania
  • 14. TeamNorms • Zawsze pracujemy w 2 osoby • Regularne 15-min standups • Świętujemy sukcesy • Unikamy nieproduktywnych spotkań • Podkręcamy PomodoroDay – tylko programowanie, zero spotkań • …
  • 15. Podręcznik refaktoryzacji • „Żeby dodać nowy feature, musisz…” • „Użyj modułu mavena, aby…” • … • Podręcznik ma formę papierową (flipachart) – Jest aktualizowany podczas codziennych spotkań – Docelowa będzie na wiki
  • 16. Obserwacje • Action-30 żyje własnym życiem, ludzie gadają • Jak coś jest fajne i ciekawe, to czas się znajdzie • Manager robi dobrą robotę
  • 17. Sprint #2 Jak przebić się „wyżej”?
  • 18. Sprint #2 Jak przebić się „wyżej”? • Redukcja wierszy kodu o 3% • Redukcja CC o 15% Dla tej próbki kodu można by wykonać 29 testów mniej – aproksymując po całym kodzie… • przeliczając wykonane testy na dni robocze…
  • 19. Sprint #2 Wsparcie od biznesu? • Jakich funkcjonalności do tej pory odmawialiśmy? #angularjsworkshop
  • 20. Obserwacje • Kierownicy projektów proszą o więcej • Management zainteresowany Action-30 • Programiści z innych zespołów przyłączają się do inicjatywy • Wsparcie od całego managementu i top managementu
  • 22. Co dalej? • Pokazaliśmy biznesowi, że „można” – Że nie będzie drogie (@see problem) – Że nie będzie długotrwałe (@see problem) • Biorą to pod uwagę, gdy powołują nowe inicjatywy • Zmiana myślenia, że system nie jest „zabetonowany” • Przejmujemy produkty rozwijane przez Grupę dla krajów nordyckich – development i maintenance • Wykorzystujemy zdobytą wiedzę
  • 23. Zadanie domowe ;) • Które wzorce wprowadzania zmian zostały wykorzystane w trakcie pracy, o której rozmawiamy?