Wednesday, December 23, 2009

Tuesday, June 30, 2009

Javarsovia 2009

To już 3cia edycja największej w Polsce (a niektórzy twierdzą, że także w Europie) bezpłatnej konferencji poświęconej technologią z rodziny Java. Javowe święto odbędzie się poraz kolejny na Wydziale Biologii UW.
Tych którzy nie będą świętowali amerykańskiego dnia niepodległości lub bawili się przy dźwiękach festiwalu Open'er gorąco zapraszam na Javarsovie.


Dlaczego tak agituje ? Bo warto, a także dlatego, że w tym roku udało mi się znaleść w szacownym gronie organizatorów. I choć mój wkład w organizację jest niewielki, mogę Wam zagwarantować, że nie będziecie żałować poświęconego czasu.
W tym roku będą trzy równoległe sesje prezentacji oraz jedna sesja warsztatowa. Co ciekawe będziecie mogli posłuchać nie tylko o nowych frameworkach o których zwykle się mówi przy takich okazjach, ale także posłuchać prezentacji pragmatyków. Będzie można usłyszeć o technikach testowania, ciągłej integracji czy programowaniu w środowisku klastrowym. Prelegenci którzy wąchali już niejednokrotnie proch projektowych pól bitwenych odpowiedzą na drążące was pytania.

Miłośnicy nowych technologii będą mogli posłuchać o Androidzie czy witrualizacji. Nie zabraknie także prezentacji bardziej koncepcyjnych a dotyczących takich tematów jak kryptografia czy "cloud computing".


Po konferencji odbędzie się impreza integracyjna na którą zaproszenia będzie można zdobyć podczas Javarsovii. Będzie to kolejna okazja aby porozmawiać z prelegentami czy sponsorami. W końcu znajomości najlepiej zawiera się przy piwie.
Tak więc do zobaczenia na Javarsovii'09!


Wszelkie informacje znajdziecie -> tutaj

Wednesday, May 13, 2009

Produkt "szyty" na miarę...

Metafora


Wiele firm właśnie tak mówi o swoich aplikacjach, idąc tym tropem zacząłem się przyglądać bliżej tej metaforze.
Chcąc być posiadaczem ręcznie uszytego garnituru/sukni klient udaje się do zakładu krawieckiego. Tłumaczy krawcowi jakiego rodzaju ma być to garnitur (ślubny, zwykły etc.). Klient wybiera kolor, fason i fakturę materiału. Krawiec może w tym wyborze pomóc, doradzić, a czasem zasugerować. Następnie mierzy on klienta i przystępuje do pracy.
Po jakimś czasie klient przychodzi na przymiarkę. Sprawdza czy krawiec zastosował się do jego wymagań, a następnie przymierza "wyrób". Krawiec jeżeli to konieczne nanosi poprawki, wykańcza drobiazgi, a następnie dostarcza gotowy produkt.

Analogia


Czytając książki na temat metodyk tworzenia oprogramowania mam wrażenie, że ta metafora jest bardzo prawdziwa. Z jednym małym ale...
Przychodząc do krawca wierzymy, że jest on specjalistą w swojej dziedzinie. Z reguły ufamy jego radą i sugestią, a co najważniejsze pozostawiamy mu szczegóły techniczne. Wybraliśmy tego szewca, a nie innego. Polecił nam go znajomy, który był zadowolony, więc i my powierzamy w jego ręce wykonanie naszego zamówienia.
W świecie tworzenia oprogramowania zaufanie do wykonawcy to towar dość mocno deficytowy. Nie chodzi o zaufanie do firmy jako solidnego partnera w interesach, ale do ludzi tworzących produkt jako fachowców. Klient bardzo często nie mówi jedynie czego oczekuje od produktu i jakie jego potrzeby ma on zaspakajać. Klient często (bardzo często/przeważnie) decyduje o wszystkim od kolorów począwszy, a na układzie formularzy skończywszy. Nie było by w tym nic złego, gdyby klient był ekspertem od danego typu aplikacji, ale najczęściej nie jest.
Właśnie z tego powodu, gdy przychodzimy do krawca nie mówimy mu jakim ściegiem ma szyć, czy w jaki sposób kroić materiał. Wybieramy co prawda fason, ale nie projektujemy każdej kieszeni i kołnierza. Dlaczego ? Bo na tym zna się lepiej krawiec, który uszył już setkę innych garniturów. Ma on dostateczną wiedzę i doświadczenie, więc prawdopodobnie zrobi to lepiej.

Klient ma zawszę rację


Klient najczęściej wie wszystko najlepiej, przecież to on będzie korzystał z tego systemu (być może "do końca życia"). Dlatego specjalista od ubezpieczeń może zaprojektować formularz, a Pani Krysia określić przepływ stron.
Dlaczego klient nie ufa fachowcom ? Dlaczego klient chce wykonywać pracę projektanta ?
Po pierwsze: "Bo może". Czy gdyby producent samochodów poprosił nas o współpracę w tworzeniu nowego modelu. Czy nie kusiło by nas, aby zrobić to auto pod siebie ? Pewnie tak i każdy z nas zrobił by to czysto subiektywnie. Subiektywnie w tym wypadku nie znaczy lepiej. Dla kogoś innego ten produkt może nie być tak intuicyjny i wygodny jak nam się wydaję. Jak często nowy model samochodu/telefonu zaskoczył nas bardzo użyteczną funkcją, której sami byśmy nie wymyślili ? Zaufajmy tym ludziom ! To twórcy dla których jakość ich dzieła jest często nie mniej ważna niż dla klienta.

Po drugie: "Bo to Pani Krysia będzie całe życie kożystała z tego produktu i to dla niej ten system".
Twierdzenie często nieprawdziwe, ponieważ kadra się zmienia, ludzie przychodzą i odchodzą, a produkt zostaje. Co więcej pewne przyzwyczajenia Pani Krysi mogą być niewspółdzielone przez inne osoby (np. nie miały styczności z poprzednim oprogramowaniem używanym w firmie).

Po trzecie: "Bo już mamy taki jeden system i nikt nie umie się nim posługiwać. Dodatkowo jest strasznie nieintuicyjny".
Trzeba sobie postawić pytanie, dlaczego ten system jest taki "zły" ? Czy osoby korzystające z niego zostały należycie przeszkolone ? Jeżeli nie, to lepszym rozwiązaniem jest zorganizowanie szkoleń dla pracowników, zamiast angażowanie ich w "projektowanie" aplikacji. Jeżeli tak, należy zapewnić użytkowników, że podczas fazy analizy ich potrzeby i sposób pracy zostaną dokładnie zgłębione i uwzględnione w projekcie aplikacji. Co więcej można konsultować pewne rozwiązania z "biznesem".

To chyba najpopularniejsze powody dla których klient staje się projektantem. Czasami trzeba po prostu zastanowić się co za nimi stoi i poprzez ich zrozumienie przekonać klienta do zmiany podejścia. Czasami jednak nie mamy wpływu na klienta i wtedy wszystko staje się kwestią zaufania, dlatego apeluje do "klientów" zaufajcie fachowcom (sprawdzajcie, nadzorujcie, audytujcie ale ufajcie...).