poniedziałek, 28 grudnia 2015

Generowanie diagramów architektonicznych w C4

Jestem wielkim fanem podejścia C4 w dokumentowaniu architektury - co widać na video w poprzednim poście:)

C4 sprawdza się nie tylko dla nowych projektów oraz do nadawania struktury myślom podczas szkoleń... przydaje się również jako "mapa" podczas misji ratunkowych w projektach ze spuścizną:)

Polecam świetną prezentację twórcy C4 na temat narzędzi do automatycznego generowania diagramów. Moim zdaniem generowane nie mają takiej wartości w opowiadaniu historii jak ułożone ręcznie, ale lepsze taki niż żadne aby przedzierać się przez spuściznę:)

Prezentacje jest wartościowa z uwagi na przemyślane komentarze autora z meta-poziomu: kiedy, dlaczego i po co warto stosować dany rodzaj informacji wizualnej oraz rysowanie czego nie ma żadnej wartości:)

https://www.youtube.com/watch?v=oDpdaXt0HQI


//=================
W dużych projektach dodaję M (jak Moduł) tworząc Context Container Module Component Class
gdzie moduł grupuje komponenty.
Moduł można sobie wyobrazić jako jednostkę logiczną (Bounded Context z DDD) czy jako produkt (np. moduł magazynowy czy sprzedaży w ERP) a komponent jako np jednostkę deploymentu (np. klienty, AI itd).
Traktowanie komponentu dosłownie jako @Component w Springu (jak pokazuje przykładowo Brown) wydaje mi się skrajnie niepraktyczne poza malutkimi systemami, ale każdy może sobie popróbować sam co ma dla niego wartość...

piątek, 6 listopada 2015

Architektura dla średnio zaawansowanych programistów

Na początku tego roku stworzyłem prezentację, która podsumowuje kilka ładnych lat mojej pracy i zamyka tym samym pewien etap: "Co było pierwsze: kod czy architektura?"

Została zarejestrowana podczas tegorocznej edycji http://dotnetconf.pl/ (również: Devoxx, Infoshare i kilka mniejszych) i możecie obejrzeć ją w całości poniżej:


Slajdy:




Prezentacja z uwagi na brak czasu omawia wyłanianie się kodu z architektury. Natomiast podejście Emergent Design gdzie architektura wyłania się z kodu można zobaczyć tutaj począwszy od 50. minuty (w nieco gorszej jakości audio i video):





Wiele osób pytało o materiały, więc pomyślałem, że warto zrobić moją prywatną listę książek, które polecam na początek:

  • S. Brown Software architecture for developers - prosta i skuteczna metodyka rysowania diagramów, które mają sens i wnoszą wartość do projektu; dzięki tej książce dowiecie się, że słowo architektura nie ma sensu w IT jeżeli nie dodasz do niego przymiotnika
  • V. Vernon Implementing DDD - nawet jeżeli nie interesujesz się DDD, to znajdziesz tutaj kompendium wiedzy o współczesnych stylach arch w kontekście nietrywialnego przykładu dziedzinowego
  • C. Larman Applying UML and Patterns - tytuł jest zmyłką;) książka nie traktuje o UML, została napisana w czasach gdy UML dodawał +20 do sprzedaży;) autor przedstawia kompletny zwinny proces produkcji softu 
  • Seria Pattern oriented software architecture - to po prostu trzeba mieć w domu na półce... początkowe tomy są dla  wszystkich, końcowe są zorientowane na specyficzne problemy
Swego czasu popełniłem również serię artykułów dla programistamag.pl Receptury projektowe - niezbędnik początkującego architekta, którą można pobrać całkowicie darmowo tutaj: http://bottega.com.pl/artykuly-i-prezentacje#receptury

Tutaj można znaleźć projekt, który ilustruje omawiane techniki https://github.com/BottegaIT/ddd-leaven-v2

Polecam również Udi Dahan.



Mam do Was prośbę: podajcie w komentarzach swoje propozycje "must read" wraz z krótkim komentarzem dlaczego warto.

środa, 1 lipca 2015

Konkurs na Confiturze

Bottega jako partner tegorocznej Confitury zaprasza uczestników konferencji do konkursu (a właściwie dwóch).

Konkurs 1: Rozśmiesz nas

1. Wchodzisz na stronę, której adres znajdziesz w sobotę w naszej ulotce znajdującej w materiałach dla uczestników. Znajdziesz tam aplikację (cloud, rest, node.js:), która pozwala na tworzenie memów. Konkurs przeznaczony jest tylko dla uczestników konferencji, dlatego musisz podać maila (nie zbieramy maili, organizatorzy przekazali nam hashe waszych maili)

2. Dokończ mema:


przykład:

3. Autor mema, który zebrał najwięcej głosów wygrywa drona Syma X8C (z kamerką HD:)

Konkurs 2: Głosuj na memy

1. Wchodzisz na stronę, której adres znajdziesz w sobotę w naszej ulotce znajdującej w materiałach dla uczestników. Znajdziesz tam aplikację (cloud, rest, node.js:), która pozwala na głosowanie na stworzone w Konkursie 1 memy. Konkurs przeznaczony jest tylko dla uczestników konferencji, dlatego musisz podać maila (nie zbieramy maili, organizatorzy przekazali nam hashe waszych maili)

2. Głosujesz na memy, które są śmieszne/nie są czerstwe (wyłaniając tym samym zwycięzcę Konkursu 1)

3. Wśród głosujących rozlosujemy 3 egzemplarze książki:


piątek, 8 maja 2015

Video: Jesteś ekspertem i co dalej?

Prezentacja "Jesteś ekspertem i co dalej? Ścisły przewodnik po materii miękkiej dla ekspertów IT - część II", którą pokazywałem na JUGach w Poznaniu, Wrocławiu, Lublinie i Łodzi oraz na 4Developers doczekała się porządnych slajdów i video (na warszawskim JUG).

Zajawka: https://www.facebook.com/BottegaITSolutions/videos/vb.213242472061197/964224023629701/?type=2&theater


Prezentacja 2h 20 min:)


Prezi: https://prezi.com/dllleqt07g33/jestes-ekspertem-i-co-dalej

Zainteresowanych dalszym zgłębianiem tematu odsyłam do źródeł: http://art-of-software.blogspot.com/2015/01/materiay-ze-spotkania.html 

Prezentacja jest ekstraktem z szerszego, zakrojonego na kilka dni programu: Projektowanie kariery z uwzględnieniem architektury Twojego mózgu. Tutaj opis: http://bottega.com.pl/pdf/program_architektura_kariery.pdf



środa, 8 kwietnia 2015

Szkolenie DDD do wygrania na drabinie ekspertów.

Podczas tegorocznej konferencji 4Developers zorganizowaliśmy własną ścieżkę firmy Bottega: "Drabina ekspertów".

Plan dostępny tutaj http://4developers.org.pl/pl/agenda/agenda/
Strona nie jest do końca restful;) więc wklejam plan:



Jak widać pomysł na ścieżkę jest prosty: nasi trenerzy omawiają kolejne "szczeble" stosu architektonicznego. Elementami drabiny są zarówno technologie i metodyki jak również style architektoniczne. Całość w formie spójnej narracji, gdzie koniec prezentacji jednego eksperta jest punktem wyjścia do prezentacji kolejnego.

Moje pierwsze (i ostanie, obiecuję :) ) video:
https://www.facebook.com/video.php?v=942724792446291&set=vr.947246991994071&type=2&theater

A tutaj Mateusz pokazuje jak powinno wyglądać video promujące ścieżkę
https://www.facebook.com/video.php?v=947246991994071&set=vb.213242472061197&type=2&theater


Konkurs!
Uczestnicy naszej ścieżki będą mogli wygrać udział w szkoleniu otwartym z zakresu Domain Driven Design, które odbędzie się w dniach 5-7 maja w Lublinie.

Podczas każdej z prezentacji na naszej ścieżce padnie pytanie. Wśród osób, które odpowiedzą na wszystkie pytania wylosujemy nagrodę.

piątek, 27 lutego 2015

Połączenie BDD z DDD

Community Behavior Driven Development zaczyna się reflektować, że metodyka daje bardzo płytkie rozumienie domeny.
W artykule  http://www.infoq.com/news/2015/02/bdd-ddd znajdziecie link do prezentacji https://skillsmatter.com/skillscasts/6240-taking-back-bdd która pokazuje jak i dlaczego integrować BDD i Domain Driven Design.

O ile zgadzam się co do idei, to prezentowana implementacja wydaje się być po prostu szkodliwa. Historyjka akceptacyjna operuje na obiektach domenowych, zamiast na wyższej warstwie, czyli serwisach aplikacyjnych lub CommandHandlerach.

Jaka jest konsekwencja? Historyjka powiela logikę wyższej warstwy. Nie tędy droga... Pomylono po prostu Domain Story z User Story i stąd taki kuriozalny efekt. Może gdyby prelegent napisał nieco kodu, to by uświadomił sobie błąd w rozumowaniu;)

O powierzchowności User Story mówiłem tutaj: https://www.youtube.com/watch?v=z0y3IPJDyp0


//======================
Podobne problemy napotkamy stosują Spec by Example. Nie chcę być źle zrozumiany, nie twierdzę, że BDD czy SBE są błędne, są po prostu niewystarczające dla nietrywialnych domen.

Inna obserwacja: czy ludzie biznesu na pewno potrafią dobrze operować przykładami? Ile przykładów można zmieścić w pamięci podręcznej mózgu? Może przykłady są dobre w początkowej fazie poznawania domeny a później wygodniej od nich abstrahować? Odpowiedź brzmi oczywiście: "to zależy". Ale zależy od czego? Od nawyków kognitywnych konkretnego człowieka. Niektórzy preferują abstrakt a inni konkret, jeszcze inni najpierw jedno, później drugie.

Więcej na ten temat można zacząć eksplorować np tutaj: http://en.wikipedia.org/wiki/Learning_styles#David_Kolb.27s_model

Modeling Whirlpool z DDD idealnie integruje wszystkie style uczenia (poznawanie domeny jest uczeniem się jej) z Cyklów Kolba.

poniedziałek, 16 lutego 2015

Przykład problemów z ubiquitous language

Piękny przykład na problemy w komunikacji świata IT, medycyny i inżynierii przesyłu cieczy. Moim zdaniem prezentacja jest ciekawa sama w sobie merytorycznie, ale pokazuje też, że inne branże mają problemy tej samej klasy:)

Warto obejrzeć aby mieć świadomość jakie jeszcze siły działają na projekt oprócz wycieków pamięci;)

http://www.ted.com/talks/tal_golesworthy_how_i_repaired_my_own_heart

środa, 28 stycznia 2015

Materiały ze spotkania

W poniedziałek w Poznaniu wiele osób pytało o polecenie materiałów, więc podsumowuję (przyda się również na wtorek we Wrocławiu) listę książek i prezentacji od których warto zacząć:

http://www.amazon.com/Pragmatic-Thinking-Learning-Refactor-Programmers/dp/1934356050
Podstawy, ale na początek wystarczy aby zorientować się w kierunkach jakie mogą Was interesować. Pewnie wiele osób już czytało ale zamieszczam dla porządku.


http://www.amazon.com/Your-Brain-Work-Strategies-Distraction/dp/0061771295
Polecam też polskie tłumaczenie - jest ok, ale nie będziesz musiał/musiała siedzieć ze słownikiem, gdy tekst zawiera sporo słów z zakres neurobiologi - domeny, którą nie każdy musi znać.
Generalnie będzie to najlepiej wydane 30zł w życiu - książka zmienia życie:)
Prezentacja autora https://www.youtube.com/watch?v=XeJSXfXep4M

http://www.amazon.com/Neuroscience-Personality-Brain-Insights-People/dp/0979868475
Flow w kontekście Meyers-Briggs
Prezentacja autora https://www.youtube.com/watch?v=MGfhQTbcqmA

http://www.amazon.com/Master-His-Emissary-Divided-Western/dp/0300188374
Podsumowanie ostatnich 10 lat badań nad mózgiem w popularnonaukowym stylu.

http://www.ted.com/talks/martin_seligman_on_the_state_of_psychology
3 drogi do szczęścia wg psychologii pozytywnej

http://www.ted.com/talks/mihaly_csikszentmihalyi_on_flow
Flow

"Sprzętowe" podstawy mindfulness.

//=======================

Wiele osób pytało również o udostępnienie prezentacji (mindmapy). Jest to część komercyjnego projektu, współautorami są psycholodzy/coachowie więc niestety póki co nie chcemy jej udostępniać. Natomiast w lutym planuję zrobić sobie wakacje i stworzyć wówczas prezi ze spójną historią, które będzie publiczne.

poniedziałek, 26 stycznia 2015

Poznań i Wrocław - spotkania na JUG

Dziś w Poznaniu http://www.jug.poznan.pl/2015/01/spotkanie-poznan-jug-slawek-sobotka-jestes-ekspertem-i-co-dalej-26-01-2015/
i za tydzień 3. lutego we Wrocławiu (niebawem szczegóły http://www.meetup.com/WroclawJUG/)
będę prowadził prezentację "Jesteś ekspertem i co dalej? Zaprojektuj swoją karierę biorąc pod uwagę architekturę mózgu"
Zainteresowanych zapraszam - nie trzeba znać Javy:)

Abstrakt:
Prawdopodobnie to wrodzona dociekliwość oraz zamiłowanie poszukiwania
modeli, struktur i wzorców spowodowały, że zajmujesz się
projektowaniem i programowaniem systemów.
Chciałbym zaprosić Cię do podróży po kolejnym
systemie, który jest znacznie bardziej złożony niż te, z którymi
spotykasz się na co dzień – Twój mózg.
Dzięki zdobytej wiedzy będziesz mógł/mogła świadomie zastanowić się
nad ścieżką kariery w zaproponowanych modelach: lider techniczny,
ekspert, inspirator, mentor.
Wg najnowszej wiedzy z zakresu kognitywistki i nero-psychologii pod
Twoją czaszką znajduje się:
• ok 40 procesorów specjalizujących się w specyficznych zadaniach,
• procesory te łączą się ze sobą w agencje, agencje natomiast
rywalizują między sobą o zasoby takie jak gliken (węglowodan) a czasem
nawet się wzajemnie sabotują
• kilka szyn danych ogólnego przeznaczenia (blokowanych przez
wspomniane wcześniej agencje)
• kilka magazynów pamięci różnego przeznaczenia (chwilowa, robocza,
długotrwała, emocjonalna,…)
• całość sterowana systemem „zdarzeń”, których nośnikiem są hormony i
neuroprzekaźniki
• część procesorów jest wyrafinowana i precyzyjna a inna część jest na
poziomie gada – niestety gdy cały system jest zalany np. falą hormonów
stresu, to sterowania przejmuje „jaszczurka”… po kilku godzinach
reflektujesz się i żałujesz, że nie zachowałeś/zachowałaś się inaczej…
w „trybie jaszczurki” było to jednak niemożliwe
• wiele innych interesujących modeli…

środa, 7 stycznia 2015

HR - jak robi to Google

Problem

Sytuacja na rynku pracy jest taka sama zarówno w dużym, średnim jak i małym mieście, czyli:
  • nie dość, że ciężko znaleźć nowych ludzi
  • to tracimy już posiadane talenty (skill można zbudować, talentu nie)
  • na uczelniach mamy dziwną sytuację: kilka procent "geniuszy" (tacy są zawsze) oraz "mało ambitna" reszta, zniknął główny składnik, czyli "średni", którzy w odpowiednich warunkach w pracy staną się "dobrzy"
  • musimy zatem zatrudniać każdego, kto podczas rekrutacji nie nabawił się kontuzji w starciu z klawiaturą
  • do tego bardzo niewielu pracowników rozwija się we własnym zakresie "w domu"
  • brakuje osobowości Lidera Technicznego (nie managera), który pokazały innym kierunek a oni w naturalny sposób podążyliby za nim
  • wydaje się, że nie można mieć osobowości lidera i eksperta IT w jednej osobie
  • pracownicy mimo dostępu do "opcji rozwoju" nie korzystają z nich
  • karnet na "basen" jakoś nie działa
  • nie za bardzo wiadomo o co chodzi tym programistom gdy marudzą coś o "wielkiej kupie błota" - przecież zewnętrzna firma sprząta codziennie
  • ok, już wiemy, ale co zrobić, skoro specjalizujemy się w remontach i utrzymaniu...
  • ...

Google - wersja basic

W ciągu całej "przerwy świątecznej" oglądałem namiętnie prezentacje odbywające się w ramach Google Tech Talk. Konwencja jest taka, że pracownicy firmy wybierają sobie ciekawe osoby grasujące "na wolności" (naukowcy, dietetycy, trenerzy, mnisi,...) aby przeprowadzili wewnętrzną prezentację/warsztat w zakresie bardzo szeroko rozumianego rozwoju osobistego.

Oto kilka przykładów, które warto obejrzeć choćby z czystej ciekawości:

Google - wersja premium

Na osobną uwagę zasługuje to wystąpienie: https://www.youtube.com/watch?v=MGfhQTbcqmA
Autor książki, która technicznie i kompleksowo podchodzi do problemu "szczęścia" w pracy: http://www.amazon.com/Neuroscience-Personality-Brain-Insights-People/dp/0979868475

Dzięki EEG (warsztaty dla pracowników Google po prezentacji) jest w stanie "zdiagnozować" jaki rodzaj aktywności wprawia danego programistę/programistkę we flow - stan całkowitego zaangażowania w zadanie.

Mam pewną hipotezę: najlepsi programiści z jakimi rozmawiam zwykle odpowiadają tak samo na pytanie "dlaczego zająłeś się programowaniem?" - "dlatego, że w pewnym momencie (szkoła/studia) dawało mi to wejście we flow". Niestety w komercyjnym programowaniu prędzej czy później trafiamy na projekt, gdzie flow nie pojawia się przez kolejne miesiące... Mózg uczy się nowej zasady: programowanie nie daje już dopaminy - i mamy tak zwane "wypalenie". Wracaj zatem do stanu flow raz na kilka tygodni a "wypalenie" nigdy nie wystąpi. Heh, pytanie tylko jak? Dwa linki wyżej:P

Google - wersja max

Inny ciekawy przykład: zespół, który opracował Prediction API (kilka algorytmów maszynowego uczenia ukrytych pod arcy prostym REST API) https://www.youtube.com/watch?v=FJDP_0Mrb-w

Zespół może pokazać się światu, pokazać swoje dzieło osobiście (zwróćcie uwagę na błysk w oku gdy mówią o rynku handlu modelami predykcji), pokazać się obok producenta samochodów, który już zapowiada korzystanie z ich dzieła. Czy jakaś podwyżka lub "karnet na siłkę" są w stanie przebić tę chwilę?

A co jeżeli nie pracuję w Google?

Jeżeli powyższe jest tym czego szukasz dla siebie/swoich ludzi to zastanawiasz się pewnie czy w Polsce dałoby się zorganizować coś podobnego...

Zgromadziłem grupę ciekawych ludzi z różnych ścieżek rozwojowych ale w pewnym sensie podobnych do siebie i mam pomysł na na razie eksperymentalną wersję projektu. Jeżeli chcesz spróbować w swojej organizacji/zespole to zapraszam do kontaktu prv: slawomir.sobotka (w domenie) bottega.com.pl