środa, 30 listopada 2011

Software requirements

Jakoś tak mam że jak ktoś mi napisze wymagania nowej funkcjonalności to staram się przy okazji zaimplementować wszystkie dodatkowe bajery które mogłyby być potrzebne/mogłbyby być ułatwieniem. Stawiam się w pozycji użytkownika. Czasem zmieniam inne rzeczy które razem z tą nową stały się niewygodne w użyciu/nielogiczne.

Do tego staram się dołączyć obsługę błędów tak, żeby w razie czego użytkownik zobaczył taki komunikat, że po pierwsze będzie wiedział co się dzieje, po drugie będzie miał co skopiować i ewentualnie wysłać.

Jeszcze, zwykle staram się przy implentowaniu nowej rzeczy przemyśleć architekturę całego programu, czy ma ona nadal sens w obliczu tych wymagań, i ewentualnie przebudować część.. jeśli trzeba to nawet wszystko przebudować. Zwykle na tym etapie się gubię i przez kilka dni kompletnie nie wiem już co gdzie jest, i mam ochotę po prostu zrobić "revert". Ale potem przychodzi poprawa i jak już skończę przebudowywać to często sobie zdaję sprawę że "można było prościej" i w parę godzin, z łatwością już, robię kolejną przebudowę, i jestem z siebie bardzo dumna..

..w wyniku tego implementowanie rzeczy którą możnaby zrobić na odwal w 5 minut zajmuje mi tydzień.

I tak tylko się zastanawiam, czy to jest dobre podejście czy nie. Wiem, że widziałam projekty które były robione z odwrotnym podejściem. I one były porażką.

Jeszcze taka myśl ostatnio, był kiedyś taki obrazek "jak opisał wymagania klient", "jak zrozumiał je analityk", "jak zaprogramował programista" i "czego naprawdę klient potrzebował". Otóż mimo że śmieszny jest ten rysunek to nie jest do końca trafny. Bo często to czego klient potrzebuje jest nierealne. Nielogiczne. Niemożliwe do spełnienia, przynajmniej w sposób w jaki on sobie to wyobraża. Sam nie widzi że jego wymagania są sprzeczne, bo sam do końca nie przemyślał czego chce, czego potrzebuje. Dlatego często jest ten problem ze zmienianiem wymagań. Fakt jest taki, że samo sprecyzowanie czego się chce, nawet niekoniecznie werbalizowanie tego, ale samo uświadomienie sobie tego, wymaga pracy. Czasu. Wysiłku. Ze strony klienta. A przecież to nie on ma pracować, on ma tylko płacić.

Fajnie by było pracować właśnie na tym froncie, między jednymi a drugimi. Nie wiem jak się tylko nazywa taka pozycja, może konsultant :) może analityk... W ogóle świetne jest dla mnie obserwowanie tych starć, między osobami co mniej wiedzą a więcej sobie wyobrażają, a tymi co więcej wiedzą ale są w stanie sobie mniej wyobrazić. Zabawne. Jak jedni nie rozumieją drugich, z jednej strony się denerwują, z drugiej zdają sobie sprawę że nie mają wyjścia i jakoś muszą się dogadać. User-centered design mi się przypomina. W każdym razie czasem jest naprawdę wesoło.

niedziela, 27 listopada 2011

Sauna na podczerwień

Co jest fajnego w saunie, dzisiaj sobie uświadomiłam, że..

Bo są sauny na podczerwień.. czy jak to się nazywa, no te mikrofalówki co podgrzewają ciało.. jak dla mnie wynalazek do kitu, bo, pomijając to że jest to mikrofalówka, to wydaje mi się że to 'ciepło' nie jest przyjemne. Nie wiem dokładnie, bo nie próbowałam siedzieć w takiej saunie, tylko weszłam i wyszłam, ale jakoś nie miałam ochoty tam zostawać..

I tak myślę, taka podczerwień podgrzewa tylko ciało, nie otoczenie. Niby ekonomicznie, co.. ale wlasnie jakos ten fakt tego że otoczenie jest ciepłe i ogrzewa nasze ciało jest przyjemny, a nie sam fakt tego że ciało jest rozgrzane..

I przypomniało mi się, z oglądanej na praktykach w zasadzie lekcji fizyki, że człowiek nie jest zdolny odczuwać temperatury. Jest zdolny odczuwać jedynie zmiany temperatury, i to nie całym ciałem, ale tylko poprzez receptory na skórze.

I pomyślałam że na tym się opiera przyjemność płynąca z używania sauny (normalnej sauny). Wpierw ciepło przechodzi z zewnątrz stopniowo do wewnątrz, prawie do momentu przegrzania organizmu. Wtedy wychodzi się na zimno, i odczuwa tą ulgę z ochładzania organizmu, analogicznie.. potem jest tak zimno że aż za zimno, wchodzi się do sauny i znowu czuje się przyjemność z ogrzewania ciała. Ale te wszystkie bodźce są odbierane za pomocą receptorów na skórze. Jeśli całe ciało ogrzewane jest równomiernie to mniej jest przyjemności z ciepła odczuwanego przez skórę, a więcej męki z przegrzania organizmu w środku.

Specyfika rozmów na czacie

Też to macie, rozmawiacie z kimś na czacie, i oboje odpisujecie tak szybko że piszecie nową rzecz gdy ktoś odpowiada na starą, wtedy odpowiadacie na przedostatnią wiadomość, i ten ktoś odpowiada na tą poprzednią, i tworzą się dwa wątki, dwie rozmowy, przeplatana jedna z drugą :)

Motyw odwrotny. Pisze coś do kogoś, nie odpisuje długo, to robię co innego w międzyczasie.. i ten ktoś odpisze, ale ja robię co innego więc narazie nie odpisuję. Więc ten ktoś też zaczyna robić co innego czekając aż ja odpiszę.. wtedy jak ja odpiszę to znowu nie ma odpowiedzi bo ten ktoś się już zajął czym innym..

Czyli: umiejętne posługiwanie się czatem wcale nie jest takie proste i oczywiste ;) Rozmowa pisana różni się od tej normalnej. Niezły temat do badań z dziedziny psychologii/socjologii/lingwistyki..

...no i czasem bywa tak, że przerwy robią się tak długie że wstaję od komputera i naprawdę zajmuję się czym innym ;) potem sobie przypominam po dwóch godzinach.. i widzę tylko serię wiadomości pt. "hej, jesteś tam?"

środa, 23 listopada 2011

Windows Mobile

Prezentacja Nokii&Microsoftu. No genialne.

Żeby deployować napisaną przez siebie aplikację na telefonie trzeba być zarejestrowanym developerem Windows Mobile, i program deployjujący po podaniu użytkownika i hasła odblokuje telefon, co dopiero umożliwia zainstalowanie aplikacji. Można tak zrobić na maksymalnie trzech różnych telefonach. To dla bezpieczeństwa. Jeśli ktoś jest np. testerem na uniwersytecie może się upominać o przyznanie większego limitu, w takim przypadku "proszę nam wysłać maila". Oczywiście firmy muszą za takie konta developerskie płacić.

Aplikacja działająca na telefonie może jednorazowo pobrać maksymalnie 10MB danych. Na wszelki wypadek, gdyby użytkownik miał jakąś wymagającą aplikację w tle, żeby mu nie zjadało baterii. Bardzo miło z ich strony. A co jak użytkownik chce coś ściągnąć z internetu? W końcu to ma być telefon do interakcji z internetem.

Ale aplikacje są wielowątkowe i mogą działać w tle! Aplikacja działająca w tle działa z maksymalną częstotliwością uruchomienia co 30 minut przez maksymalnie 15 sekund. Przy czym zablokowane są wszelkie urządzenia wejścia-wyjścia. Też dla bezpieczeństwa, a "przecież jak nie dostanę nowych wiadomości ze świata przez 30 minut to świat się nie zawali", no świetne wytłumaczenie, a co z aplikacjami korzystającymi z namierzania GPS w tle?

Te ograniczenia powinny być określone w każdej aplikacji oddzielnie, a nie telefonie! Microsoft jak zwykle robi z użytkowników głupków, i widzę że robi głupków nawet z programistów.

To tylko takie losowe spostrzeżenia.

Hehe, no i końcowe słowa: Microsoft zawsze patrzył z punktu widzenia programisty i próbuje teraz się dostosować do użytkownika. Joł.

Mam wrażenie że tam pracuje grupa przypadkowych ludzi która z reguły więcej gada i robi niż myśli. Totalny brak logiki, i widać to z każdej strony. Wymyślają sobie co użytkownik może chcieć w danej chwili zrobić i dodają tą funkcjonalność, z tym że nie myślą o tym że nie każdy użytkownik będzie korzystał z telefonu w sposób taki jaki oni sobie akurat założyli. Taki zlepek "udogodnień", które mogą równie dobrze być utrudnieniami dla innych.

Jednak Google rządzi. Dobry design to nie wtedy jak mamy miliard dostępnych funkcji w których nie możemy się połapać, ale to też nie taki gdzie wszystko jest tam gdzie byśmy się spodziewali że będzie (poza tym nie da się dogodzić wszystkim). To taki którego używając nagle zdajemy sobie z zaskoczeniem sprawę że w zasadzie zadanie które chcieliśmy wykonać jest o wiele prostsze i przejrzyste niż z początku myśleliśmy.. taki interfejs przedstawia prosty koncept wykonywanej czynności, nawet w pewnym sensie uczy użytkownika jak ma ogarnąć zadanie które ma wykonać. I zaprojektowanie takiego interfejsu wymaga osobnego wysiłku, chwili refleksji, no i trochę geniuszu. Ta praca w to włożona może nie jest widoczna, ale naprawdę jest odczuwalna.

To tak jak dzisiejszymi ekranami dotykowymi. "Ekran dotykowy jest łatwy w użyciu, bo naturalnie używamy dotyku w codziennym życiu, i klawiatura jest w pewnym sensie sztuczna." Tak, dlatego wszystkie nowe telefony mają te ekrany dotykowe zamiast klawiatury. Szczegół że napisanie smsa nagle trwa trzy razy dłużej. Co z tego że ekran jest dotykowy jeśli nie działa tak powinien? W zasadzie jest on bardziej sztuczny od klawiatury, bo na klawiaturze chociaż czujemy te guziki, a w takim ekranie nie wiadomo co się w zasadzie dzieje.

Albo błyszczące ekrany brr.. tyle nielogiki jest w tej nowoczesnej technologii.

czwartek, 17 listopada 2011

"hwat"

Niektórzy ludzie zamiast "what" mówią "hwat", jak mnie to denerwuje. Ciekawe skąd to się bierze, czy mi się tylko wydaje, czy naprawdę tak mówią, a jeśli tak mówią to czy dlatego że tak słyszą, czy to jest ich metoda na powiedzenie "ł", bo w zasadzie w wielu językach nie ma tej zgłoski. Ale denerwuje to niemiłosiernie.

sobota, 12 listopada 2011

Niektórzy ludzie nałogowo oceniają. Wszystko naokoło.

Mam taki przypadek obok i go studiuję, i raz za razem łapię się na dwóch myślach, po pierwsze że szkoda mi tej osoby, a po drugie że momentami zaczyna mi się to spojrzenie na świat udzielać. Co jest przerażające.

Uderza mnie to jak wiele ta osoba traci z życia. Nie zauważa pozytywnych stron niewygodnych sytuacji, nie wyciąga wniosków, nie uczy się. Jeśli coś nie zgadza się z jej przekonaniami, nawykami, oczekiwaniami to dlatego że jest głupie, niewystarczająco dobre, i w konsekwencji niewarte uwagi. Jak tylko oczywiście skończy z krytykowaniem i wyrażaniem swojego rozczarowania i politowania.

Wszystko musi mieć przyklejoną etykietkę, swoją wycenę wartości. Nawet ona sama. Sama siebie ocenia, i wydaje jej się że inni robią to samo. Więc jest i ten drugi aspekt. Ciągła potrzeba udowadniania że się jest kimś lepszym. Bo się zauważa 'więcej'. Więcej wad rzeczy naokoło, jakby narzekanie na niedoskonałość świata była oznaką mądrości, bycia kimś wartościowym. Ah nie, przecież w rzeczywistości jest wręcz przeciwnie.

I martwi mnie fakt że te etykietki są przyklejane nie tylko sytuacjom, zdarzeniom, głupiemu filmowi w kinie. Że są przyklejane i ludziom. Często nawet ludziom których jeszcze nie poznała, na podstawie tylko tego skąd pochodzą. Takiej osoby nawet nie posłucha co ma jej do powiedzenia, choćby to była największa prawda której szuka.

Ciekawe jest jak dwoje takich ludzi się spotka. Wpadają we wzajemny zachwyt, wspierając się we wspólnym krytykowaniu wszystkiego naokoło, utwierdzając się w przekonaniu że to oni wybrani jedynie widzą prawdziwą rzeczywistość, nawzajem zagłuszają u siebie ten niepokój który mówi że mimo wszystko coś ich omija.

I zaskakuje chyba taką osobę kontakt z kimś kto myśli zupełnie inaczej, bez żadnych uprzedzeń, ocen, schematów. Zaczyna szukać gdzie jest 'haczyk', stara się wytłumaczyć na swój sposób zachowanie takiej otwartej osoby, i jest to oceniane jako: głupota, naiwność, albo ogromna dwulicowość.

czwartek, 10 listopada 2011

LaTeX

Być może prawdziwą zaletą pisania w Latexu jest nie tylko oddzielenie formatowania tekstu od jego tresci..

..to też rozdzielenie procesu myślowego na samym etapie pisania. Oddzielenie pisania od czytania. Wpierw piszesz co masz na myśli, a dopiero potem widzisz jak to wygląda, dzięki temu podczas pisania się nie rozpraszasz i nie gubisz wątku. Pisząc myslisz na poziomie strukturalnym, potem kompilujesz, patrzysz na pdf i czytasz już na poziomie werbalnym. Nie mieszasz tych dwóch rzeczy, jesteś bardziej konkretny i efektywny, nie lejesz wody. Serio..

poniedziałek, 7 listopada 2011

A może czasem ze szczęściem, albo w ogóle wartościowością w życiu, to jest jak z wypatrywaniem różowego słonia po trawie.. im uważniej obserwujesz tym mniejsze szanse masz że cię spotka.

..albo jak z kotem Shredingera i prawami Murphiego..