Pod jednym z moich ostatnich postów pojawił się komentarz zawierający m.in. taką treść:
"Chyba potrzebuję mentora, który mógłby rzucić temat, a następnie sprawdzić jego realizację. Czy znajdzie się jakiś chętny?
(...) nauka przez fun tworzenia. Ale czy to aby dobra droga?"
Za mentora się bynajmniej nie uważam, ale pomyślałem - co tam, może być ciekawe doświadczenie. Kilka miesięcy temu podobny tekst wyczytałem na forum CodeGuru - wówczas też zgłosiłem się na ochotnika do takiej roli. Ale temat umarł po dwóch mailach.
Tym razem na szczęście tak się nie skończyło .Wysłałem maila do Darka... i zaczęliśmy działać:).
Po więcej szczegółów odsyłam na blog, na którym Darek na bieżąco opisuje swoje zmagania: http://szmergiell.blogspot.com/.
Założenia:
Darek - programista realizujący zlecenie wybrednego momentami klienta. Musi przetworzyć (czasami dość chaotyczne i nie do końca precyzyjne) wymagania na działający kod.
Ja - "wybredny momentami klient", a gdy trzeba - służący radą kolega po fachu. Jako że ma to być w miarę realistyczna symulacja prawdziwego zlecenia, mogę sobie pozwolić na głupie wymagania. Albo na ich zmianę w trakcie. Albo na spóźnioną odpowiedź. I tak dalej... Wszystko to nie z powodu olewania czy ignorancji, ale w celu nadania pewnego realizmu całej sytuacji:).
Cel - prosta w obsłudze aplikacja do zarządzania domowym budżetem.
Unfuddle.com - hosting repozytorium i proste narzędzie do zarządzania projektami, które jest głównym kanałem naszej komunikacji.
Co w tym dla mnie?
- ponowne zetknięcie z "zarządzaniem" - chodzi nie tyle o faktyczne zarządzanie i wymuszanie przestrzegania terminów (które są u nas całkowicie umowne), co raczej o szlifowanie umiejętności podziału większego zadania na pojedyncze tickety, o zapoznanie z Unfuddle, o zdanie sobie sprawy jak to wygląda "po drugiej stronie kodu"
- ciekawe doświadczenie Windows-Linux - Darek programuje na Linuxie, którego ja nigdy nie używałem; wspólna praca nad aplikacją .NET może być bardzo interesująca... czy wieloplatformowość .NETa okaże się wystarczająca w naszym scenariuszu?
- weryfikacja pewnych planów... dość enigmatycznie to brzmi, ale jeśli nasz eksperyment zakończy się sukcesem to może warto będzie takie coś pociągnąć dalej? może większy projekt, może więcej członków zespołu? o podobnych aktywnościach myślałem już od dobrych kilkunastu miesięcy, ale jakoś obawiałem się je rozpocząć; zobaczymy co z tego wyjdzie, a z tego co wiem to chętnych do takiego udzielenia się nie brakuje
- potencjalnie aplikacja gotowa do użytku - paradoksalnie nie jest to absolutnie priorytetem w całym tym zamieszaniu, ale jeśli Darkowi w trakcie nie znudzi się ta zabawa to na koniec powinienem mieć aplikację, która zastąpi aktualnie używane przeze mnie, i dość nielubiane, arkusze Excela
Co w tym dla Darka?
- doświadczenie w programowaniu - nie oszukujmy się, pisanie programów dla siebie, według własnej wizji i bez żadnych zobowiązań na pewno niesie za sobą jakieś edukacyjne wartości, ale dopiero udział w weryfikowanym na zewnątrz projekcie daje prawdziwego kopa parametrom dev-skills
- doświadczenie w pracy z klientem - prawdziwym klientem ciężko mnie nazwać i historii znanych z doświadczenia odstawiać nie będę, ale kluczowa kwestia pozostaje niezmienna: zrozumieć i zaimplementować czyjeś oczekiwania względem aplikacji
- doświadczenie w pracy zdalnej - czyli zdalne repozytorium, system zarządzania zadaniami, realizacja zadań bez kontaktu face-2-face
- doświadczenie z repozytorium kodu - w naszym przypadku Git - Darek nie miał wcześniej z Gitem do czynienia i będzie miał okazję zobaczyć z czym to się je; pierwsze zadanie brzmiało "sklonuj repozytorium Git i dodaj do niego swoje zmiany", a do zadania dołączony był jedynie adres repozytorium; Darek sam musiał zainstalować Gita, wygenerować klucze, skonfigurować sobie dostęp do repozytorium i tak dalej... do tego dojdą zadania związane z gałęziami, z tagami i co mi tam jeszcze do głowy przyjdzie - w każdym razie planuję wyjść poza najprostszy model pull-commit-push, więc powinno być ciekawie
- doświadczenie w pracy po angielsku - nie wiem jak Darek stoi z angielskim, jednak moim zdaniem cała praca nad kodem powinna odbywać się właśnie w tym języku; wszystkie przydzielane zadania jak również commit messages piszę po angielsku, więc może to być dodatkowe ćwiczenie
- doświadczenie z ekosystemem .NET - póki co mamy po prostu projekt dll i projekt exe, ale dojdą do tego testy jednostkowe, dojdzie kontakt z bazą, dojdzie jakiś ORMapper... wszystko to może być teraz nowością, ale za kilka tygodni już nią nie będzie:)
Tak więc zainteresowanych odsyłam do śledzenia opisywanych przez Darka poczynań (czyż nie świetny pomysł na bloga?). Jeśli pojawi się zainteresowanie to pewnie pomyślimy nad udostępnieniem repozytorium kodu, aby każdy adept sztuki dotnetowej mógł wraz z Darkiem podążać ścieżką - jak to sam określił - Od zera do kodera :). Zapraszamy.