SlideShare a Scribd company logo
Z czym mierzą się zespoły?
Michał Bartyzel
mbartyzel.blogspot.com
@MichalBartyzel
Podsumowanie
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Znam najlepsze sposoby na
wszystkie problemy w
wytwarzaniu oprogramowania
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Technologie wciąż potykają się
o te same problemy
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
„Biznes” znajduje się w głowie
klienta
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Techniki refaktoryzacji to za mało,
aby zrobid cokolwiek użytecznego
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
*-Driven * nieczego nie zmienią
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Kluczem do Software
Craftsmanship są umiejętności
lingwistyczne
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
• Java
• XP/Scrum
• TDD
• OOP, SOLID, GoF, PEAA, POSA
• CI
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Pierwsze obserwacje
Warstwa usług
Warstwa prezentacji
Java, .NET, Delphi
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Wciąż bałagan i brak testowalności…
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Blog: Presentation Layer Under Control
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Blog: Presentation Layer Under Control
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Kiedyś wystarczyło
wszystko porządnie
nazwać i wiadomo
było, o co chodzi…
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Technologie wciąż potykają się
o te same problemy
jedne rozwiązują
inne tworzą
dopóki nie zmienią paradygmatu
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Kontrakt „życia”
Zaprojektowad architekturę systemu
ERP w firmie budowlanej
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
i jeszcze jeden podobny przypadek
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
i jeszcze jeden…
Jakiego narzędzia użyd?
Jakiej metodyki użyd?
No, a modelowanie??
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
„Biznes” znajduje się
w głowie klienta
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Był sobie system….
• 12 lat
• ~2 MLOC
• C++ => Java
• public class… => ~40 kLOC
• Kontrakt: Tego się nie da rozwijad, zróbcie coś….
Quiz: Których refaktoryzacji użyd?
a) Move Method?
b) Rename Variable?
c) Replace Constructor with Factory?
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Cel refaktoryzacji?
1. Zatrzymaj dalsze psucie
2. Naprawiaj
youTube: Strategiczna Refaktoryzacja
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
infoQ: Natural Course of Refactoring – a Refactoring Workflow
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Scrum to jeden proces
Archban to drugi
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Techniki refaktoryzacji to za mało,
aby zrobid cokolwiek użytecznego
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Rich Domain Model zdobywa salony!
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
• Zbyt dużą odpowiedzialnośd entities
• Brak value objects
• Mnożenie metod zamiast ich domykania
– order.purchase();
– order.purchaseAndDicount(couponId);
– order.purchaseWith(coupon);
Wniosek
W głowach programistów brakuje słów
do nazywania elementów modelu
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Czy masz kontakt z
ekspertem domenowym?
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Kto wymyśla *-Driven * ?
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
infoQ: *-Driven* do not change anything
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
*-Driven * nieczego nie zmienią
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
• Ubiquitous Language
• Bounded Context
Quiz: Jakie jest schorzenie
zawodowe programistów?
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Nazwa klasy cLOC
LocationManager 26 752
NetworkItem 10 955
TransferOperations 6 871
CalculatorsManager 4 325
MonitorManager 1 514
VTViewInvoker 48
ContactService 47
Address 34
DataRange 21
LoggedUserDetailsModel 13
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Kluczem do Software
Craftsmanship są umiejętności
lingwistyczne
S.O.L.I.D
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
infoQ: Conversation Patterns for Software Professionals. Part 1
infoQ: Conversation Patterns for Software Professionals. Part 2
infoQ: Conversation Patterns for Software Professionals. Part 3
Podsumowanie
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Znam najlepsze sposoby na
wszystkie problemy w
wytwarzaniu oprogramowania
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Technologie wciąż potykają się
o te same problemy
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
„Biznes” znajduje się w głowie
klienta
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Techniki refaktoryzacji to za mało,
aby zrobid cokolwiek użytecznego
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
*-Driven * nieczego nie zmienią
2015
2014
2013
2012
2011
2010
2009
2008
….
2004
Kluczem do Software
Craftsmanship są umiejętności
lingwistyczne
Z czym mierzą się zespoły?
Michał Bartyzel
mbartyzel.blogspot.com
@MichalBartyzel

More Related Content

More from Michał Bartyzel

Developer prowadzi szkolenia
Developer prowadzi szkoleniaDeveloper prowadzi szkolenia
Developer prowadzi szkolenia
Michał Bartyzel
 
Getting Things Programmed
Getting Things ProgrammedGetting Things Programmed
Getting Things Programmed
Michał Bartyzel
 
Jak sprzedać refaktoryzację? Nordea Bank AB Case
Jak sprzedać refaktoryzację? Nordea Bank AB CaseJak sprzedać refaktoryzację? Nordea Bank AB Case
Jak sprzedać refaktoryzację? Nordea Bank AB Case
Michał Bartyzel
 
[PL, 2017] Conversation Patterns for Software Professionals
[PL, 2017] Conversation Patterns for Software Professionals[PL, 2017] Conversation Patterns for Software Professionals
[PL, 2017] Conversation Patterns for Software Professionals
Michał Bartyzel
 
Od codziennej higieny do strategicznej refaktoryzacji
Od codziennej higieny do strategicznej refaktoryzacjiOd codziennej higieny do strategicznej refaktoryzacji
Od codziennej higieny do strategicznej refaktoryzacji
Michał Bartyzel
 
Kanban na lodówce
Kanban na lodówceKanban na lodówce
Kanban na lodówce
Michał Bartyzel
 
[Geek Girls Carrots] Agile being
[Geek Girls Carrots] Agile being[Geek Girls Carrots] Agile being
[Geek Girls Carrots] Agile being
Michał Bartyzel
 
Co jest czym w obszarze miękkim?
Co jest czym w obszarze miękkim?Co jest czym w obszarze miękkim?
Co jest czym w obszarze miękkim?
Michał Bartyzel
 
[JUG, PL] Strategiczna refaktoryzacja
[JUG, PL] Strategiczna refaktoryzacja[JUG, PL] Strategiczna refaktoryzacja
[JUG, PL] Strategiczna refaktoryzacja
Michał Bartyzel
 
[Pl] conversation patterns for software professionals
[Pl] conversation patterns for software professionals[Pl] conversation patterns for software professionals
[Pl] conversation patterns for software professionals
Michał Bartyzel
 
[Confitura 2013] Nie ma jednej słusznej drogi - różne podejścia do architektu...
[Confitura 2013] Nie ma jednej słusznej drogi - różne podejścia do architektu...[Confitura 2013] Nie ma jednej słusznej drogi - różne podejścia do architektu...
[Confitura 2013] Nie ma jednej słusznej drogi - różne podejścia do architektu...
Michał Bartyzel
 
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...
Michał Bartyzel
 
Conversation patters for ubiquitous language
Conversation patters for ubiquitous languageConversation patters for ubiquitous language
Conversation patters for ubiquitous language
Michał Bartyzel
 
[33rd] x driven-y niczego nie zmienią
[33rd] x driven-y niczego nie zmienią[33rd] x driven-y niczego nie zmienią
[33rd] x driven-y niczego nie zmienią
Michał Bartyzel
 
[4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów
[4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów[4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów
[4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistówMichał Bartyzel
 
Diagram sekwencji
Diagram sekwencjiDiagram sekwencji
Diagram sekwencji
Michał Bartyzel
 
xUnit - narzędzie do testowania
xUnit - narzędzie do testowaniaxUnit - narzędzie do testowania
xUnit - narzędzie do testowania
Michał Bartyzel
 
Wzorce kreacyjne GoF
Wzorce kreacyjne GoFWzorce kreacyjne GoF
Wzorce kreacyjne GoF
Michał Bartyzel
 

More from Michał Bartyzel (18)

Developer prowadzi szkolenia
Developer prowadzi szkoleniaDeveloper prowadzi szkolenia
Developer prowadzi szkolenia
 
Getting Things Programmed
Getting Things ProgrammedGetting Things Programmed
Getting Things Programmed
 
Jak sprzedać refaktoryzację? Nordea Bank AB Case
Jak sprzedać refaktoryzację? Nordea Bank AB CaseJak sprzedać refaktoryzację? Nordea Bank AB Case
Jak sprzedać refaktoryzację? Nordea Bank AB Case
 
[PL, 2017] Conversation Patterns for Software Professionals
[PL, 2017] Conversation Patterns for Software Professionals[PL, 2017] Conversation Patterns for Software Professionals
[PL, 2017] Conversation Patterns for Software Professionals
 
Od codziennej higieny do strategicznej refaktoryzacji
Od codziennej higieny do strategicznej refaktoryzacjiOd codziennej higieny do strategicznej refaktoryzacji
Od codziennej higieny do strategicznej refaktoryzacji
 
Kanban na lodówce
Kanban na lodówceKanban na lodówce
Kanban na lodówce
 
[Geek Girls Carrots] Agile being
[Geek Girls Carrots] Agile being[Geek Girls Carrots] Agile being
[Geek Girls Carrots] Agile being
 
Co jest czym w obszarze miękkim?
Co jest czym w obszarze miękkim?Co jest czym w obszarze miękkim?
Co jest czym w obszarze miękkim?
 
[JUG, PL] Strategiczna refaktoryzacja
[JUG, PL] Strategiczna refaktoryzacja[JUG, PL] Strategiczna refaktoryzacja
[JUG, PL] Strategiczna refaktoryzacja
 
[Pl] conversation patterns for software professionals
[Pl] conversation patterns for software professionals[Pl] conversation patterns for software professionals
[Pl] conversation patterns for software professionals
 
[Confitura 2013] Nie ma jednej słusznej drogi - różne podejścia do architektu...
[Confitura 2013] Nie ma jednej słusznej drogi - różne podejścia do architektu...[Confitura 2013] Nie ma jednej słusznej drogi - różne podejścia do architektu...
[Confitura 2013] Nie ma jednej słusznej drogi - różne podejścia do architektu...
 
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...
 
Conversation patters for ubiquitous language
Conversation patters for ubiquitous languageConversation patters for ubiquitous language
Conversation patters for ubiquitous language
 
[33rd] x driven-y niczego nie zmienią
[33rd] x driven-y niczego nie zmienią[33rd] x driven-y niczego nie zmienią
[33rd] x driven-y niczego nie zmienią
 
[4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów
[4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów[4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów
[4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów
 
Diagram sekwencji
Diagram sekwencjiDiagram sekwencji
Diagram sekwencji
 
xUnit - narzędzie do testowania
xUnit - narzędzie do testowaniaxUnit - narzędzie do testowania
xUnit - narzędzie do testowania
 
Wzorce kreacyjne GoF
Wzorce kreacyjne GoFWzorce kreacyjne GoF
Wzorce kreacyjne GoF
 

[chamberconf] Z czym mierzą się zespoły?