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.
Nie spodziewałem się, że tak szybko opiszesz całą sprawę ;) Skoro jednak wpis się już pojawił, to zachęcam do śledzenia moich poczynań. Zapewne nie raz i nie dwa trafię na problemy, przez co może być lekka obsuwa — jednak tak jak napisał Maciej: terminy są umowne;)
Od siebie jeszcze dodam: postaram się doprowadzić projekt do jakiegoś sensownego rozwiązania oraz regularnie pisać o tym, co się dzieje.
Kurcze fajnie że powstało coś takiego :) Pamiętam jak sam potrzebowałem takiego "mentora" za czasów liceum. Na szczęście na studiach znalazły się odpowiednie osoby a wraz z nimi projekty :) Powodzenia w zmaganiach :)
Muszę przyznać, że świetny pomysł. Raz, że zupełnie inna motywacja do nauki. Dwa, jednak mniej stresu na sam początek. Pierwsze poważne zlecenia jednak zostaje w głowie ślad na długi czas ;) Życzę powodzenia i będę śledził postępy.
O, też tak chcę (;
@Procent
bardzo zacne działanie. Chylę czoło.
Życzę powodzenia obu stronom :) Zaraz przejrzę blog Darka, bo nasuwa mi się parę pytań, a może znajdę tam odpowiedź.
Ciekaw jestem też Waszej opinii o Unfuddle, bo naturalnym miejscem na projekt .NET OS, wydawał mi się codeplex (jestem za centralnym miejscem na takie projekty – łatwiej coś znakeźć).
Dlaczego wybraliście aplikacje okienkową?
W dzisiejszych czasach internetu aż prosi się o wykonanie tego w technologii webowej.
Zwłaszcza że każdy używa innego OSu etc…
Czy robiliście taką analizę?
@matiit:
Nie jesteś pierwszy, nawet po Darku:). Jeśli będę planował coś podobnego w przyszłości to na pewno ogłoszę to w bardziej zorganizowany sposób. Szczerze mówiąc nie liczyłbym specjalnie na takie coś przynajmniej w ciągu kolejnych kilku miesięcy, ale kto wie…:)
@Artur:
Szczerze mówiąc ode mnie nie wymaga to zbyt wiele czasu – akurat tyle ile mogę poświęcić. Już na samym początku okazało się, że Darek się porządnie zaangażował i sam rozwiązuje problemy.
Co do Unfuddle… to mój wybór, po doświadczeniach z OnTime chciałem zobaczyć jak to się sprawuje w praktyce. Jak na razie wniosek mam jeden: w projekcie choć trochę większy niż ten (czyli praktycznie w każdym) abonament niższy niż 49$ miesięcznie nie ma szans się sprawdzić z prostego powodu – feature Time Tracking dostępny jest dopiero od tego planu. Nie wiem jak działa, więc nie wiem też czy warto tyle płacić… Wiem jednak, że gdybym miał wybierać komercyjny hosting softu do zarządzania projektem to raczej nie byłoby to Unfuddle własnie z tego względu – za 50$/mo można pewnie przebierać w dostępnych rozwiązaniach.
A nie CodePlex, bo doświadczenie z tą platformą do niczego nie przyda mi się w życiu zawodowym. Poza tym nie oferują repozytorium Git (na szczęście jest HG, więc tak naprawdę nie ma biedy:) ).
@Grzegorz K:
Aplikacja okienkowa to moje główne wymaganie. Chcę być w stanie dodać nową pozycję kilkoma stuknięciami w klawisze, zupełnie bez użycia myszki. Poza tym chcę uzywać tej aplikacji gdziekolwiek z wbudowaną bazą, nie szukając hostingu czy nie stawiając jej u siebie lokalnie.
@procent:
A czy nie rozważałeś udostępniania pewnych danych dla Klientów?
Aplikacje www tez można obsługiwać bez myszki.
No i co najważniejsza – aplikacja www może być dostępna w każdym miejscu na każdym PC bez instalowania.
@Grzegorz K:
Ale jak to dla klientów? Moje wydatki?
To tylko prosta aplikacja która będzie umożliwiała robienie tego, co teraz z bólem osiągam za pomocą Excela. NIC więcej. Jest masa softu który robi milion rzeczy naraz, ale właśnie dlatego go nie używam – bo potrzebuję jedynie 5% ich możliwości.
Moje wydatki, moje zarobki, podsumowania wg moich kryteriów. Uruchamiana tylko na moim komputerze, dopasowana do moich prywatnych potrzeb.
Obsługa www bez myszki nie jest tak prosta, jak prosta będzie (mam nadzieję) obsługa tej aplikacji. W przeglądarce nie podefiniujesz dowolnych skrótów klawiszowych.
Instalacja także nie będzie potrzebna – exe + baza + xml z ew. konfiguracją i tyle.
To ma być aplikacja skrojona idealnie do zadań, które ja będę wykonywał. Docelowo nikt inny wcale nie musi z tego skorzystać.
[quote]Jeśli pojawi się zainteresowanie to pewnie pomyślimy nad udostępnieniem repozytorium kodu[/quote]
Bardzo fajnie by było gdybyście udostępnili. Pozdrawiam
@Paweł Trojanowski:
Cała sprawa jest na razie wstrzymana i w sumie nie ma nawet kodu którym można by się podzielić – powody podał Darek na podlinkowanym blogu.