X-DRIVEN DESIGN, Y-DRIVEN DEVELOPMENT NICZEGO NIE ZMIENIĄ

Podobne dokumenty
Programowanie Zespołowe

Program szkolenia: Wprowadzenie do Domain Driven Design dla biznesu (część 0)

NAJLEPSZE STRATEGIE SKUTECZNYCH PROGRAMISTÓW. TECHNIKI PRACY Z KODEM KOD: NSKOD

Ewolucyjna architektura

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Test-Driven Development

Wprowadzenie do Behaviordriven

Oferta szkoleń firmy Code Sprinters

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Michał Olejnik. 22 grudnia 2009

Feature Driven Development

Domain Driven Design - projektowanie modeli złożonych domen (część

Receptury - niezbędnik projektanta i architekta

Od Kodera przez Developera do Lidera

OCENA 360. Diagnoza kompetencji zawodowych. Considero Consulting Warszawa luty 2013

Szkolenia zgodne z sylabusem ISTQB.

Domain Driven Design - projektowanie modeli złożonych domen (część

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

SERVICE & PRODUCT DESIGN

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Programowanie zespołowe

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

Skuteczni liderzy jak to osiągnąć poprzez rozwój kompetencji? Katarzyna Węglarz Paulina Dynia

Jak zdobyćpierwszy milion w Internecie i dobrze sięprzy tym bawić? V Pomorskie Forum Przedsiębiorczości Gdynia, 14 maja 2010

DESIGN JAM. Blue Owl KONTAKT. Adres Telefon Online. tel office: tel PM:

I N S T Y T U T I N F O R M A T Y K I S T O S O W A N E J 2016

Zaawansowane programowanie w języku C++

Zagadnienia. Inżynieria Oprogramowania

Behavior Driven Development (BDD)

INŻYNIERIA OPROGRAMOWANIA

Narzędzia CASE dla.net. Łukasz Popiel

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

SEMINARIUM Pokolenie doświadczeń: Customer&User Experience 19 listopada 2012, Warszawa

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

DSL w środowisku Eclipse. Grzegorz Białek Architekt techniczny, Sygnity S.A.

enxoo rozwiązania oparte na chmurze

Skala Postaw Twórczych i Odtwórczych dla gimnazjum

HumanTechnology. Projektowanie interakcji. czyli łatanie dziury w procesie produkcji

Zaplanować projekt fundraisingowy i przeprowadzić go przez wszystkie etapy realizacji nie tracąc z pola widzenia założonych efektów;

Spis treúci. Księgarnia PWN: Robert A. Maksimchuk, Eric J. Naiburg - UML dla zwykłych śmiertelników. Wstęp Podziękowania...

Naturalny Porządek Refaktoryzacji Java Developer Days 2012

Czym jest facylitacja

Program szkolenia: JavaScript Craftsmanship

Anna Parteka-Ejsmont SOLUTION

Wprowadzenie do testów jednostkowych. Marcin Dziedzic, Wiktor Żołnowski

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

blogomocja.blogspot.com wymagania.org.pl

Design thinking zaprojektuj, zbuduj i przetestuj swoje pomysły

"Stwarzamy możliwości do rozwoju

ALLEPROCES transformacja procesowa CEX. Mira Kawala Allegro Monika Sieniawska 4 Results

Agile Project Management

Lekkie metodyki. tworzenia oprogramowania

Zarządzanie projektami

4 perspektywy pracy zespołowej

REFERAT PRACY DYPLOMOWEJ

Oferta usług coachingowych firmy Code Sprinters

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

Ewolucja Architektury

Czy potrafisz się uczyć? badanie ewaluacyjne

Główne założenia XP. Prostota (Simplicity) Komunikacja (Communication) Sprzężenie zwrotne (Feedback) Odwaga (Agressiveness)

ZACZYNAMY! OCENA NIE MUSI BOLEĆ! Budowanie zaangażowania w procesach HR część 3 BARTŁOMIEJ LUX I MICHAŁ SZOT (13 CZERWCA 2017) WEBINARIUM NA DWA GŁOSY

Implementacja Domain Driven Design - wzorce architektoniczne (część

Program szkolenia: Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów

STANOWISKA JĘZYKOWE DO BUDOWY SERWISÓW INFORMACYJNYCH

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

Zagadnienia. Inżynieria Oprogramowania

Opis metodyki i procesu produkcji oprogramowania

Po co coaching dyrektorce/ dyrektorowi biblioteki?

Inżynieria oprogramowania (Software Engineering) Wykład 1

Wzorce projektowe Michał Węgorek

Scaling Scrum with SAFe. Małgorzata Czerwińska

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

know 5 W, : filary wzrostu WHAT WHEN WHO WHY WHERE model biznesowy

Scrum i nie tylko : teoria i praktyka w metodach Agile / Krystian Kaczor. Wyd. 2. Warszawa, Spis treści


Dzieci Potrafią. Obóz innowacji. Zbudujmy lepszy świat.

Komentarz wprowadzający odnośnie do wprowadzania podejścia architektonicznego w administracji publicznej Prof. SGH, dr hab.

ORGANIZACJA Z CHARAKTEREM OFERTA WSZECHNICY UJ. Jak świadomie kształtować kulturę organizacyjną firmy?

Application Security Verification Standard. Wojciech Dworakowski, SecuRing

SZACHY W SZKOLE Możliwości finansowania z funduszy unijnych

wdrażania Lean Manufacturing

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Programowanie zespołowe

( ) V O D. D A W I D B A G I N S K I. C O M W W W. D A W I D B A G I N S K I. C O M

Dobre wdrożenia IT cz. I Business Case.

Program szkolenia: Receptury testowania automatycznego - problemy, strategie, taktyki, techniki, narzędzia

Scenariusz lekcji. Opracował: Paweł Słaby

DESIGN THINKING. Peter Drucker. Nie ma nic bardziej nieefektywnego niż robienie efektywnie czegoś, co nie powinno być robione wcale.

WIDEOAKADEMIA HR. Nina Sosińska

Wymagania edukacyjne niezbędne do uzyskania poszczególnych ocen JĘZYK ANGIELSKI ZAWODOWY - INFORMATYKA KLASA 2 LUB 4

Zestaw BONDA. Odpowiadając na pytania, otrzymujesz puzzle, które należy później umieścić w szablonie oferty.

Faza analizy (modelowania) Faza projektowania

ZARZĄDZANIE ZMIANĄ SPOSÓB NA PRZESZKODY W EFEKTYWNEJ PRACY DZIAŁU ZAKUPÓW I OBNIŻANIE KOSZTÓW

!!!!!! HR Development. Firma Kwiatek i Wspólnicy! Data wygenerowania raportu :45:10!

Metodyki programowania. Tomasz Kaszuba 2015

Transkrypt:

Michał Bartyzel X-DRIVEN DESIGN, Y-DRIVEN DEVELOPMENT NICZEGO NIE ZMIENIĄ mbartyzel.blogspot.com @MichalBartyzel

Lepszy framework Zwiększamy efektywność zespołów projektowych 2

Refleksja: Kolejny framework 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 Zwiększamy efektywność zespołów projektowych 3

Coś nowego Model-Driven Development Architecture-Driven Development Behavior-Driven Development Test-Driven Developmen Use Case-Driven Design Data-Driven Development Use Case-Driven Development Architecture-Driven Design *-Driven * Data-Driven Design Agile Model-Driven Development Use Case-Driven Development Data-Driven Design Design Use Case-Driven Data-Driven Development Architecture-Driven Design Architecture-Driven Development Domain-Driven Design Use Case-Driven Design Zwiększamy efektywność zespołów projektowych 4

*-Driven * wzmagają zjawiska społeczne Zwiększamy efektywność zespołów projektowych 5

*-Driven * wzmagają zjawiska społeczne Zwiększamy efektywność zespołów projektowych 6

*-Driven * wzmagają zjawiska społeczne Zwiększamy efektywność zespołów projektowych 7

*-Driven * wzmagają zjawiska społeczne Zwiększamy efektywność zespołów projektowych 8

*-Driven * wzmagają zjawiska społeczne Zwiększamy efektywność zespołów projektowych 9

*-Driven * wzmagają zjawiska społeczne Zwiększamy efektywność zespołów projektowych 10

*-Driven * wzmagają zjawiska społeczne Zwiększamy efektywność zespołów projektowych 11

*-Driven * wzmagają zjawiska społeczne Zwiększamy efektywność zespołów projektowych 12

*-Driven * wzmagają zjawiska społeczne Zwiększamy efektywność zespołów projektowych 13

*-Driven * wzmagają zjawiska społeczne Zwiększamy efektywność zespołów projektowych 14

Dlaczego tak się dzieje? Przykład DDD # Przykład: DDDD by Greg Young http://abdullin.com/storage/uploads/2010/04/2010-04- 16_DDDD_Drafts_by_Greg_Young.pdf ( ) this architecture will be good enough for 80% of the projects that they run into Zwiększamy efektywność zespołów projektowych 15

Dlaczego tak się dzieje? Programiści lubią frameworki Zwiększamy efektywność zespołów projektowych 16

Framework mentalny *-Driven * # Strategie myślenia i postępowania # Uporządkowany sposób działania # Sposób na Zwiększamy efektywność zespołów projektowych 17

Dlaczego frameworki mentalne są popularne? Zwiększamy efektywność zespołów projektowych 18

Framework odrywa się od intencji jego twórcy Zwiększamy efektywność zespołów projektowych 19

Klucz do powodzenia frameworka Chwytliwy mem Obietnica Zwiększamy efektywność zespołów projektowych 20

Klucz do powodzenia frameworka Chwytliwy mem Obietnica Zwiększamy efektywność zespołów projektowych 21

Przykład: TDD rozumiane czysto mechanicznie # 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 Zwiększamy efektywność zespołów projektowych 22

Przykład: DDD rozumiane czysto buildingblokowo # 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 Zwiększamy efektywność zespołów projektowych 23

Kto wymyśla *-Driven *? Zwiększamy efektywność zespołów projektowych 24

Kto wymyśla *-Driven *? http://www.domainlanguage.com http://programmer.97things.oreilly.com/wiki/ http://pl.wikipedia.org/wiki/kent_beck Zwiększamy efektywność zespołów projektowych 25

Jak powstaje framework mentalny? Zwiększamy efektywność zespołów projektowych 26

Jak powstaje framework mentalny? Zwiększamy efektywność zespołów projektowych 27

Jak powstaje framework mentalny? Zwiększamy efektywność zespołów projektowych 28

Jak powstaje framework mentalny? Zwiększamy efektywność zespołów projektowych 29

Prace na koncepcją *-Driven * (i książką) Zwiększamy efektywność zespołów projektowych 30

Prace nad koncepcją *-Driven (i książką) # Wyprowadzanie logicznych wniosków # Niekoniecznie sprawdzonych w rzeczywistości # Wnioski można weryfikować, ale czas Zwiększamy efektywność zespołów projektowych 31

Przykład: DDD i Strategic Design 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 Zwiększamy efektywność zespołów projektowych 32

Co robi Twórca, gdy framework nie działa? Zwiększamy efektywność zespołów projektowych 33

Co robi Twórca, gdy framework nie działa? Zwiększamy efektywność zespołów projektowych 34

Co zrobi programista z małym doświadczeniem? Zwiększamy efektywność zespołów projektowych 35

Co zrobi programista z małym doświadczeniem? Zwiększamy efektywność zespołów projektowych 36

Ograniczenia w zespołach Zwiększamy efektywność zespołów projektowych 37

Ograniczenia w zespołach Zwiększamy efektywność zespołów projektowych 38

Pytania, które zadajemy zbyt rzadko? # 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? Zwiększamy efektywność zespołów projektowych 39

A może oceniasz się zbyt optymistycznie? Zwiększamy efektywność zespołów projektowych 40

Na czym wykładamy się najczęściej? Zwiększamy efektywność zespołów projektowych 41

Co zrobi doświadczony programista? Zwiększamy efektywność zespołów projektowych 42

Niektórzy z nich napiszą książkę Implementing *-Driven * Zwiększamy efektywność zespołów projektowych 43

Dlaczego *-Driven * niczego nie zmienią? Zwiększamy efektywność zespołów projektowych 44

Czy to oznacza, że zniechęcam do TDD, BDD, DDD, DDDD, etc.? Zwiększamy efektywność zespołów projektowych 45

Czy to oznacza, że zniechęcam do TDD, BDD, DDD, DDDD, etc.? Zwiększamy efektywność zespołów projektowych 46

Chodzi o priorytety 1. Buduj swoje doświadczenie 2. Ułatwiaj sobie pracę za pomocą frameworków mentalnych Zwiększamy efektywność zespołów projektowych 47

Chodzi o priorytety 1. Frameworki mentalne 2. Doświadczenie 1. Doświadczenie 2. Frameworki mentalne Zwiększamy efektywność zespołów projektowych 48

Na czym się skoncentrować i jak budować doświadczenie? Zwiększamy efektywność zespołów projektowych 49

Milczące założenie większości *-Driven * Przykład: Modelowanie rzeczywistości Zwiększamy efektywność zespołów projektowych 50

Milczące założenie większości *-Driven * Przykład: Modelowanie rzeczywistości Zwiększamy efektywność zespołów projektowych 51

Milczące założenie większości *-Driven * Przykład: Modelowanie rzeczywistości Zwiększamy efektywność zespołów projektowych 52

Wie, czy nie wie, czego chce? Zwiększamy efektywność zespołów projektowych 53

Fight, Flight, Freeze Zwiększamy efektywność zespołów projektowych 54

Z jakimi programistami chcą pracować klienci? Jakich programistów cenią liderzy? Zwiększamy efektywność zespołów projektowych 55

Z jakimi programistami chcą pracować klienci? Jakich programistów cenią liderzy? Zwiększamy efektywność zespołów projektowych 56

Z jakimi programistami chcą pracować klienci? Jakich programistów cenią liderzy? Zaangażowany := robi wszystko co konieczne, aby doprowadzić sprawy do końca Zwiększamy efektywność zespołów projektowych 57

Czy zatrudnisz programistę? i niewielkie umiejętności techniczne Raczej tak duże umiejętności techniczne bez Raczej nie Zwiększamy efektywność zespołów projektowych 58

Techniki pracy z kodem Zwiększamy efektywność zespołów projektowych 59

Techniki pracy z kodem # Czytelność dla innych # Prostota # Samoopisywanie się Zwiększamy efektywność zespołów projektowych 60

Kod jest dla programisty, a nie programista dla kodu Zwiększamy efektywność zespołów projektowych 61

Praca u podstaw Zwiększamy efektywność zespołów projektowych 62

Praca u podstaw Zwiększamy efektywność zespołów projektowych 63

Jak żyć, Panie Prelegencie, jak żyć?! Zwiększamy efektywność zespołów projektowych 64

W czym się mierzy doświadczenie? # W latach? # W liczbie wyłożonych projektów? # W zmienności: Projektów Branż Współpracowników Technologii Zwiększamy efektywność zespołów projektowych 65

Jak zachodzi uczenie się? Zwiększamy efektywność zespołów projektowych 66

Gdzie są Twoje umiejętności? Zwiększamy efektywność zespołów projektowych 67

Gdzie są Twoje umiejętności? Zwiększamy efektywność zespołów projektowych 68

Zdobywanie doświadczenia Zwiększamy efektywność zespołów projektowych 69

A zatem # 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 Zwiększamy efektywność zespołów projektowych 70

Podsumowanie 1. Buduj doświadczenie # Szukaj mentorów # Szukaj różnorodności # Bądź wytrwały # Przeprowadzaj retrospekcje # Praktykuj pokorę 2. Ułatwiaj sobie życie za pomocą *-Driven * Zwiększamy efektywność zespołów projektowych 71

Michał Bartyzel DZIĘKUJĘ ZA WASZ CZAS! mbartyzel.blogspot.com @MichalBartyzel