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

  1. Brak abstrakcji
    - konkretne przypadki

  2. Abstrakcja od konkretnych przypadków
    - model konkretnej firmy

  3. Abstrakcja od specyfiki konkretnej firmy
    - standardy branżowe

  4. Abstrakcja od specyfiki branży
    - wzorce analityczne

  5. ...

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