Prezentacja, którą przedstawiłem w trakcie konferencji 33rd Degree. Pamiętaj - nie chodzi tu o krytykę TDD, DDD, BDD itd. Chodzi o zachętę do samodzielnego myślenia.
3. www.bnsit.pl
A. Rozwiązuje problemy poprzedników
B. Rozwiązuje problemy znane jego twórcom
• Tych nieznanych nie rozwiązuje
C. Wprowadza nowe „zasady gry”
• Generuje nowe problemy
D. Nowe problemy są wyzwaniem dla kolejnego
frameworka
E. GOTO A
Refleksja: Kolejny framework…
Zwiększamy efektywność zespołów projektowych 3
4. www.bnsit.pl
Coś nowego
Zwiększamy efektywność zespołów projektowych 4
Domain-Driven Design
Test-Driven Developmen
Behavior-Driven Development
Data-Driven Design
Data-Driven DevelopmentUse Case-Driven Design
Use Case-Driven DevelopmentArchitecture-Driven Design
Architecture-Driven Development
Model-Driven Development
Agile Model-Driven DevelopmentData-Driven Design
Data-Driven Development
Use Case-Driven Development
Design Use Case-Driven
Architecture-Driven Design
Architecture-Driven Development
Use Case-Driven Design
*-Driven *
15. www.bnsit.pl
# Przykład: DDDD by Greg Young
• http://abdullin.com/storage/uploads/2010/04/2010-04-
16_DDDD_Drafts_by_Greg_Young.pdf
Dlaczego tak się dzieje? Przykład DDD
Zwiększamy efektywność zespołów projektowych 15
„ (…) this architecture will be “good enough”
for 80% of the projects that they run into”
17. www.bnsit.pl
# Strategie myślenia i postępowania
# Uporządkowany sposób działania
# Sposób na …
Framework mentalny *-Driven *
Zwiększamy efektywność zespołów projektowych 17
22. www.bnsit.pl
# Obiecuje Ci, że:
• błędy wykryjesz na wczesnym etapie
• stworzysz tylko tyle kodu ile to konieczne
• dobry design
• prawie zapomnisz o debugerze
# Chwytliwe memy:
• Red-Green-Refactor
• Unit testing
Przykład: TDD rozumiane czysto mechanicznie
Zwiększamy efektywność zespołów projektowych 22
23. www.bnsit.pl
# Obiecuje Ci, że:
• we właściwy sposób zastosujesz programowanie
obiektowe
• elastyczną architekturę
• odwzorowanie rzeczywistości => przygotowanie na
kolejne wymagania
# Chwytliwe memy:
• Building Blocks
• Unambiguous Language
• Strategic Design
Przykład: DDD rozumiane czysto buildingblokowo
Zwiększamy efektywność zespołów projektowych 23
31. www.bnsit.pl
# Wyprowadzanie logicznych wniosków
# Niekoniecznie sprawdzonych w rzeczywistości
# Wnioski można weryfikować, ale…czas
Prace nad koncepcją *-Driven (i książką)
Zwiększamy efektywność zespołów projektowych 31
32. www.bnsit.pl
What I’ve learnt about DDD since the book
• www.infoq.com/presentations/ddd-eric-evans
• Podkreślenie roli Bounded Context
• Doprecyzowanie znaczenia Domain Event
• Doprecyzowanie relacji między Bounded Contexts
• Krytyka Context Map
• Proces Model Exploration Whirpool
Przykład: DDD i Strategic Design
Zwiększamy efektywność zespołów projektowych 32
39. www.bnsit.pl
# Czym mam wystarczające doświadczenie
i umiejętności, aby zastosować *-Driven?
# Czy zastosowanie *-Driven * jest dla mnie
zbyt trudne?
# Ile będzie kosztować moja nauka?
Pytania, które zadajemy zbyt rzadko?
Zwiększamy efektywność zespołów projektowych 39
45. www.bnsit.pl
Czy to oznacza, że zniechęcam
do
TDD, BDD, DDD, DDDD, etc. ?
Zwiększamy efektywność zespołów projektowych 45
46. www.bnsit.pl
Czy to oznacza, że zniechęcam
do
TDD, BDD, DDD, DDDD, etc. ?
Zwiększamy efektywność zespołów projektowych 46
47. www.bnsit.pl
1. Buduj swoje doświadczenie
2. Ułatwiaj sobie pracę za pomocą
frameworków mentalnych
Chodzi o priorytety
Zwiększamy efektywność zespołów projektowych 47
55. www.bnsit.pl
Z jakimi programistami chcą pracować klienci?
Jakich programistów cenią liderzy?
Zwiększamy efektywność zespołów projektowych 55
56. www.bnsit.pl Zwiększamy efektywność zespołów projektowych 56
Z jakimi programistami chcą pracować klienci?
Jakich programistów cenią liderzy?
57. www.bnsit.pl Zwiększamy efektywność zespołów projektowych 57
Z jakimi programistami chcą pracować klienci?
Jakich programistów cenią liderzy?
Zaangażowany := robi wszystko co konieczne,
aby doprowadzić sprawy do końca
58. www.bnsit.pl
i niewielkie umiejętności techniczne
• Raczej tak
duże umiejętności techniczne bez
• Raczej nie
Czy zatrudnisz programistę?
Zwiększamy efektywność zespołów projektowych 58
65. www.bnsit.pl
# W latach?
# W liczbie „wyłożonych” projektów?
# W zmienności:
• Projektów
• Branż
• Współpracowników
• Technologii
W czym się mierzy doświadczenie?
Zwiększamy efektywność zespołów projektowych 65
70. www.bnsit.pl
A zatem
Zwiększamy efektywność zespołów projektowych 70
# Pracuj z lepszymi od siebie
# Szukaj różnorodności
# Nie zwalaj winy za
niepowodzenia na czynniki
zewnętrzne
# Nie przywiązuj się zbytnio
do swojego zdania
71. www.bnsit.pl
1. Buduj doświadczenie
2. Ułatwiaj sobie życie za pomocą *-Driven *
Podsumowanie
Zwiększamy efektywność zespołów projektowych 71
# Szukaj mentorów
# Szukaj
różnorodności
# Bądź wytrwały
# Przeprowadzaj
retrospekcje
# Praktykuj pokorę
72. DZIĘKUJĘ ZA WASZ CZAS!
Michał Bartyzel
mbartyzel.blogspot.com
@MichalBartyzel