[33rd] x driven-y niczego nie zmienią
-
Upload
michal-bartyzel -
Category
Education
-
view
1.460 -
download
3
description
Transcript of [33rd] x driven-y niczego nie zmienią
X-DRIVEN DESIGN, Y-DRIVEN DEVELOPMENT NICZEGO
NIE ZMIENIĄ
Michał Bartyzel
mbartyzel.blogspot.com
@MichalBartyzel
www.bnsit.pl
„Lepszy” framework
Zwiększamy efektywność zespołów projektowych 2
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
www.bnsit.pl
Coś nowego
Zwiększamy efektywność zespołów projektowych 4
Domain-Driven Design
Test-Driven Development Behavior-Driven Development
Data-Driven Design
Data-Driven Development Use Case-Driven Design
Use Case-Driven Development Architecture-Driven Design
Architecture-Driven Development Model-Driven Development
Agile Model-Driven Development Data-Driven Design
Data-Driven Development Use Case-Driven Development
Design Use Case-Driven Architecture-Driven Design
Architecture-Driven Development
Use Case-Driven Design
*-Driven *
www.bnsit.pl
*-Driven * wzmagają zjawiska społeczne
Zwiększamy efektywność zespołów projektowych 5
www.bnsit.pl
*-Driven * wzmagają zjawiska społeczne
Zwiększamy efektywność zespołów projektowych 6
www.bnsit.pl
*-Driven * wzmagają zjawiska społeczne
Zwiększamy efektywność zespołów projektowych 7
www.bnsit.pl
*-Driven * wzmagają zjawiska społeczne
Zwiększamy efektywność zespołów projektowych 8
www.bnsit.pl
*-Driven * wzmagają zjawiska społeczne
Zwiększamy efektywność zespołów projektowych 9
www.bnsit.pl
*-Driven * wzmagają zjawiska społeczne
Zwiększamy efektywność zespołów projektowych 10
www.bnsit.pl
*-Driven * wzmagają zjawiska społeczne
Zwiększamy efektywność zespołów projektowych 11
www.bnsit.pl
*-Driven * wzmagają zjawiska społeczne
Zwiększamy efektywność zespołów projektowych 12
www.bnsit.pl
*-Driven * wzmagają zjawiska społeczne
Zwiększamy efektywność zespołów projektowych 13
www.bnsit.pl
*-Driven * wzmagają zjawiska społeczne
Zwiększamy efektywność zespołów projektowych 14
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”
www.bnsit.pl
Programiści lubią frameworki
Dlaczego tak się dzieje?
Zwiększamy efektywność zespołów projektowych 16
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
www.bnsit.pl
Dlaczego frameworki mentalne są popularne?
Zwiększamy efektywność zespołów projektowych 18
www.bnsit.pl
Framework odrywa się od intencji jego twórcy
Zwiększamy efektywność zespołów projektowych 19
www.bnsit.pl
Klucz do powodzenia frameworka
Zwiększamy efektywność zespołów projektowych 20
Chwytliwy mem
Obietnica
www.bnsit.pl
Klucz do powodzenia frameworka
Zwiększamy efektywność zespołów projektowych 21
Chwytliwy mem Obietnica
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
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
www.bnsit.pl
Kto wymyśla *-Driven *?
Zwiększamy efektywność zespołów projektowych 24
www.bnsit.pl
Kto wymyśla *-Driven *?
Zwiększamy efektywność zespołów projektowych 25
http://pl.wikipedia.org/wiki/Kent_Beck
http://programmer.97things.oreilly.com/wiki/
http://www.domainlanguage.com
www.bnsit.pl
Jak powstaje framework mentalny?
Zwiększamy efektywność zespołów projektowych 26
www.bnsit.pl
Jak powstaje framework mentalny?
Zwiększamy efektywność zespołów projektowych 27
www.bnsit.pl
Jak powstaje framework mentalny?
Zwiększamy efektywność zespołów projektowych 28
www.bnsit.pl
Jak powstaje framework mentalny?
Zwiększamy efektywność zespołów projektowych 29
www.bnsit.pl
Prace na koncepcją *-Driven * (i książką)
Zwiększamy efektywność zespołów projektowych 30
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
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
www.bnsit.pl
Co robi Twórca, gdy framework nie działa?
Zwiększamy efektywność zespołów projektowych 33
www.bnsit.pl
Co robi Twórca, gdy framework nie działa?
Zwiększamy efektywność zespołów projektowych 34
www.bnsit.pl
Co zrobi programista z małym doświadczeniem?
Zwiększamy efektywność zespołów projektowych 35
www.bnsit.pl
Co zrobi programista z małym doświadczeniem?
Zwiększamy efektywność zespołów projektowych 36
www.bnsit.pl
Ograniczenia w zespołach
Zwiększamy efektywność zespołów projektowych 37
www.bnsit.pl
Ograniczenia w zespołach
Zwiększamy efektywność zespołów projektowych 38
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
www.bnsit.pl
A może oceniasz się zbyt optymistycznie?
Zwiększamy efektywność zespołów projektowych 40
www.bnsit.pl
Na czym wykładamy się najczęściej?
Zwiększamy efektywność zespołów projektowych 41
www.bnsit.pl
Co zrobi doświadczony programista?
Zwiększamy efektywność zespołów projektowych 42
www.bnsit.pl
Implementing *-Driven *
Niektórzy z nich napiszą książkę
Zwiększamy efektywność zespołów projektowych 43
www.bnsit.pl
Dlaczego *-Driven * niczego nie zmienią?
Zwiększamy efektywność zespołów projektowych 44
www.bnsit.pl
Czy to oznacza, że zniechęcam do
TDD, BDD, DDD, DDDD, etc. ?
Zwiększamy efektywność zespołów projektowych 45
www.bnsit.pl
Czy to oznacza, że zniechęcam do
TDD, BDD, DDD, DDDD, etc. ?
Zwiększamy efektywność zespołów projektowych 46
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
www.bnsit.pl
1. Doświadczenie
2. Frameworki mentalne
Chodzi o priorytety
Zwiększamy efektywność zespołów projektowych 48
1. Frameworki mentalne
2. Doświadczenie
www.bnsit.pl
Na czym się skoncentrować i jak budować doświadczenie?
Zwiększamy efektywność zespołów projektowych 49
www.bnsit.pl
Przykład: Modelowanie „rzeczywistości”
Milczące założenie większości *-Driven *
Zwiększamy efektywność zespołów projektowych 50
www.bnsit.pl
Przykład: Modelowanie „rzeczywistości”
Milczące założenie większości *-Driven *
Zwiększamy efektywność zespołów projektowych 51
www.bnsit.pl
Przykład: Modelowanie „rzeczywistości”
Milczące założenie większości *-Driven *
Zwiększamy efektywność zespołów projektowych 52
www.bnsit.pl
Wie, czy nie wie, czego chce?
Zwiększamy efektywność zespołów projektowych 53
www.bnsit.pl
Fight, Flight, Freeze
Zwiększamy efektywność zespołów projektowych 54
www.bnsit.pl
Z jakimi programistami chcą pracować klienci? Jakich programistów cenią liderzy?
Zwiększamy efektywność zespołów projektowych 55
www.bnsit.pl Zwiększamy efektywność zespołów projektowych 56
Z jakimi programistami chcą pracować klienci? Jakich programistów cenią liderzy?
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
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
www.bnsit.pl
Techniki pracy z kodem
Zwiększamy efektywność zespołów projektowych 59
www.bnsit.pl
Techniki pracy z kodem
Zwiększamy efektywność zespołów projektowych 60
# Czytelność dla innych
# Prostota
# Samoopisywanie się
www.bnsit.pl
Kod jest dla programisty, a nie programista dla kodu
Zwiększamy efektywność zespołów projektowych 61
www.bnsit.pl
Praca u podstaw
Zwiększamy efektywność zespołów projektowych 62
www.bnsit.pl
Praca u podstaw
Zwiększamy efektywność zespołów projektowych 63
www.bnsit.pl
Jak żyć, Panie Prelegencie,
jak żyć?!
Zwiększamy efektywność zespołów projektowych 64
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
www.bnsit.pl
Jak zachodzi uczenie się?
Zwiększamy efektywność zespołów projektowych 66
www.bnsit.pl
Gdzie są Twoje umiejętności?
Zwiększamy efektywność zespołów projektowych 67
www.bnsit.pl
Gdzie są Twoje umiejętności?
Zwiększamy efektywność zespołów projektowych 68
www.bnsit.pl
Zdobywanie doświadczenia
Zwiększamy efektywność zespołów projektowych 69
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
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ę
DZIĘKUJĘ ZA WASZ CZAS!
Michał Bartyzel
mbartyzel.blogspot.com
@MichalBartyzel