Z zycia
Procedury i narzędzia
opublikowany przez streser 05, wrz, 2011, w kategoriach Agile, Praca, Z zycia
“Ludzie i interakcje ponad procedury i narzędzia” – łatwo powiedzieć – trudniej zrobić.
Pierwsza myśl, która pojawia się, gdy zostajemy managerami w firmie IT, w której panuje chaos:
- “Trzeba ten chaos posprzątać”
- no dobrze, ale jak?
- “Wprowadźmy procedury, które uporządkują chaotyczne procesy…”
To nie działa! – wiem, bo sprawdziłem. Procedury są fajne, ale…
Po wprowadzeniu procedury mającej usystematyzować proces wdrażania aplikacji na serwery produkcyjne, bardzo szybko okazuje się, że rzeczy tak oczywiste jak wydawanie tylko ze stabilnego brancha, czy w ogóle posiadanie czegoś takiego jak stabilny branch nie dla wszystkich są oczywiste, a skoro nie ma tego szczegółowo opisanego w procedurze to kto by się tym przejmował. Ponadto dosłownie od razu pojawia się spychologia typu: “MY zakodowaliśmy już swoje teraz ONI niech się martwią jak to wydać”.
Aby poradzić sobie z codzienną “bieżączką” wynikającą z nadmiaru zadań krytycznych do zrobienia “na już” wprowadzamy proste kryteria oceny krytyczności i nadawania priorytetu zgłoszonym ticketom. Po chwili okazuje się, że zapis w stylu: “Jeśli błąd powoduje znaczące straty finansowe to można nadać mu priorytet krytyczny” jest podstawą do wielu nadużyć i 80% zgłaszanych ticketów ma priorytet krytyczny, a autorzy powołują się na “znaczące” wg nich straty finansowe, chociaż nie są w stanie, czy też nie mogą podać żadnych kwot.
Narzędzia, które wprowadzamy w dobrej wierze, po to by uporządkować pewne elementy procesu bardzo szybko obracają się przeciwko nam. Wprowadzane procesy powodują zanik i rozproszenie odpowiedzialności za wykonywane zadania. Niby posiadanie procedury daje większy komfort pracownikom bo pozwala w każdym momencie się na tą procedurę powołać ale z drugiej strony okazuje się, że jej nadinterpretacja szybko zwalnia co niektórych z myślenia.
A gdyby tak spróbować usiąść razem z innymi i po prostu robić te wydania w sposób, który pozwoli na opanowanie chaosu, robić je wspólnie aż do momentu, gdy wszyscy nauczą się robić to dobrze, zrozumieją po co robić to dobrze, zrozumieją, że sami mogą mieć wpływ na to by robić to jeszcze lepiej…
A gdyby tak spróbować uświadomić zgłaszających tickety, po co te priorytety wprowadzamy i że jeśli sami nie dojdą do tego jak sortować zadania według priorytetu to wiele ważnych rzeczy po prostu umknie… A gdyby tak w ogóle zlikwidować priorytety i robić zadania według uznania…
Czasami wdrażając Agile zapominamy o podstawowych zasadach właśnie takich jak ta z manifestu mówiąca o ludziach i interakcjach. Czasami zdarza się, że tak bardzo jesteśmy zapracowani tworzeniem nowych procedur, pisaniem dokumentacji i samym wdrożeniem, że nie zauważamy, iż ludzie nie są gotowi na wymyślane przez nas procedury. Czasami, a nawet często bywa tak, że procedury są tylko łatą nalepioną na problemie, gdy źródło problemu jest zupełnie gdzie indziej – gdzieś głębiej, a zgodnie z Lean problemy należy rozwiązywać a nie szukać drogi na około, rozwiązywać poprzez eliminowanie przyczyny powstania problemu.
O motywacji słów kilka.
opublikowany przez streser 04, lut, 2011, w kategoriach NLP, Praca, Z zycia, Zarządzanie
Zastanawiałem się ostatnio nad czynnikami, które wpływają na to, że jedne projekty kończą się sukcesem, a inne niestety porażką. Po analizie kilku przypadków doszedłem do wniosku, że jednym z ważnych czynników sukcesu jest odpowiednie motywowanie pracowników. Oczywiście nie jest to jedyny warunek, który trzeba spełnić, niemniej jednak warto zastanowić się co nas motywuje do pracy? Pierwsza odpowiedź jaka się nasuwa zdecydowanej większości pytanych to “pieniądze”. Ale czy na pewno? Z doświadczenia wiem, że pieniądze owszem motywują na początku kariery, zwłaszcza wtedy, gdy się tych pieniędzy nie miało, a tu nagle co miesiąc na konto spływają regularne całkiem pokaźne sumy. O takiej motywacji możemy mówić jedynie w kontekście pracowników niedoświadczonych, przeważnie młodych, zaczynających swe kariery. Co innego, gdy mamy do czynienia z pracownikami doświadczonymi, wysokiej klasy specjalistami czy też ekspertami. Specjalistów rzadko motywują pieniądze, a jeśli już to jest to motywacja krótkotrwała. Nie wiem jak w innych dziedzinach ale jeśli o IT chodzi to obecnie w Polsce specjaliści są bardzo poszukiwani i wiele firm jest w stanie zapłacić na prawdę duże pieniądze za ich usługi, tym samym dla pracodawców zwiększa się ryzyko tego, że ktoś podbierze (podkupi) ich najlepszych pracowników oferując wyższą pensję.
Co zatem zrobić? Jak inaczej niż za pomocą pieniędzy motywować pracowników?
Okazuje się, że wspomniani ’specjaliści’ pracują głównie po to by osiągać satysfakcję z wykonanej pracy. Jeśli pracownik jest dumny z wykonywanej pracy samoistnie przekłada się to na jego wysoką motywację, co skutkuje wysoką produktywnością. Zastanawiając się nad tym co sprawia, że jesteśmy dumni z wykonywanej pracy możemy dojść do trzech wniosków.
Możemy być dumni z produktu naszej pracy. Jeśli oprogramowanie, które wytwarzamy jest dobre, dobrze napisane, spełnia wszystkie wymogi jakościowe to możemy być dumni ze swojego dzieła. Jako anty-przykład podam system, który ogólnie rzecz biorąc działa, marketingowcy z powodzeniem sprzedają go klientom dzięki czemu firma zarabia, niemniej jednak jakość kodu i sposób jego wytwarzania są na tak niskim poziomie, że żaden programista nie chciałby tego systemu pokazywać w swoim portfolio wiedząc, że potencjalny pracodawca mógłby ten kod przejrzeć. W takiej sytuacji pracownik może powiedzieć: “OK, cieszę się że system działa, ale po powrocie do domu nie czuje satysfakcji z wykonywanej pracy – system jest ok, ale tak na prawdę to jeden wielki śmietnik owinięty ładnym papierkiem”.
Kolejny rodzaj dumy to duma z osiągnięć. Pracownicy odczuwają satysfakcje, gdy ich praca przyczynia się do osiągnięcia sukcesu – sukcesu firmy, sukcesu projektu, czy nawet samego wybicia się zespołu ponad szeregi innych pracowników. Żeby motywować pracowników za pomocą tej metody wystarczy definiowanie odpowiednio małych celów, których osiągnięcie w krótkim czasie oznacza sukces, który następnie powinien być celebrowany w odpowiedni sposób. Dobrym przykładem zastosowania takiego rodzaju motywacji może być nagradzanie i ciągłe powtarzanie zespołowi, który pracuje nad wytwarzaniem nowych funkcjonalności frontendowych, które są potem sprzedawane klientom, że to oni generują większość zysku w firmie, która zatrudnia także programistów backendowych nie mających bezpośredniego wpływu na zyski firmy.
Oprócz powyższych jest jeszcze jeden ważny aspekt motywowania pracowników. Pracownicy są dumni z uczestnictwa w czymś dużym. Człowiek jest istotą stadną, dlatego łączymy się w grupy, społeczeństwa etc. Podobnie jest w przypadku wykonywania pracy im bardziej pracownik czuje się częścią małej społeczności w zakładzie pracy tym bardziej wpływa to na jego motywację. Ponadto znaczący wpływ na motywacje ma świadomość skali tego co jest produkowane. Zupełnie inne podejście w tej kwestii ma pracownik firmy takiej jak Google, Microsoft czy Apple, który ma świadomość tego, że z produktów jego pracy korzystają codziennie miliony użytkowników, a zupełnie inaczej swój udział w przedsięwzięciu ocenia pracownik małej firmy tworzącej sklepy internetowe, które może w najlepszym wypadku dojdą do kilku tysięcy wejść dziennie. Sam udział w przełomowych projektach dużej skali bywa często wystarczająco motywujący by pracownicy wykonywali swoją pracę najlepiej jak to tylko możliwe.
Powyżej opisałem trzy podstawowe czynniki mające wpływ na motywację pracowników. Oczywiście takich zależności jest znacznie więcej, chociażby sama atmosfera pracy, szef, wygodne krzesło, troska firmy o pracownika, rzetelne kierownictwo, które dotrzymuje słowa, społeczne aspekty wykonywanej pracy itd.
Zaspane poniedziałki w niewyspanych autobusach…
opublikowany przez streser 23, sie, 2010, w kategoriach Praca, Z zycia, Zarządzanie
Poniedziałek 6.30 – dzwoni budzik – o 7.00 musisz być w pracy, za Tobą ciężki weekend (bo przecież kiedyś trzeba odreagować codzienne nierzadko nudne siedzenie po osiem godzin w pracy przy komputerze, do tego stres wywołany krytycznością wykonywanych zadań oraz napiętym – wręcz niewykonalnym harmonogramem). Pierwsza myśl po otwarciu oczu: “byle do piątku”. I tak codziennie rano. Ta sama monotonia – sen, praca, dom, sen, praca, dom, sen, praca… A wszystko przez to, że ktoś kiedyś wymyślił, że etat ma mieć 8 godzin. 8 GODZIN! Osiem godzin to przecież 1/3 doby, to 30% naszego życia.
Kilka miesięcy temu miałem rozmowę o pracę w jednej z największych w Krakowie firm/korporacji zajmującą się wytwarzaniem oprogramowania. Rozmowy tej nie przeszedłem (pomijając oficjalną wersję) między innymi dlatego, że wdałem się ze swoim niedoszłym przełożonym w polemikę na temat czasu pracy. Otóż według mnie żaden programista/analityk a tym bardziej tester nie jest w stanie pracować efektywnie przez 8 godzin dziennie pięć dni w tygodniu. Praca na ośmiogodzinnym etacie z pewnością sprawdza się na kasie w supermarkecie, albo przy lżejszych pracach fizycznych, ale na pewno nie podczas pracy w której wymagane jest ciągłe skupienie i wytężone myślenie. Z doświadczenia wiem, że po 6 godzinach wytężonej pracy moja efektywność znacznie spada, co na moim stanowisku (QA/Tester) podczas pracy nad jakością i bezbłędnością czasem krytycznych systemów może oznaczać dla firmy poważne straty, jeśli z powodu zmęczenia jakaś krytyczna usterka przemknie się przez testy i pojawi się na produkcji. Nie wspomnę już nawet o głupotach które zdarzyło mi się robić z przemęczenia (np. ostatnie skasowanie całej zawartości katalogu domowego na jednej z testowych maszyn
– na szczęście udało się to w miarę szybko przywrócić, ale mogło być gorzej). Z drugiej strony zdarza mi się przesiadywać w biurze nad rozwiązaniem jakiegoś frapującego problemu/zagadnienia czasem nawet po 12-14 godzin niemniej jednak po takim wysiłku potrzebuję porządnego wypoczynku by wrócić z powrotem na wysokie obroty i znów pracować na 100% swojej efektywności. Nie wiem czy Wy też tak macie, nie chce mi się nawet szukać jakiś badań naukowych czy naukawych dotyczących tego zagadnienia, po prostu obserwując siebie wiem że narzucony czas pracy nie sprawdza się w IT. Tutaj ważna jest skuteczność i bezbłędność dlatego nie rozumiem idei normowanego czasu pracy.
Drążąc głębiej ten temat mógłbym dojść do stwierdzenia, że nie rozumiem tego jak ten świat jest zbudowany – bo przecież ludzie powinni sobie ufać i na podstawie tego zaufania budować pewne zależności i podejmować się pewnych zobowiązań. Niestety powyższe dotyczy świata idealnego. Jak jest w rzeczywistości – każdy sam dobrze wie. Powyższe podejście zupełnie nienormowanego czasu pracy mogło by mieć zastosowanie tylko i wyłącznie, gdy mieli byśmy do czynienia ze Specjalistami (przez wielkie “S”) w pełni świadomymi wartości tego co robią i w pełni za to odpowiedzialnymi. Niestety kolejny raz już nie tylko tzw. “rynek IT” psują tzw. “studenci informatyki”, którzy za stosunkowo niskie pieniądze oferują usługi o bardzo niskiej jakości…
PS: Bez obrazy dla Studentów Informatyki (Wielkie “S” “I”) bo są i tacy, którzy znają się na programowaniu znacznie lepiej niż niejeden programista.
PPS: W tytule nieprzypadkowo fragment piosenki Kumka Olik “Zaspane poniedziałki”.
“Polityka” Scrum
opublikowany przez streser 12, sie, 2010, w kategoriach Agile, Scrum, Z zycia, Zarządzanie
Zgodnie z informacjami napływającymi z Scrum Alliance oraz Scrum.org Scrum Allicane odebrał Kenowi Schwaberowi Tytuł “Certified Scrum Trainter” co uniemożliwia mu przyznawanie certyfikatów sygnowanych przez Scrum Alliance w tym także CSM. Sytuacja jest o tyle paradoksalna, że to Ken Schwaber utworzył program tej ścieżki certyfikacyjnej. Powodem powyższej decyzji było złamanie przez pana Schwabera jednego z podpunktów umowy CST, który mówi o tym, że będąc trenerem Scrum Alliance nie wolno przeprowadzać szkoleń scumowych nieakredytowanych przez tą organizację. Ken złamał regulamin tworząc nową ścieżkę certyfikacji Professional Scrum Master – Scrum in Depth.
Szkolenie Scrum In Depth zostało utworzone przez Kena głównie po to by wyróżnić osoby posiadające zaawansowaną wiedzę z dziedziny SCRUM, którą nabędą podczas tego szkolenia oraz praktyki/samodzielnej nauki. Kolejnym powodem była ogólna opinia na rynku mówiąca o tym, że certyfikaty CSM tracą na znaczeniu przez to, iż nie wymagały zdawania żadnego egzaminu (obecnie samo przystąpienie do egzaminu CSM już uprawnia do otrzymania tego certyfikatu).
Po szkoleniu Scrum in Depth uczestnicy przystępują do zdawania egzaminu Professional Scrum Master I (który z założenia jest trudniejszy od CSM oraz faktycznie poświadcza o posiadaniu konkretnej wiedzy z dziedziny SCRUM i Agile). Jego zdanie (wynik powyżej 80%) oznacza przyznanie certyfikatu Professional Scrum Master I. Szkolenie Scrum in Depth oraz zdanie egzaminu PSM I otwierają drogę do dalszej ścieżki certyfikacyjnej sygnowanej przez Scrum.org. Po odbyciu szkolenia i zdaniu egzaminu PSM I każdy uczestnik może przystąpić do egzaminu PSM II.
Ścieżkę egzaminacyjną Professional Scrum Master możemy uznać za równoległą do ścieżki CSM, z tym jednak wyjątkiem, że certyfikaty PSM wymagają ZDANIA trudniejszych egzaminów dzięki czemu mają większe znaczenie na rynku i nie każdy może taki certyfikat otrzymać. Certyfikat PSM II można uznać za równoznaczny z CSP (Certyfied Scrum Practitioner) z Scrum Alliance. Po zdaniu tych dwóch egzaminów istnieje możliwość stania się trenerem Scrum in Depth, wymaga to pozytywnego rozpatrzenia podania przez Kena Schwabera i spełnienia kilku indywidualnie wyznaczanych przez Kena warunków.
Przypomnę może jeszcze jak wygląda ścieżka certyfikacji Scrum Alliance:
Obecnie uczestnicy kończąc szkolenie i przystępując do egzaminu (obecnie wszyscy którzy do niego przystąpią automatycznie go zdają bez względu na wynik) otrzymują certyfikat CSM (Certyfied Scrum Master). Po pewnym okresie czasu (obecnie jest to chyba conajmniej rok) posiadacze CSM mogą ubiegać się o przyznanie certyfikatu CSP (Certyfied Scrum Practitioner) który dostaną na podstawie pozytywnej opinii komisji Scrum Alliance. Po uzyskaniu CSM, CSP, oraz CSPO (Certified Scrum Product Owner) można się ubiegać o nadanie tytułu CST (Certified Scrum Trainer) albo CSC (Certified Scrum Coach), niemniej jednak zasady przyznawania tych tytułów i uprawnień są bardzo płynne i ich spełnienie wymaga posiadania szerokich znajomości wśród wysoko postawionych członków Scrum Alliance oraz innych trenerów, co także było powodem utworzenia oddzielnej ścieżki przez Kena Schwabera. Utrzymanie tych certyfikatów wymaga corocznego uiszczenia opłaty oraz zdawania egzaminów.
Miło mi poinformować, że wśród trenerów Professional Scrum Master znalazł się także Andy Brandt z Code Sprinters.
Tester Inc.
opublikowany przez streser 11, sie, 2010, w kategoriach Praca, Z zycia
Jako, że dawno nie było żadnej notki pora na małe wyjaśnienia i usprawiedliwienia.
Po długiej przerwie spowodowanej nawałem obowiązków związanych z… uwaga… zmianą pracy… Tester powraca!
Powraca jako oficjalnie Quality Assurance Engineer (tak mam na umowie
) w iLoop mobile Inc.
A’propos umowy to tym razem umowa o pracę – ma to swoje zalety ale jak dla mnie niestety znacznie więcej wad:
- normowany czas pracy – etat,
- złodziejskie stawki na ZUS, opiekę medyczna, podatki etc.
- problemy z urlopami,
- karta obowiązków na danym stanowisku – za robienie czegoś ponad to nikt mi nie zapłaci dodatkowo,
- ograniczone możliwości mobilności na rynku pracy,
- ograniczenia lojalnościowe,
- klauzule tajności.
Ale dość narzekania! Głównym powodem zmiany pracy były pieniądze, po prostu dostałem ofertę nie do odrzucenia i tyle (pomijam fakt że teraz odczuwalna część swojej pensji oddaje państwu), nawiązując do wątku na forum.testerzy.pl okazuje się, że nawet w naszym kraju jako już nie tester ale na stanowisku obejmującym trochę więcej obowiązków i wymagającym znacznie większej wiedzy i umiejętności, lecz nadal mocno związanym z testowaniem można zarabiać całkiem fajne pieniądze pracując na etacie.
Właśnie “na etacie” – ostatnio zainteresowałem się rynkiem freelancerskim w naszym kraju i nie tylko. Miałem także okazję wymienić na ten temat kilka maili z bardziej doświadczonymi w tym zakresie ludźmi i ogólnie jeśli o testowanie chodzi to nie jest lekko. Nie tylko u nas ale i na świecie. Generalnie rynek w tym zakresie jest zalany przez tania (i na prawdę stosunkowo dobrą) siłę roboczą z Indii i podobnych krajów. Poza tym projekty freelancerskie to przeważnie projekty, które nie wymagaja stałego zespołu a także ich wielkość pozwala na prowadzenie ich bez etatowych testerów. Co innego jeśli chodzi o usługi doradcze – tutaj na szczęście jest jeszcze trochę miejsca i miałem okazję ostatnio dorobienia jako doradca i wdrożeniowiec procesów testowych w kilku projektach.
Nadal aktualna jest moja współpraca z Code Sprinters w temacie szkoleń i doradztwa z zakresu Agile. W przygotowaniu też e-seminarium w ramach Polskiej Grupy Scrum ponownie dotyczace środowiska testowego dla zespołu Agilowego, tym razem wszystko powinno zadziałać
.
Jeśli o bloga chodzi to obiecuje poprawę. Jest kilka zakiszonych notek które może wreszcie uda się opublikować. Jest także kilka tematów które chciałbym poruszyć.
Żeby pobrać Windowsa trzeba mieć… Windowsa
opublikowany przez streser 16, mar, 2010, w kategoriach Technologie, Uczelnia, Z zycia
Jako że jestem studentem (nadal, jeszcze, znowu itd
) postanowiłem wykorzystać ten fakt i skorzystać z możliwości pobrania “darmowego” Windowsa. Darmowego i jak najbardziej legalnego zgodnie z licencją MSDNAA E-Academy License Management System (ELMS), która to przysługuje mi z racji bycie studentem na mojej Uczelni.
Pomijam fakt, że podczas rejestracji w cudownym systemie ELMS hasło, które podawałem przy pierwszej rejestracji zostało mi przesłane ponownie drogą mailową, niczym nie zabezpieczonym plain textem. Ot taki mały security sic problem, ale w systemach z pod znaku M$ nic takiego nie jest mnie już w stanie zaskoczyć.
Po wypełnieniu papierków na uczelni – podpisaniu umowy (oczywiście w języku angielskim, którego przecież mógłbym nie zrozumieć, ale kogo to obchodzi) dopełniłem rejestracji klikając w link aktywacyjny i logując się na moje konto w MSDN Academic Alliance Software Center. Pierwsze zdziwienie nastąpiło, gdy okazało się, iż jest to marna przeróbka sklepu internetowego Micro$oftu, w której aby coś pobrać, podobnie jak w sklepie najpierw muszę dodać to do koszyka, po czym zatwierdzić “zakup” (nawet niektórych tekstów nie pozmieniali). Na szczęście w miejscu cen było “Free”. Po dokonaniu “zakupu” polskiej wersji Windows XP Proffessional (Single User) na ekranie wyświetliła się instrukcja by kliknąć w link “download” co też uczyniłem. Możecie sobie wyobrazić moje zaskoczenie (albo jego brak),.gdy okazało się, iż aby ściągnąć Windowsa musże najpierw zainstalować aplikację Windows_XP_ISO_Downloader.exe. W skrócie, by zainstalować Windowsa potrzebuję Windowsa, który tą aplikację obsłuży.
Żeby nie było, że tak łatwo się poddałem spróbowałem uruchomić “downloadera” używając do tego celu Wine. Po chwili niepewnośći moim oczom ukazał się poniższy obrazek:
Treść powyższego dość jednoznacznie sugeruje, że jest to nie tylko dowloader ale i installer Windowsa. Nie zważając na ryzyko (wykorzystując defaultowe C:\Temp – z ciekawości co się stanie) przeszedłem do następnego kroku.
Ściąga się… W sumie zastanawiam się jak to możliwe, gdyż nie odpaliłem Wine jako root (może ustawiłem to gdzieś, kiedyś tylko o tym zapomniałem). Poczekamy na efekty za kilka minut…
Obraz ISO z Windowsem ściągnął się. Przynajmniej tak twierdzi ta wspaniała aplikacja. Osobiście nie udało mi się odnaleźć tego pliku na moim dysku. No nic… Raz się żyje – klikam “Launch”. I… Stało się to czego się w sumie spodziewałem wysypał się Wine. Może właśnie problemem był brak uprawnień do pisania po dysku, albo nieistniejąca ścieżka do katalogu. Chyba wypadało by sprawdzać takie rzeczy przed narażeniem użytkownika na kilkugodzinne bezcelowe ściąganie pliku.
Efekt końcowy dość przewidywalny. Być może jest jakiś sposób na efektywne pobranie Windowsa przy użyciu Linuksa, ale niestety nie mam teraz czasu by się tym zajmować. Powyższy eksperyment został przeprowadzony na potrzeby niniejszej notki, a sprowokował go kolega, który miał problemy z samym ściągnięciem Windowsa nie mówiąc o jego instalacji przy użyciu powyższego narzędzia.
PS: Powyższa notka powstawała w trakcie wykonywania opisywanych w niej czynności. Na początku nie wiedziałem jak to się skończy.
Miało być tak pięknie a jest jak zawsze… Niezastąpiony M$ nigdy Cię nie zawiedzie…
Rok 2009 – Podsumowanie.
opublikowany przez streser 01, sty, 2010, w kategoriach NLP, Praca, Retoryka, Z zycia, Zarządzanie
Po szampańskiej zabawie sylwestrowej przyszedł czas na chwilę refleksji nad minionym rokiem. Dla mnie był to rok dużych zmian i sukcesów.
Rok 2009 rozpoczął się rozczarowaniem zawodowym, które spowodowane było zderzeniem mojej osoby z pseudokorporacyjną ścianą biurokracji, która dość skutecznie blokowała, albo przynajmniej spowalniała moje możliwości rozwoju zawodowego. Powyższa sytuacja spowodowała drastyczną decyzję o zmianę pracy.
Tutaj pojawia się pierwszy sukces – bardzo szybkie (całkowity proces rekrutacji – od wysłania CV do zatrudnienia trwał tylko 2 dni) nawiązanie współpracy z Code Sprinters. Tutaj poznałem świetnych ludzi, którzy bardzo skutecznie motywowali i nadal motywują mnie do dalszego rozwoju i zdobywania wiedzy oraz umiejętności.
Jeśli mowa o sukcesach, to warto nadmienić, że znaczną ich część jeśli chodzi o moją osobę można zaliczyć do sukcesów firmy w której pracuję (albo na odwrót). Może się to wydać trochę dziwne, ale są jeszcze tacy pracodawcy, którzy potrafią stworzyć atmosferę, która sprzyja utożsamianiu się pracowników z firmą, w której pracują. I oto właśnie pierwsza lekcja z minionego roku – bardzo ważne jest aby wszystko to co robisz sprawiało Ci radość, by możliwe było utożsamianie się z tym oraz byś zawsze czerpał z tego satysfakcję. Bardzo ważne w tym wszystkim jest wsparcie innych.
Z nową pracą i związanym z nią natłokiem przemyśleń i wniosków związane było także powstanie tegoż bloga, na którym staram się dzielić z Wami wszystkim tym co sobie uroję. Jeśli oczywiście pozwala mi na to czas.
Kolejną lekcją ubiegłego roku była nauka bezpośredniej współpracy z klientami, którzy nie zawsze są idealni. Powyższe zmotywowało mnie do rozwoju swoich umiejętności interpersonalnych – zainteresowanie retoryką, NLP oraz psychologią.
Moje wcześniejsze zainteresowanie zwinnymi metodami zarządzania projektami sprawiło, iż w Sprintersach poczułem się jak ryba w wodzie. Miałem tutaj możliwość poznania od kuchni Scruma (jak jakiś czas temu stwierdziła moja znajoma jeśli chodzi o Scrum to w Krakowie nie mogłem lepiej trafić niż do CS) oraz XP. Współpracę z Adamem, z którym wdrażaliśmy dobre praktyki związane z nadzorowaniem jakości projektów (automatyzacja, testy regresyjne) oraz wplątanie tego wszystkiego w Scruma uważam za niesamowicie owocną, a jej efekty mogę śmiało uznać za kolejny sukces. Nauczyłem się wiele o procesach testowych, ale jeszcze wiele nauki przede mną.
W międzyczasie odbyła się Sesja Kół Naukowych AGH, na której mój referat o usability został nagrodzony wyróżnieniem. To taki mały osobisty sukces, który można uznać nawet za naukowy – streszczenie referatu doczekało się publikacji.
Później były już chyba wakacje, które spędziłem w pracy i uważam ten okres za bardzo męczący. Zarówno psychicznie jak i fizycznie nie czułem się dobrze. Wniosek, który wtedy mi się nasunął może dla niektórych wydać się oczywisty, lecz dla mnie wtedy taki nie był – należy zawsze zachowywać równowagę pomiędzy życiem zawodowym a osobistym. Uwierzcie nie jest to łatwe. Po wakacjach postanowiłem spróbować naprawić zerwane kontakty ze znajomymi i z satysfakcja stwierdzam, że do końca roku w dużym stopniu się to udało.
Po wakacjach miałem okazję “na boku” uczestniczyć w kilku projektach jako ekspert od użyteczności. Owe projekty już niedługo ujrzą światło dzienne i z pewnością wtedy się nimi pochwalę. Przez cały rok, niestety tylko w mitycznych “wolnych chwilach” trwały prace nad narzędziem do zarządzania testami. Niestety w miarę rozwoju moich umiejętności programistycznych kolejne wersje trafiały do kosza i status na chwilę obecną jest taki, że pozostał sam pomysł i zaimplementowanych kilka podstawowych funkcjonalności.
Co do projektów i pracy nad nimi nauczyłem się także, że nie zawsze najważniejsza jest jakość – czasem dysponujemy ograniczonymi środkami i wtedy musimy znaleźć najbardziej optymalne rozwiązania, niekoniecznie te najlepsze, które mogą się okazać zbyt pracochłonne. Niektóre projekty pomimo tego, że są świetne pozostają tylko projektami i nigdy nie ujrzą światła dziennego. Czasem warto jest wydać projekt średniej klasy, tylko dlatego by najlepszego projektu nie wyrzucić do kosza.
Należało by także wspomnieć o tym, iż udało mi się wrócić na studia, ale co z tego będzie to się dopiero okaże.
Podsumowując rok 2009 był dla mnie rokiem ciężkiej pracy i nauki. Poznałem wiele wspaniałych osób – począwszy od kolegów z pracy, poprzez ciekawe osoby związane z branżą IT, skończywszy na rozmowach z autorytetami w kilku ciekawych dziedzinach takich jak kognitywistyka czy psychologia.
Pozostaje mi tylko życzyć sobie oraz wszystkim Czytelnikom kolejnego owocnego roku, oraz samych sukcesów. Do Siego Roku 2010!
PyConPl’09 – Python oczyma testera.
opublikowany przez streser 28, paź, 2009, w kategoriach Inne, Praca, Technologie, Z zycia
Ostatnio miałem okazje uczestniczyć w konferencji PyConPl’09 poświęconej programowaniu w pythonie (i nie tylko). Konferencja odbyła się w ośrodku wczasowym “Gwarek” w malowniczym Ustroniu. Kto był ten wie jak było, a kogo nie było niech czyta i zazdrości
.
Pokuszę się o krótkie streszczenie tego co według Testera było ciekawe.
Piątek 16 X 2009:
Niesamowicie ciekawy wykład Wesley’a Chuna o referencjach i modelach pamięci w pythonie. Podczas tego wykładu wreszcie udało mi się w pełni (mam nadzieję) zrozumieć idee alokacji pamięci nie tylko podczas programowania w Pythonie. Poza tym na uwagę zasłużyło stwierdzenie Wesley’a – “Wy jesteście młodzi i to do Was należy przyszłość świata”, miało ono sens ponieważ zostało poparte niewątpliwym przykładem w osobie samego Wesley’a który te słowa usłyszał kilka/kilkanaście lat temu od jednego ze swoich nauczycieli i teraz polata jak spojrzał wstecz i podsumował to co udało mu się osiągnąć (kilka książek o Pythonie, wykłady, prelekcje, szkolenia) to faktycznie wniósł jakiś wkład w przyszłość świata.
Sobota 17 X 2009:
Dzień zaczął się od warsztatów Pair Programing i TDD prowadzonych przez Konrada Delaga i Krzysztofa Goja, o ile do Pair Programing (patrząc z boku) jestem dość sceptycznie nastawiony o tyle TDD uważam za podstawę prowadzenia projektów agileowych. Niemniej jednak ponieważ TDD jest u nas w firmie na porządku dziennym i mamy w tym spore doświadczenie to same warsztaty dla mnie osobiście nie były interesujące (może po części też dlatego, że jednak wymagały umiejętności programowania w Pythonie). Ale brawa dla chłopaków, bo tego typu praktyki trzeba jak najbardziej propagować, jeśli chcemy zapewnić wysoką jakość tworzonych a zwłaszcza rozwijanych aplikacji.
Kolejną dość ciekawą prelekcją było zagadnienie praktycznego wykorzystania Pythona we współczesnych systemach pomiarowych używanych w laboratoriach fizycznych. Prelekcje poprowadził Paweł Nita. Duży plus za pokazanie praktycznego wykorzystania języka.
Następnie bardzo interesujący wykład Marcina Mierzejewskiego o dataminingu i przewidywaniu przyszłości za pomocą Python i Orange. Dla mnie wykład był o tyle interesujący, że po dwóch latach studiów Informatyki i Ekonometrii wreszcie ktoś pokazał mi na prawdę proste ale bardzo efektywne zastosowanie podstaw metod ekonometrycznych i statystycznych. Oczywiście aspekt wykorzystania pythona do tworzenia modeli, które przewidują przyszłość obliczając trendy i inne tego typu rzeczy pokazuje kolejne praktyczne i wydajne zastosowanie tego języka. Sam temat dataminingu jest wart zainteresowania i w mitycznej wolnej chwili na pewno postaram się poszerzyć swoja wiedzę w tym temacie.
A po obiedzie był Adam Zieliński współtwórca serwisu dla kinomaniaków Filmaster.pl. I tutaj przeżyłem szok, gdy usłyszałem, że w serwisie, którego kod jest otwarty nie napisano prawie żadnych testów. Ja bym się wstydził pokazywać innym coś takiego i raczej bym się z tym krył. Niemniej jednak serwis świetny i wart polecenia.
Niedziela 18 X 2009:
Niedzielny poranek rozpoczął Jarosław Zgoda prezentacją o WSGI której konkluzją była idea wykorzystywania istniejących już rozwiązań a nie próba wynajdywania koła od nowa. Prezentacja bardzo wartościowa zwłaszcza dla początkujących programistów, którzy zawsze wiedzą lepiej
Wartym uwagi był też wykład Mrka Gajdy o tworzeniu prostych gier w Pythonie i nie tylko. Chyba nawet złapałem bakcyla, może to fajny pomysł na nowe hobby.
Podsumowanie: Konferencja na pewno pozostawiła pozytywne wrażenie – ciekawa tematyka i świetni ludzie. Kilka minusów organizacyjnych: bardzo marny internet, prąd którego dosyć często brakowało, ciasna i duszna sala etc. ale na plus świetna lokalizacja i doskonałe jedzenie
. Mała dygresja – czemu można zorganizować konferencję dla programistów pythona której koszt to około 300 zł, a nie można zorganizować konferencji dla testerów za mniej niż 1000zł?
A i oczywiście podziękowania dla Code Sprinters i Andy’ego za zasponsorowanie naszego udziału w konferencji.
Sztuka Wojny
opublikowany przez streser 26, lip, 2009, w kategoriach Inne, NLP, Retoryka, Z zycia
Jedną z kilku ostatnio przeczytanych przeze mnie książek – nie związanych (bezpośrednio) z informatyką była książka “Sztuka Wojny” w przekładzie Jarka Zawadzkiego. Jednym słowem: “Klasyka”. Książka, którą warto przeczytać. Kilka (w Polsce) lat temu książka robiła furorę w środowisku menagerskim, jednak wszystko jakby trochę przycichło – czyżby okazało się, że praca to nie do końca wojna? Jednak na potrzeby tej notki przyjmę założenie, że praca i kariera mają z wojną wiele wspólnego.
Krótka histora – książka powstała prawdopodobnie około 740 -470 r. p.n.e. autorami są najprawdopodobniej Sun Wu i Su Bin obydwaj zwani Sun Tzu. Pierwszy po sformułowaniu trzynastu rozdziałów dotyczących sztuki wojny został generałem i pokonał wrogie armie, drugi był doradcą innego generała kilkadziesiat lat później.
“Sztuka Wojny” przyciągnęła moją uwagę ze względu na dwa aspekty – możliwość wykorzystania opisanych w niej zasad do zarządzania projektami, ludźmi – “armią”, oraz zastosowanie tychże zasad w “pojedynkach” z konkurencją i klientami. Wiele lekcji Sun Tzu udaje mi się także zastosować w życiu codzienny nie związnym z pracą – w zwykłych kontaktach międzyludzkich, rozwiązywaniu problemów, konfliktów…
Czytając książkę chwilami wydawało mi się, że czytam dobry podręcznik do agile – np. “Aby pokonać wroga trzeba jego armię rozbić na mniejsze i słabsze oddziały”, brzmi jak aby dobrze i szybko wykonać projekt należy każde zadanie rozbić na mniejsze – łatwiejsze do wykonania, “Swoje najlepsze oddziały wystawiaj przeciwko średnim przeciwnika, swoje średnie przeciwko najsłabszym, a najsilniejsze oddziały przeciwnika zostawiaj na koniec i możliwie najbardziej je rozbijaj i osłabiaj” tą zasadę można porównać do odpowiedniego rozdzielenia pracy w zespole programistów. O ile w książce były opisane tak drastyczne metody jak ścinanie niefrasobliwych generałów – o tyle w życiu raczej nie zamierzam nikogo ścinać. Zarządzanie zespołem ludzi w firmie można porównać do zarządzania armią. O ile w scrumie zespół sam się organizuje, a scrum master pełni rolę bardziej nadzorczą i wsparcia, o tyle w innych metodologiach silny lider jest konieczny. W dużych zespołach ważne jest także posłuszeństwo i dokładna wiedza na temat tego co jest czyim zadaniem oraz kto jest za co odpowiedzialny.
Na rynku w branży IT (i nie tylko) trwa nieustanna walka (jeśli nawet nie wojna), w której wszyscy walczą o klienta nie zawsze czysto. Także w tej dziedzinie możemy znaleźć wiele alegorii pomiędzy sztuką wojny a sztuką handlu/merketingu. Według Sun Tzu podstawą do zwycięstwa jest wywiad, tak też wiedza o tym kto czego potrzebuje na rynku jest kluczem do pozyskania klientów, a wiedza o tym co robi konkurencja daje możliwośc bycia zawsze o krok przed nimi.
W walce o klienta, czy w normalnym życiu przydaje się też umiejętność wprowadzania wrogów w błąd – sztuka podstępu. Czasem dobrze jest sprawić, gdy akurat mamy bardzo silną pozycję by wszyscy myśleli, że jest ona słaba chociażby po to by ją jeszcze bardziej wzmocnić, lub wykorzystać pewność siebie konkurencji. Także odwrotnie czasami trzeba umieć stworzyć pozytywną atmosferę gdy wszystko idzie źle, po to, by nie dać przeciwnikom szans na skuteczny atak.
Choć nie wiem jak byśmy się starali nasze życie pełne jest codziennych walk, sporów, wojen, dlatego polecam “Sztukę Wojny” może nie jako poradnik codziennego oszukiwania siebie i innych, ale jako dobrą wskazówkę, że tak też można i co gorsza inni to robią.
Na początku napisałem, że książka nie jest związana z informatyką – chyba jednak się myliłem – czyżby pracocholizm??
Na zakończenie 5 zasad na drodze do wygrania wojny:
- jedność moralna ludzi z władcą
- zdolności wodza
- umiejętne wykorzystanie czasu
- umiejętne wykorzystanie przestrzeni
- dobrze wyszkolone i moralnie zwarte wojsko
Google Wave – Czyli o tym dokąd zmierza Internet
opublikowany przez streser 13, cze, 2009, w kategoriach Technologie, Z zycia
Jakiś czas temu Andy na swoim blogu opisał Google Wave skupiając się na tym jakie to coś może mieć zastosowanie i dlaczego ludzie będą, lub też nie będą korzystać z nowej zabawki od Wujka Google… Postanowiłem spojrzeć na to narzędzie z trochę innej strony. Moim skromnym zdaniem wizjonerzy z Google kolejny raz oddają w ręce szarych ludzików “rewolucyjne” narzędzie. O jakiej rewolucji mowa? Otóż Google Wave jest stanowczym krokiem w kierunki WEB 3.0 – Internetu w maksymalnym stopniu tworzonego przez użytkoników. Google Wave jako otwarte oprogramowanie (jeśli dobrze wszystko zrozumiałem i nic się nie zmieniło) jest niesamowitą podstawą/bazą do tworzenia wielu ciekawych systemów czasu rzeczywistego, których użytkownicy na całym świecie wymieniają się informacją, poglądami, danymi etc. w bardzo przystępny, szybki i łatwy sposób. Pomysł Wave to w zasadzie nie jest nic czego by do tej pory nie można było znaleźć w Sieci – wiki, maile, wymiana plików, korelacja z blogami czy innymi źródłami, portale społecznościowe etc. niemniej jednak Google zebrało największe sukcesy Internetu i udostępniło je użytkownikom w jednej aplikacji, obsługiwanej z poziomu przeglądarki internetowej, dodając możliwość natychmiastowej reakcji na zmiany – reakcji, która w czasie rzeczywistym będzie przez wszystkich zainteresowanych widoczna.
Google dając innym programistom tak potężne narzędzie ciągnie za sobą (już niepierwszy raz) społeczność współtwórców obecnego Internetu w stronę wspomnianego już WEB 3.0.
W dzisiejszej Sieci niesamowicie ważna jest już nie tyle informacja, co opinia na jej temat. Portale zabijają się” o komentarze pod swoimi newsami, opinie konsumentów na temat sprzedawanych/reklamowanych produktów etc. Google dało współczesnym wizjonerom niesamowite pole do popisu w tej i wielu innych dziedzinach. Teraz wystarczy pomysł i trochę środków by stworzyć coś nowego, bo w zasadzie rozwiązania same aż się proszą by z nich skorzystać…
Oczywiście należy zaznaczyć, że Google nie robi tego bezinteresownie, z jednej strony uzależniając użytkowników od swoich narzędzi i coraz bardziej przyzwyczajając ich do marki, a z drugiej pewnie już kombinują w jaki sposób wykorzystać niesamowite ilości informacji przepływające falami przez ich nowe zabawki. Jest to idealny przykład na to jak można zarabiać na darmowym oprogramowaniu, ale o tym może innym razem.
Wszystkich zainteresowanych Google Wave odsyłam do obejrzenia prezentacji jego twórców.
Siła usability – przycisk wart 300 milionów $
opublikowany przez streser 30, maj, 2009, w kategoriach Usability, Z zycia
Czasami klienci pytają ile warte są badania usability? Oto odpowiedź – 300.000.000$ tylko na jednej stronie.
Historia jest zadziwiająca. Pewien sklep internetowy w USA chcąc zwiększyć swoje dochody zatrudnił specjalistów od usability. Specjaliści przeprowadzili proste badania, mianowicie obserwowali zachowanie użytkowników odwiedzających witrynę sklepu. Pierwszy wskaźnik na który zwrócono uwagę to ilość odrzuceń – ilość osób opuszczających stronę nie dokonawszy zakupu. Wskaźnik ten był duży, ale samo to nie oznaczało jeszcze nic konkretnego – mogło być spowodowane np. nieciekawą ofertą sklepu, lub wygórowanymi cenami etc. Badacze skupili się jednak na miejscu w którym klienci najczęściej rezygnują z zakupów. Jak się okazało bardzo duży ich odsetek rezygnował (opuszczał stronę) nie w trakcie przeglądania artykułów lecz już po dodaniu ich do koszyka. Co było tego przyczyną – dwa pola formularza i przycisk. Pola te to adres e-mail i hasło, a przycisk opatrzony był mistycznym napisem “Zaloguj”. Był to strzał w dziesiątkę. Pierwsi projektanci serwisu zapomnieli o jednej z podstawowych zasad użyteczności aplikacji – aplikacja ma służyć określonym celom, tak więc sklep internetowy nie jest portalem społecznościowym do którego trzeba się zapisać podając różne dane, sklep przede wszystkim służy do robienia zakupów, więc to ta czynność powinna być maksymalnie uproszczona. Opracowano więc najprostszy z możliwych algorytmów dokonywania zakupów: Wybór towaru -> dodanie do koszyka -> zapłata -> podanie adresu do wysyłki. Żadnego zbędnego logowania i rejestracji. W celach marketingowych (a także, by ułatwić zakupy stałym klientom) nie zrezygnowano całkowicie z rejestracji użytkowników, ale stała się ona opcjonalna. Jedna mała zmiana napisu na przycisku z “Zaloguj” na “Dalej” wystarczyła by ilość pozytywnie zakończonych zakupów zwiększyła się się o 45% co w efekcie w pierwszym miesiącu zwiększyło zyski sklepu o 15.000.000$. W pierwszym roku po zmianie zyski były większe w stosunku do roku poprzedniego w sumie o 300.000.000$ . Ile warte są badania usability? W tym wypadku 45% więcej zysków.
O powyższym przypadku było głośno ze względu na kwotę, którą udało się zarobić dzięki postawieniu na użyteczność aplikacji. Ale to nie wszystko – czytałem/słyszałem o wielu przypadkach gdzie za pomocą drobnych zmian w usability zwiększono zyski portali nawet kilkunastokrotnie.
Tak więc jeśli ktoś Was spyta ile warte jest usability śmiało możecie mówić że 300.000.000 dolarów.
46 Sesja kół naukowych AGH – Usability w praktyce
opublikowany przez streser 30, maj, 2009, w kategoriach Usability, Z zycia
21 maja odbyła się pierwsza tura Sesji kół naukowych pionu hutniczego AGH w której brałem udział wygłaszając (bardzo krótki) referat o tym jak usability powinno wyglądać w praktyce. Chciałbym podziękować wszystkim słuchaczom za uwagę oraz Komisji, która moją prelekcję nagrodziła wyróżnieniem.
Niestety podczas regulaminowych piętnastu minut ciężko było powiedzieć cokolwiek szczegółowego o użyteczności oprogramowania, więc prelekcja miała charakter bardzo szybkiego mówienia o ogółach i krótkiego przedstawienia przykładów, przytoczenia pewnych anegdot.
Wszystkich zainteresowanych tematyką użytecznosci aplikacji zapraszm na najbliższe spotkanie Witajcie w Realu z Markiem Kasperskim (UI Design), które odbędzie się w środę 3 czerwca w Rotundzie.
Paranoja?
opublikowany przez streser 17, kwi, 2009, w kategoriach Z zycia
W Internecie nie da się być niewidzialnym, każdy nasz ruch jest śledzony i zapisywany, nie ma skutecznej ochrony przed Wielkim Bratem z Google czy Wujkiem Billem. Ci którzy łudzą się, że ich tożsamość jest bezpieczna są w wielkim błędzie. Nasza-Klasa, Facebook, GoldenLine, Infopraca i wiele, wiele innych potencjalny źródeł informacji może bardzo skutecznie przyczynić się do stworzenia naszego profilu osobowego. Kiedyś słyszałem że NK jest doskonałym źródłem informacji dla headhunterów, szczerze to w sumie dlatego zaczęło mi zależeć na wyglądzie mojego profilu (przez długi czas nie posiadałem profili w tego typu portalach, ale rzeczywistość i chęć bycia w pewien sposób rozpoznawanym w Sieci sprawiła, że zmieniłem zdanie – NK to może nie najlepszy sposób aby zaistnieć, ale co tam, niech się headhunterzy cieszą). Później dowiedziałem się, że nawet w mojej poprzedniej firmie przed moim zatrudnieniem zostałem sprawdzony między innymi na NK.
Wracając do tematu, skoro nie można się ukryć w sieci to po co z tym bezskutecznie walczyć? Oczywiście ważne, a nawet bardzo ważne jest chronienie swoich poufnych danych i dbanie o bezpieczeństwo w Sieci, np. poprzez używanie różnych, silnych haseł do różnych kont i serwisów. Trzymanie tych haseł najlepiej w formie zaszyfrowanej, chronionych innymi hasłami. Jakiś czas temu byłem na konferencji (Studencki Festiwal Informatyczny 2009), której jednym z tematów było bezpieczeństwo aplikacji internetowych i nie tylko, wypowiadał się tam między innymi Mariusz Stawowski z firmy CLICO, zajmującej się między innymi testami bezpieczeństwa i certyfikowaniem tegoż bezpieczeństwa, przyznał się on do tego, że nie posiada konta bankowego dostępnego przez Internet. Powód był oczywisty – “Skoro sam wiem jak złamać zabezpieczenia niemal wszystkich banków w Internecie to czemu mam pozwalać na to by ktoś, kto ma podobną wiedzę miał dostęp do moich oszczędności”. Jednak moim zdaniem to lekka przesada. Nie tylko moim – na tej samej konferencji wypowiadał się także Piotrek Konieczny autor blog.konieczny.be który pomimo tego, że wie jak dobrać się do bankomatów, kont i nie tylko, posiada konto bankowe, telefon komórkowy. Jak widać da się żyć bez paranoi posiadając taką wiedzę.
Nie jestem specjalistą w dziedzinie bezpieczeństwa (może kiedyś), ale kilka poważnych luk udało mi się już kiedyś znaleźć w testowanych aplikacjach. Internet nie jest bezpieczny ale nie uciekajmy w paranoję próbując bronić się uparcie przed wszystkimi zagrożeniami płynącymi z korzystania z tego dobrodziejstwa.
Próby ukrycia swojej tożsamości w Internecie też są bezskuteczne, spójrzmy na Google które za pomocą AdSense czy AdWords czyta nasze maile i wyświetla stosowne zależne od ich treści reklamy. Nie popadając w paranoję nie szyfrujmy od razu całej naszej korespondencji, wystarczy, że opatrzone kluczem będą maile z naprawdę tajnymi danymi. Używając internetu musimy pogodzić się z tym, że nie jesteśmy w nim niewidzialni i niemalże każdy nasz ruch w sieci można łatwo odtworzyć. Posiadanie właśnie takich informacji o użytkownikach uczyniło z Google taką potęgę, jaką jest teraz. Informacja jest w cenie i jest to jak najbardziej naturalne, więc co w tym dziwnego, że ktoś sprzedaje informacje także o nas. Nie ma się czym przejmować, gdyby ktoś na prawdę chciał śledzić ruch wszystkich użytkowników Internetu musiałby zainwestować w to potężne środki, co byłoby nieopłacalne.
Niestety dążymy do globalizacji, podszytej pełną kontrolą nad narodem. Tylko nic z tym nie możemy zrobić. Systemy kamer, karty płatnicze, systemy rozpoznawania twarzy czy głosu to wszystko składniki Systemu, który z założenia ma dbać o nasze bezpieczeństwo. Niestety czasem bywa wykorzystywany także w inny sposób. Cóż dynamit też został wynaleziony w dobrej wierze.
O trochę bardziej paranoidalnym podejsciu do świata polecam lekturę orwell.blog.pl.
Profesjonalizm
opublikowany przez streser 10, kwi, 2009, w kategoriach Praca, Z zycia
Bardzo często słyszę słowa: “bądźmy profesjonalistami”, “coś zostało wykonane profesjonalnie”, “to nie przystoi profesjonaliście”, etc. Zastanawia mnie czym jest profesjonalizm w IT? Jak mierzy się profesjonalizm?
W tym, jak i w innych przypadkach punkt widzenia zależy od punktu siedzenia. Dla mnie jako Specjalisty SQA/Testera profesjonalnie wykonana aplikacja to taka, która jest łatwa w obsłudze, czytelna, szybka, nie zawiera błędów a także w najlepszy możliwy sposób łączy te wszystkie cechy ze swoją funkcjonalnością. Posiada wszystkie planowane funkcjonalności ale także odpowiednio eksponuje swoje możliwości.
Programista profesjonalne wykonanie aplikacji określi na podstawie czytelności i jakości kodu. Ogólnie przyjęło się, że aplikację można ocenić jako dobrze napisaną gdy po przejrzeniu kodu programista może powiedzieć, że z chęcią by się pod tym kodem podpisał (tego typu testy są czasem wykorzystywane do pomiaru jakości pracy programistów, ale o tym innym razem). Innym ciekawym miernikiem jakości kodu jest zminimalizowanie jego ilości.
Ale czy połączenie punktu widzenia programisty i testera wystarczy by klient uznał aplikację za profesjonalnie wykonaną? Co gorsza czy to wystarczy by klient uznał twórców tej aplikacji za profesjonalistów? To oczywiście zależy od klienta, ale jego ocena profesjonalizmu przeważnie opiera się na szybkości wykonania i ogólnym działaniu aplikacji. Czasami ocenia aplikację na podstawie kilku naprawdę mało znaczących ficzerów, które postanowił wprowadzić do swojej aplikacji, pomimo tego, że czasami piękne pomysły marketingowców rujnują usability projekt.
Jako profesjonaliści staramy się dostarczać klientowi jak najbardziej profesjonalne (w naszym pojęciu) rozwiązania. Tylko co zrobić, gdy klient nie chce naszych rozwiązań i proponuje swoje, o których my wiemy, że się nie sprawdzą. Czy powinniśmy się trzymać starego powiedzenia “Klient ma zawsze rację” ? Wydaje mi się, że najlepszym i w zasadzie jedynym sensownym rozwiązaniem jest poszukiwanie złotego środka. Dobrym sposobem jest stosowanie się do innego powiedzenia “Nasz klienta – nasz pan”, gdzie my jako doradcy naszego chlebodawcy oferujemy mu nasze rozwiązania i mówimy dlaczego są lepsze od jego pomysłów, ale decyzja zależy od niego. Jeśli nawet wiemy że coś skończy się porażką to musimy zacisnąć pięści i dalej robić to co nam karzą (wiem, że ciężko się programuje z zaciśniętymi pięściami). Jednym słowem jeśli klient – nasz pan chce się powiesić to musimy dać mu sznur ale możliwie najcieńszy i powinniśmy przy tym mu to odradzać, tylko problem w tym, że czasami ktoś może nas później posądzić o nakłanianie do samobójstwa, czy coś takiego.
“Back to basic” – czasem trzeba wrócić do podstaw zarządzania i zrobić prosty rachunek potencjalnych zysków i strat. Trzeba też się liczyć z morale zespołu, który wiedząc, że projekt, przez beznadziejne zarządzanie dąży do upadku, nieświadomie mogą go pogrążyć.
Moim zdaniem właśnie umiejętność radzenie sobie w zdawało by się beznadziejnych sytuacjach świadczy o profesjonaliźmie, a jeśli przy okazji z tej beznadziejności uda sie wybrnąć i doprowadzić aplikację do użyteczności to jest to już naprawdę świadectwo wysokich umiejętności i profesjonalizmu. Ogólnie nie boję się wyzwań, ba stawiam im z chęcią czoła i podejmuje się zadań z pozoru niewykonalnych, nawet jeśli wiem, że mogę nie dać rady to zawsze jest jakaś szansa. Największą możliwą porażką w wyścigu nie jest zajęcie ostatniego miejsca, lecz niewystartowanie w nim.
“Inteligentne” formularze
opublikowany przez streser 31, mar, 2009, w kategoriach Usability, Z zycia
Formularze html – główny sposób komunikacji pomiędzy użytkownikiem a serwisem internetowym, ba w dobie WEB 2.0 jedena z głównych dróg ingerencji użytkownika w wygląd i treść serwisu. Tylko dlaczego korzystanie z formularzy musi zajmować tyle czasu? Głównym problemem jest walidacja danych – nie możemy pozwalać użytkownikom na wpisywania w pola formularza bzdur – np nr telefonu powinien zawierać 9 cyfr (wraz z numerem kierunkowym), data urodzenia powinna zawierać dzień, miesiąc i rok, ale nikt nie każe nam narzucać użytkownikowi naszego formatu. Dlaczego na przykład nie mogę sobie wpisać daty urodzenia w spoób taki 8.10.2008, lub taki 2009.03.08, albo jeszcze inaczej 2007-10-12? Otuż dlatego, że komuś nie chciało się zaimplementować kilku rodzajów parsowania tych formatów. Oczywiście nie należy przesadzać z udostępnianiem użytkownikom zbyt wielu możliwości ale dopuszczenie kilku logicznych formatów jedynie ułatwi korzystanie z formularza. Problemem możeby być jedynie określenie kolejności, którą wypadałoby podać. Tak tu pojawia się drugi problem – format danych jeśli w ogóle ukazuje się moim oczom robi to przeważnie po ich błędnym wprowadzeniu. Kolejnym problemem który przeważnie powoduje moje całkowite zniechęcenie do danego serwisu jest czyszczenie pól formularzy gdy podaje błędne dane. Nie ma nic gorszego niż wypełnienie 10 pól w formularzu, kliknięcie “OK” i zobaczenie tych samych pustych pól z komunikatem że coś tam było błędne. Podobnie wypełnienie jednego pola ale wymagającego podania dużej ilości danych, np. wpisanie całego adresu. Człowiek istota myśląca, więc popełnia błędy, a im wcześniej mu je pokażemy tym więcej jego czasu zaoszczędzimy. Kolejne cenne sekundy marnuje na odszukanie pól w których popełniłem błąd.
Podsumujmy “Inteligentny” formularz to taki, który nie wymaga ode mnie myślenie (główna zasada usability), dopuszcza różne formaty danych, za wczasu informuje mnie o poprawnym formacie danych, informacje o błędach walidacji wyświetla w czasie rzeczywistym (walidacja po stronie klienta np. JS), zachowuje wprowadzone już dane – nawet te niepoprawne, ustawia focus w miejscu w który napotkał pierwszy błąd (dobrym rozwiązaniem na które ostatnio wpadłem jest ustawianie tabindex po błednej walidacji tylko na polach które zawierają błędy), tam gdzie to możliwe i nie ma zbyt dużego wyboru podsuwa mi listę a nie każe wpisywać oczywistych danych, fajnym podejściem jest sugerowanie domyślnych danych zwłaszcza w przypadku list (np. podczas rejestracji użytkownika w krajowym serwisie, kóra wymaga ode mnie wybrania kraju pochodzenia domyślnie powinna być ustawiona Polska a nie pozycja “wybierz kraj” czy “—-”), ale także dla zwykłych pól formularza.
I co ciężko było? Jak widać dla chcącego nic trudnego, także koleżanki i koledzy projektanci, specjaliści od QA, a także programiści, menagerowie i cała reszta spróbujcie w prosty sposób uczynić życie prostego użytkownika Waszych stron łatwiejszym.
Słowo wstępu – czyli po co ten blog?
opublikowany przez streser 15, mar, 2009, w kategoriach Testowanie, Usability, Z zycia
Jakość oprogramowania – pojęcie wszystkim znane, ale czy na pewno? Gdy patrzę na opublikowane w Sieci Strony/Serwisy WWW odnoszę wrażenie, że niewielu ich twórców zdaje sobie sprawę z tego, że to co tworzą oczywiście wnosi jakąś ściśle określoną funkcjonalność ale niestety dostęp do tej funkcjonalności jest bardzo ograniczony z wielu powodów.
Blog ten powstał po to by pokazać pewne “proste” rozwiązania, dzięki którym codzienne życie zwykłego, szarego użytkownika Internetu może stać się dużo łatwiejsze.
Jako inżynier jakości oprogramowania i inżynier testów moim obowiązkiem jest między innymi dbanie o to, by korzystanie z produktów naszej firmy było łatwe i przyjemne.
Obserwując zachowania “zwykłych” internautów dostrzegłem, że znaczna większość tych, którzy na co dzień używają internetu do bardzo wielu, zdawałoby się czasem prozaicznych rzeczy, jak np. sprawdzanie poczty, czytanie artykułów, przeglądanie Naszej-Klasy, czytanie tego bloga etc. tak na prawdę nie zdaje sobie sprawy z istnienia znacznej części funkcjonalności jakie witryny, które przeglądają każdego dnia im oferują. Spowodowane jest to między innymi tym, że projektanci witryn nie poświęcili wystarczającej uwagi na to by poinformować w odpowiedni, wystarczająco czytelny sposób użytkownika o istnieniu takiej czy innej funkcjonalności. Wynika to często z tego, że programiści, projektanci – ogólnie ludzie biorący udział w produkowaniu wszelkiego rodzaju oprogramowania, stron WWW etc. zapominają dla kogo dana aplikacja jest stworzona. Oczywistym jest, że ludzie z tzw. branży IT w środowisku komputera, Internetu poruszają się ze znacznie większą swobodą niż zwykły zjadacz chleba. Znając Sieć na wylot, korzystając z niej po kilka/kilkanaście godzin dziennie wszystko wydaje się na pozór bardzo proste – wynika to z tego, że po pewnym czasie wyrabiamy w sobie pewne nawyki szukania niektórych rzeczy w odpowiednich miejscach. Niestety zwykli śmiertelnicy spędzający góra 2-3 godziny na poszukiwaniu i przetwarzaniu informacji w Internecie (najczęściej to właśnie tacy ludzie są najbardziej pożądanymi odbiorcami naszych produktów) nie posiadają wrodzonych ani nabytych nawyków nawigacji w sieci. Normalny świat ma 3 wymiary przestrzenne w Internecie nawigacja nie musi ograniczać się tylko do tych trzech wymiarów, poza tym “przestrzeń” Internetu czy oprogramowania komputera można rozpatrywać na bardzo wielu poziomach abstrakcji.
Pisząc tutaj chce zwrócić uwagę osób zajmujących się jak by nie było kreacją Internetu na to, że nie jest On tylko ich własnością, i pożądane jest by jego możliwości były dostępne i widoczne dla wszystkich jego użytkowników.
Kolejnym powodem, dla którego tutaj pisze jest czas – niezwykle dużo czasu, który niepotrzebnie marnujemy korzystając z dostępnych w Sieci narzędzi, do wykonania różnych niezbędnych czynności.
Od czasów realnego rozwoju WEB 2.0 Internet stał się niezwykłym medium i narzędzie, które umożliwia komunikacje między ludźmi na duże odległości, co niesie ze sobą kolejne możliwości wykonywania z użyciem Sieci bardzo szybko rzeczy, które do tej pory zajmowały wiele czasu i nerwów – miedzy innymi zakupy, poczta, operacje bankowe, informacje, wszelkiego rodzaju multimedia etc. Niestety muszę z przykrością stwierdzić, że wiele z tych czynności pomimo tego, że przez Internet nadal zajmuje więcej czasu niż mogło by zajmować, zwłaszcza wspomnianym wcześniej “zwykłym” użytkownikom. Nie wynika to wyłącznie z niedostatecznej wiedzy użytkowników na temat Internetu. Nie uważam siebie za eksperta w dziedzinie serfowania po Sieci, wyszukiwania w Niej informacji, czy przeprowadzania z Jej użyciem różnych operacji, ale często zdarza mi się poświęcić zbyt wiele czasu na zrobienie czegoś tylko dlatego, że interfejs użytkownika danej strony nie jest na tyle czytelny i oczywisty, że nawet ja, który spędzam dużo czasu korzystając z Internetu muszę kilkukrotnie wklepywać dane do formularzy, klikać magiczny przycisk wstecz w przeglądarce (co często skutkuje błędami na stronie), czy marnować czas na zastanawianie się nad znaczeniem komunikatu, który mam przed oczami by zrozumieć co autor miał na myśli i co robię nie tak, oraz w jaki sposób to poprawić by wreszcie osiągnąć zamierzony cel.
To wszystko można podsumować jednym słowem USABILITY, oczwiście tylko podsumować, bo znaczenie tego słowa ma dużo szerszy zakres i to właśnie między innymi moje przemyślenie w tym temacie zamierzam zamieszczać w następnych postach. Będzie też pewnie wiele na temat Testowani Oprogramowania i Inżynierii Oprogramowania, którymi z pasja także się zajmuję na codzień.
