Pierwsze wrażenia z Google Wave

Po pierwsze – programiści czy to z google czy nie nie tracą dobrego humoru:

Nic dziwnego, że do tej aplikacji jest na razie ograniczony dostęp

Nic dziwnego, że do tej aplikacji jest na razie ograniczony dostęp

Po drugie – bardzo fajnie jest odpowiedzieć na konkretną wiadomość wysłaną do Ciebie. Te wiadomości wyglądają jak posty na forum. Różnica jest taka, że tworzą one drzewo. Odpowiedzieć możesz w dowolnym miejscu. Zatem w ramach jednego wave’a można prowadzić kilka równoległych dyskusji.
Dodatkowo te odgałęzienia mogą być dyskusją, którą widzą nie wszyscy członkowie całego wave’a

Przykładowy wave

Przykładowy wave

Oczywiście nie jest to nic co nie byłoby pokazane na prezentacji, o której było tak głośno ;)

Co z rzeczy niezaprezentowanych na filmie?

Przede wszystkim po kilku minutach rozmowy z kimś kto jest online – zaczynasz mieć wrażenie, że pisząc tradycyjnego maila jego odbiorca na bieżąco widzi jak go redagujesz. To niesamowite wrażenie. Tak działa wave – gdy odpisujesz komuś działa to jak czacie.
Kilka chwil takiej rozmowy. Żegnasz się z rozmówcą. Zabierasz się za zwykłego maila, piszesz, piszesz. Kasujesz jakieś zdanie, które raczej powinno być inne i… łapiesz się na tym, że odbiorca już go musiał zobaczyć. A po chwili “nie, czekaj!” przecież to zwykły mail… “uff” ;)

W wave chyba nie można tej funkcji jeszcze włączyć. Przy odpowiedziach jest opcja “draft” ale nie można jej zaznaczyć. Myślę, że przydałaby się możliwość ustawienia tego trybu na stałe ;)

Tak, czy siak – jest to naprawdę nowa forma komunikacji, która może zmienić wiele dotychczasowych sposobów tego jak się porozumiewamy:

- z tradycyjnego e-maila zostało właściwie tylko podejście w którym różne serwery wave’owe mogą się porozumiewać (czyli nie ma być sytuacji jak z IM, że ktoś jest w innej sieci więc z nim nie pogadamy)
- z forów (czy z Gmaila) mamy wątkowanie wiadomości
- z IM mamy rozmowę na żywo, która ma jednak dopalacze: użytkownik nie widzi wiadomości po tym jak klikniemy “wyślij” – widzi ją od razu. No chyba, że rozmawiasz z kimś z Indii* – to nie tak znów od razu :D

* przy tej okazji pozdrowienia dla nowego kolegi Azmatha

Ok, dość tego chwalenia się :P
Teraz mam niespodziankę. Zostały mi do wysłania dwa zaproszenia do google wave. Jeśli nie możesz się doczekać – możesz wziąć udział w mini konkursie: jeśli interesuje Cię ta nowa zabawka od wujka Google’a napisz o tym na swoim blogi i walnij pingback do mnie. Wśród wszystkich pingbacków całkowicie losowo wybiorę dwóch szczęśliwców, którym wyślę zaproszenie.

//Edit: dodam jeszcze, że konkurs będzie trwał do 31 października do północy. Po tym terminie wylosuję dwie strony i spróbuję się skontaktować z ich właścicielami, aby otrzymać adres e-mail na który wysłać zaproszenia :)

Zabawy ze SCRUM

Jakiś czas temu wystartowaliśmy z nowym projektem (jeszcze nie mogę powiedzieć czego dotyczy), w którym mamy więcej wykorzystanych praktyk z kategorii Agile niż inne do tej pory.

Przede wszystkim – iteracje (trzytygodniowe).
Właśnie zakończyliśmy pierwszą. Odbyła się prezentacja iteracji, na której niestety nie było klienta. Był za to szef w roli klienta wewnętrznego- to on bywał na spotkaniach z klientami, więc był najlepszym substytutem na jaki nas było stać.

Ze scrum używamy dziennika zaległości produktowych (product backlog), który ciągle się rozrasta. Na razie sukcesem jest to, że przed końcem pierwszej iteracji w dzienniku mieliśmy wystarczająco elementów, żeby zacząć następną.

Tak wygląda wykres burndown dla zakończonej właśnie iteracji:
iteracja1_burndown_chart

Staramy się stosować stopniowe zbieranie wymagań i stopniowy rozwój architektury z tym, że to drugie przetestowaliśmy już wcześniej w mniejszych pod-projektach. Pomijając fakt, że jest to zwyczajnie przyjemne podejście – gdybyśmy chcieli zebrać wszystkie wymagania, to trwałoby to do końca października. Gdyby jeszcze do tego projektować wszystko “z góry” – następny miesiąc by minął do startu projektu.

Po pierwszej retrospekcji doszliśmy do wniosku, że zbyt mało energii zostało włożone w etap planowania iteracji. Tym razem bardziej się na tym skupiliśmy. Jednak efekty, jeśli będą widoczne, to dopiero podczas kolejnej iteracji.

Udało nam się też wykonać krok w kierunku ciągłej integracji (CI):
- używamy MySchemaShell do migracji struktury bazy danych
- własnego narzędzia dla startowych danych testowych (też programik Shell) + do generowania obiektów ACL
- Selenium dla prostych (na razie) testów interfejsu, dla zabezpieczenia się przed sytuacją, gdy jest dwie godziny do prezentacji iteracji, nie ma odważnego do przeklikania systemu w celu znalezienia wpadek. No i te wpadki znajduje klient. Te testy trochę trwają, ale na pewno mniej niż ręczne “śmiganie po stronie”.

Co do testów jednostkowych – na razie jest plan, aby umieszczać je w krytycznych miejscach. Co w praktyce oznacza testowanie reguł biznesowych umieszczonych w warstwie modelu.

Jeśli pojawi się więcej ciekawostek – na pewno nie omieszkam napisać.