W tym sezonie też nie lecimy na Marsa
@technites_pl
Modelowanie
z wykorzystaniem
archetypów
modeli domenowych
@technites_pl
Miało być tak pięknie ...
@technites_pl
... a wyszło jak zwykle
Może to jednak dobrze, że nasz system
nie poleciał w kosmos ...
Czym grożą błędy ?
@technites_pl
Co jest ciekawego w tworzeniu
softu biznesowego ?
@technites_pl
Gdy się nie rozumie biznesu
to pewnie nic ...
MODELOWANIE
A do tego trzeba mieć narzędzia!
Czym jest archetyp ?
arche - typos
- początek
- zasada
- przyczyna
@technites_pl
- znak
- wzorzec
- typ
Powrót do źródeł
Nie wszystko musi się starzeć tak szybko
jak frameworki JS
@technites_pl
Dojrzałe rozwiązania są stabilne
Ludzie naprawdę nie zaczęli prowadzić działalności gospodarczej dopiero w XXw
W starożytności również istniały przedsiębiorstwa organizujące handel i logistykę
w skali kontynentalnej
To chyba nic dziwnego, że po takim okresie testów
rozwiązania biznesowe są stosunkowo stabilne
@technites_pl
Jak różnorodny jest biznes?
@technites_pl
-
handel komputerami to zupełnie co innego niż
handel samochodami -
organizacja koncertów to zupełnie co innego niż
umawianie wizyt u lekarza -
badania w laboratorium to zupełnie co innego niż
kontroling w korporacji
na pewno ?
@technites_pl
Obserwowana cecha
Controling
Laboratorium
Pomiar
Badany przedmiot
Procedura pomiarowa
Predykcja
Weryfikacja / Falsyfikacja
Wiedza o związkach
przyczynowo - skutkowych
Możliwe rodzaje działań i informacji
są ograniczone przez naturę
fizycznej rzeczywistości
Sposoby prowadzenia
działalności gospodarczej
bazują na tych ograniczeniach
@technites_pl
@technites_pl
Dlaczego archetypy działają ?
Archetypy opierają się na:
- logice
- cechach fizycznego świata
- zasadach ludzkiego działania
@technites_pl
@technites_pl
Ucieczka przed fatum
najczęściej spotykany archetyp w IT
@technites_pl
Ucieczka przed fatum
... a przecież użyłem Kubernetesa, Kafki,
Angulara 17 i jestem Cloud Native ...
... gdybym użył jeszcze Quarkusa
to by się na pewno udało ...
W biznesie ciągle przewijają się
te same problemy
Dlaczego tak trudno jest znaleźć
dobre rozwiązania ?
@technites_pl
- języki, frameworki, biblioteki, protokoły, ...
- uogólnienia i redukcja duplikacji
- wzorce projektowe
- optymalizacje wydajności
- ...
Czego jesteśmy uczeni ?
@technites_pl
Czym się zajmujemy ?
@technites_pl
Proste User Story ...
Jako kierownik sprzedaży, chciałbym żeby rabaty naliczały się w następujący sposób:
- w zależności od statusu klienta
- w zależności od kategorii produktu (hierarchicznie)
- w zależności od składu zamówienia
- ...
- w zależności od okresu w roku
Czym się zajmujemy ?
@technites_pl
Zapomnieliśmy jeszcze że ...
- mamy oferty specjalne np: 3 za 2 na produkty nie objęte innymi promocjami
- oferty specjalne mają priorytet nad innymi promocjami i nie można ich łączyć
Czym się zajmujemy ?
@technites_pl
I jeszcze "jedno" ...
- w handlu hurtowym są inne zasady niż w detalicznym
- nie możemy zejść z marżą poniżej pewnego poziomu, który zależy od ...
- ...
Kto ma to dobrze zrobione ?
Czy wycena nie jest czasem czymś powszechnym ?
Co stanowi o przewagach konkurencyjnych:
fakt nakładania wielu rabatów,
czy konkretne warunki i parametry tych rabatów?
Czy zmiana zestawu rabatów, albo ich parametrów
powinna wpływać na model?
@technites_pl
Czy to musi być trudne ?
@technites_pl
Provide Context
Modified
Choose Modifiers
A może jednak jest proste ?
Modifier
Pewnie dobrze określonych wymagań ...
Tylko co to znaczy dobrze określonych ?
@technites_pl
Czego zabrakło ?
Wymaganiobranie
@technites_pl
Analiza to coś więcej
niż zbieranie wymagań
@technites_pl
@technites_pl
Rezerwacja biletów
Pasażer po zakupie biletu może wybrać
konkretne miejsce w samolocie.
Wybrane miejsce nie powinno być dostępne
dla innych pasażerów.
Samolot nie może zabrać więcej pasażerów
niż ma miejsc.
Rezerwacja miejsca może być anulowana
w każdym momencie przez klienta, linię, służby ;)
Kolejne proste wymaganie
@technites_pl
i kolejny prosty model
Passenger
Seat
Plane
Ticket
Flight
@technites_pl
i kolejne proste pytania
- Jak sprawdzić czy są wolne miejsca w samolocie?
- Czy można kupić na raz kilka biletów?
- Czy można zmieniać miejsce?
- Czy trzeba wybrać miejsce?
- Czy wszystkie miejsca są takie same?
- Czy możliwy jest overbooking?
- ...
Model powinien być oparty
o głęboką analizę domeny,
a nie odizolowane wymagania,
które akurat realizujemy w tym sprincie
@technites_pl
Skuteczność analizy zależy od
umiejętności zadawania trafnych pytań
Tylko jak zadawać trafne pytania
gdy nie zna się biznesu?
@technites_pl
... a gdyby tak znać problemy biznesowe
i ich dobre rozwiązania,
które ludzie przed nami
już wielokrotnie sprawdzili
@technites_pl
- komponowalne modyfikatory
- handel: wycena
- ubezpieczenia: wyznaczanie składek, wypłat
- usługi serwisowe: dobór terminów
- ...
- dostępność
- turystyka: pokoje
- medycyna: czas lekarzy i sprzęt
- transport: miejsce w środkach transportu
- ...
Czy każda firma jest faktycznie tak unikalna?
@technites_pl
@technites_pl
- szablony i ich instancje
- marketing: kreacja - emisja
- teatr: sztuka - wystawienie sztuki
- wszędzie: szablon umowy - umowa
- ...
- odroczone modyfikacje
- administracja publiczna: wnioski
- handel: modyfikowanie opisów produktów
- finanse: zakładanie kont
Czy każda firma jest faktycznie tak unikalna?
@technites_pl
- wartości i jednostki miary (np. pieniądze)
- wszędzie
- osoby / firmy / etc. i ich role (Party)
- wszędzie
- historia
- wszędzie
- ...
Czy każda firma jest faktycznie tak unikalna?
... czy Core Domain
w ogóle istnieje ?
@technites_pl
Może super generyczny ERP jest jednak optymalnym rozwiązaniem ?
Wystarczyłoby połączyć archetypy i gotowe !
@technites_pl
prawie jak hotel ...
... "prawie" robi wielką różnicę
W czym tkwi specyfika przedsiębiorstw ?
@technites_pl
The greatest value of custom software comes
from the total control of the Core Domain.
- Eric Evans
Core Domain to najczęściej
"jedynie" kompozycja archetypów
@technites_pl
Przewagi konkurencyjne zwykle
zależą od parametryzacji systemu
a nie samych jego operacji
Czy to jest nowy temat ?
@technites_pl
1996r.
2001r.
1997r.
@technites_pl
2004r.
2011r.
Czy to jest nowy temat ?
@technites_pl
Czego dotyczą archetypy ?
Ograniczenie archetypów
do poziomu modelu danych
skazuje nas na
Table Driven Development
@technites_pl
@technites_pl
Co mają wspierać systemy IT ?
Entity
Attr. 1
Attr. 2
Attr. 3
...
==
!
!
!
!
To co najistotniejsze w modelowaniu to:
zachowania, reguły i procesy biznesowe
Dane "tylko" umożliwiają ich realizację
@technites_pl
@technites_pl
Nie tylko umowy:
- reklamy
- kursy
- polisy
- wycieczki
- ...
umowa != umowa
Szablon - Instancja
Poziomy abstrakcji
@technites_pl
-
Brak abstrakcji
- konkretne przypadki -
Abstrakcja od konkretnych przypadków
- model konkretnej firmy -
Abstrakcja od specyfiki konkretnej firmy
- standardy branżowe -
Abstrakcja od specyfiki branży
- wzorce analityczne -
...
Siła abstrakcji płynie z tego
co zostało wyeksponowane
a nie z tego co zostało pominięte
@technites_pl
@technites_pl
-
Język archetypów może się różnić
od języka konkretnego przedsiębiorstwa
-
Model wyznaczony przez archetyp nie jest
modelem konkretnego przedsiębiorstwa
- Nie wszystkie elementy archetypu muszą być przydatne w modelu konkretnego przedsiębiorstwa
Użycie abstrakcji
Archetypy to narzędzie, które mają pomóc
w modelowaniu rzeczywistości,
a nie nagiąć rzeczywistość do siebie!
@technites_pl
@technites_pl
Deweloper w nowej domenie
@technites_pl
Jakie tu są reguły ?
@technites_pl
Do czego mogą się przydać archetypy ?
- zrozumienie wielu różnych koncepcji biznesowych
- zadawanie lepszych pytań ekspertom domenowym
- budowanie rozwiązań ze sprawdzonych elementów
- szybkie opracowywanie alternatywnych modeli
- walidacja opracowanych modeli
Archetypy modeli domenowych to
sprawdzone rozwiązania
powszechnych problemów biznesowych
@technites_pl
na tyle abstrakcyjne,
że da się je zastosować w wielu przedsiębiorstwach
na tyle konkretnych,
że da się ich użyć do eksploracji domeny
wspólnie z ludźmi z biznesu
Odnajdowanie archetypów
@technites_pl
@technites_pl
Sprzedaż biletów
???
Co jest skończonym zasobem,
którego dostępności
pilnuje system ?
@technites_pl
Jak do tego doszło ???
CC BY-SA 3.0 wikipedia.org/wiki/Plik:Overflowed_platform_of_Vyhino,_fore_part_3.jpg
@technites_pl
Sprzedaż biletów
A może ten zasób wcale nie jest skończony ?
Eksploracji domeny nie da się zautomatyzować żadnym narzędziem
Archetypy to tylko jedno z nich
ale warto je mieć
w swojej skrzynce z narzędziami !
@technites_pl
Tylko czemu nie uczą tego na studiach ???
Takeaways
@technites_pl
Tworzenie softu biznesowego
to nie rocket science
Co nie znaczy,
że jest to proste i nudne
@technites_pl
Unikalność rozwiązań biznesowych
wynika głównie z kompozycji
powszechnie znanych koncepcji
i ich parametryzacji
@technites_pl
@technites_pl
Warto znać
archetypy modeli domenowych,
żeby biznes w kolejnym projekcie
był mniejszym zaskoczeniem
a modelowanie było
naprawdę efektywne
Pytania ???
@technites_pl
blog - itlibrium.com
kod - github.com/itlibrium
slajdy - slides.com/technites_pl
W tym sezonie też nie lecimy na Marsa
By Marcin Markowski
W tym sezonie też nie lecimy na Marsa
- 1,518