Archiwum kategorii ‘Agile’

Artykuł o programowaniu w parach

niedziela, 15 Styczeń 2012

W piątek miałem okazję przeczytać bardzo ciekawy artykuł o programowaniu w parach.

W skrócie: Opisany zespół, miał największą wydajność i najmniej bugów gdy:

  • Historyjki były dewelopowane przez programistów o najmniejszej wiedzy domenowej (w obszarze danej historyjki)
  • Historyjki były dewelopowane przez pary, które same wybierały nad czym chcą pracować
  • Historyjki nie były przypisane konkretnym osobą, cały zespół był odpowiedzialny za historyjkę
  • Pary rotowały co ~2 godziny. (Osoba która była dłużej w parze opuszcza parę).
W  podobny sposób pracowałem w czasie swojej praktyki w Pinesoft. Po 2 pełnych cyklach Pomodoro rotowaliśmy pary. Praca była bardzo intensywna, ale mega satysfakcjonująca.
Gdy uda mi się przekonać mój obecny zespół, wypróbujemy powyższy system z rotowaniem par po pełnym cyklu pomodoro (około 2h).
A Ty jakie masz doświadczenia z pair programmingiem?

Praktyki stosowane w moim zespole

niedziela, 15 Styczeń 2012

W ramach „Poranku z Nokią i z SEnSem” poprowadziłem na PWr skierowany do studentów  wykład o praktykach stosowanych w moim zespole.

Ponieważ to jakie praktyki najlepiej się sprawdzą zależy od naszego kontekstu, zacząłem od opisania sytuacji mojego zespołu.

Zespół w którym jestem jest

  • mały (~7 osób)
  • wszyscy siedzimy w jednym pokoju
  • mamy wewnętrznego klienta / product ownera. Siedzi z nami na tym samym piętrze i ma dla nas czas
  • tworzymy ważny, ale wewnętrzny system

Dla każdej praktyki powiedziałem:

  • na czym polega
  • dlaczego/po co ją stosujemy
  • „dobre rady”

Oto lista praktyk, które aktualnie stosujemy w moim zespole:

(więcej…)

Powiew świeżości

sobota, 29 Październik 2011

Jak uniknąć stagnacji, rutyny, braku nowości itp. w pracy?

Wczoraj rozmawiając z kolegą zaproponowałem zrobienie prostej aplikacji.

Odpowiedział: „O ciekawe! Myśleliśmy już o tym – super pomysł…. Kiedyś mieliśmy „dni innowacji”, ale potem z czasem jakoś przestaliśmy je robić. Gdzie podziały się te pomysły?

Zapewne jest wiele sposobów na podtrzymanie ekscytującej atmosfery w pracy.

Oczywiście potrzeba ludzi wkręconych i kochających to co robią. Ale Ci ludzie pozostawieni sami sobie z czasem popadną w rutynę, będą znali się na wylot, będą mieli swoje ulubione techniki i style pracy.

Naszemu zespołowi może pomóc: czytanie książek, blogów, Twittera i wyjazdy na konferencje. To zapewni przypływ świeżych pomysłów.

Ale skąd brać siły na ich wdrażanie w terenie, który jest dobrze zbadany i unormowany? Czasem, zwłaszcza z małymi rzeczami nie jest to problem: „Spróbujmy przez tydzień programować w parach.. Hmm, czemu nie?„.

Czasem nie jest to takie proste: „Spróbujmy wrzucać nasz soft na produkcje jednym kliknięciem myszki.. No co ty, to się nie uda, za dużo biurokracji, próbowaliśmy„. Każdy wie, że jest coś czego nie da się zrobić, ale przychodzi ktoś kto nie wie, że się nie da i robi to ! ” Albert Einstein. Jednym słowem potrzebujemy studenta :) .. Lub, kogoś z autorytetem i wiedzą że się da, bo zrobił to gdzie indziej: konsultanta.

Na chwilę obecną uważam, że by zapewnić przepływ świeżej krwi w zespole potrzeba: konsultantów, którzy są z zespołem od 3 do 6 miesięcy i studentów. Konsultanci wzbogacą zespół ideami z innych miejsc, w których byli. Studenci będą zadawać pytania. Wszystko to zachwieje ustalonym statusem quo i zapewni jakże potrzebny powiew świeżości.

Masz jakieś doświadczenia lub przemyślenia w tym temacie?

GOTO Aarhus 2011

czwartek, 20 Październik 2011

Drugi tydzień października spędziłem na konferencji GOTO w Aarhus. Jak zwykle było to bardzo intensywne doświadczenie ;)

W telegraficznym skrócie:

Niedziela

  • Warsztaty A user user manual z Chrisem Nodderem. Porady na temat tego jak tworzyć przyjazne i łatwe w użytkowaniu oprogramowanie + teoria na temat tego, jak zachowują się użytkownicy i dlaczego.

Poniedziałek

Wtorek

  • TODO

 Środa

  • TODO

Czwartek

  • Warsztaty „Evolutionary Architecture – How to Make it Work” z Martinem Fowlerem i Rebeccom Parsons
  • Warsztaty ”Influence Strategies for Practitioners” z Linda Rising

Piątek

  • Warsztaty ”Maintaining and Evolving Legacy Systems” z Frankiem Buschmann

Ogólne komentarze i podsumowanie:

W tym roku do materiałów konferencyjnych dołączone zostały dwie małe książeczki: „The 3 pillars of personal effectiveness” oraz „Priming Kanban” - oryginalne i fajne posunięcie.

I tak na przykład w „Priming Kanban” wyczytałem, co robić gdy osiągamy limit „work in progress„. Jest to moment na dyskusję. Do wyboru mamy albo powiększyć limit (co będzie skutkować zwiększeniem czasu, jaki jest potrzeby by historyjka przewędrowała od „koncepcji” do „wdrożenia”) albo usprawnić/wspomóc „wąskie gardło”. Np. gdy „testowanie” jest wąskim gardłem, może jako programiści możemy zautomatyzować wrzucanie nowej wersji na środowisko testowe? Tak czy inaczej, osiągnięcie limitu „work in progress” jest pretekstem do dyskusji.

Konferencja to również męczące wydarzenie (pełno wrażeń, codziennie integracja), nie mniej z niecierpliwością czekam na kolejną konferencję organizowaną przez Trifork, QCon 2012 w Londynie ;)

ALE2011 – Koordynacja wolontariuszy

środa, 14 Wrzesień 2011

Poniżej zbiór faktów i wniosków na temat „organizacji wolontariuszy”.

Koordynacją wolontariuszy zajmowałem się razem z drugim „Gregiem”. Myślę, że nasz duet w miarę dobrze się sprawdził, mi w każdym razie współpracowało się z Gregiem dobrze ;)

Ciekawostka: W czasie organizacji ALE2011 była to normalna sytuacja (kilka osób odpowiedzialnych za jeden obszar, bez formalnego lidera). ALE2011 wprowadziło koncepcję „sof” (nawiązując do „Conference Chair”).

Podczas konferencji do zadań wolontariuszy należało: rejestracja uczestników, odpowiadanie na pytania w punkcie informacyjnym, pilnowanie czasu prezentacji, zbieranie feedbacku po prezentacji, pomoc w opiece na dziećmi, robienie zdjęć oraz reagowanie na nie przewidziane wydarzenia (np. wyczerpanie się baterii w mikrofonie).

Rekrutacja

Wolontariuszy próbowaliśmy rekrutować za pomocą Twittera, strony eventu, facebooka (bezpośrednie kontakty) i innych sieci społecznościowych. Wysłałem też e-maile do kilku uczelni w Berlinie oraz do Wrocławia. W sumie udało nam się z rekrutować 8 osób, z czego jedna się rozchorowała a druga „nie dawała znaku życia po rejestracji”.

W zespole wolontariuszy były 3 osoby z Berlina (Lina z Kolumbii, Budi i Melisa z Indonezji), 2 osoby z Brna (Petr i Michal) oraz Adam z Krakowa.

  • Wszyscy zarejestrowani wolontariusze dowiedzieli się o możliwości bycia wolontariuszem bezpośrednio od kogoś, kogo znali.
  • Z 8 zarejestrowanych wolontariuszy, 2 nie dotarło na event. By „bez problemu” poradzić sobie z zadaniami, jakie stały przed wolontariuszami potrzeba by około 14 osób.
  • Deadline „rejestracji” wprowadzał zamieszanie. Wolontariusze nie byli pewni czy można się jeszcze rejestrować.
  • Ekipa wolontariuszy była świetna ;)
  • Plakaty na uczelni! By dotrzeć do studentów, warto by było powiesić plakaty na uczelni. Niestety nie wszyscy śledzą Twittera i wchodzą na stronę konferencji ;)
  • Bezpośredni kontakt w profesorami na uczelni! Samo wysyłanie maili okazało się nie skuteczne. Niezbędny jest „osobisty” kontakt, by nie być potraktowanym jako spam.
  • Zorganizować spotkanie informacyjne na uczelni. By nawiązać bezpośrednią znajomość ze studentami, i zachęcić ich do zaproszenia znajomych.
  • Zamiast „deadlineu” wyswietlać, ile jeszcze miejsc zostało.
Grafik pracy
  • Grafik wolontariuszy został stworzony w google spreadsheet.
  • Na przyszłość, padła sugestia by pozwolić wolontariuszom się „samo zorganizować” zamiast przydzielać im godzinny samemu (lepsze, niz powiedzennie im, że jeśli chcą, mogą się wymieniać)
Organizacja
  • Spotkanie organizacyjne powinno odbyć się dzień wcześniej w miejscu, gdzie jest konferencja! Na spotkaniu powinny obecne być osoby odpowiedzialne za kluczowe elementy programu (lightening talks, open space, sesje) lub wcześniej z tymi osobami powinno się dokładnie wyjaśnić jak będą wyglądać poszczególne elementy programu  i jaki może być wkład wolontariuszy. My mieliśmy spotkanie organizacyjne w moim biurze, a potem udaliśmy się na obiadokolację do pobliskiej knajpy. Było miło i pomogło nam się to trochę poznać, ale mogło być lepiej (mogliśmy lepiej się przygotować na pierwszy dzień konferencji).
  • Spróbowaliśmy zorganizować wolontariuszom coś ciekawego w Berlinie w ramach integracji. Rezultat:  Jazda po ciemku  autobusem nie jest aż taka atrakcja ;) Lepiej było by zrobić ciekawy spacer. (btw, w dzień jazda piętrowych autobusem to super sposób na zobaczenie Berlina).
  • Ustalić wcześniej jak zbierany będzie feedback po sesjach. Zapewnić materiały do zbierania feedbacku przy drzwiach. Nie marnować papieru (używaliśmy karteczek samoprzylepnych, trochę ich poszło..).
  • Przygotować kilka przykładowych scenariuszy + zalecenia co w danej sytuacji robić. (Np. mikrofon przestaje działać, ktoś kogo nie ma na liście uczestników twierdzi, że zapłacił, komuś zginął laptop, speaker przekracza czas i zdaje się nie kończyć)
  • W czasie rejestacji korzystać bezposrednio z google docs lub z excela? Mieć dostęp do większego biurka / kilku biurek rejestracyjnych (by więcej osób na raz mogło sie rejestrować).
  • Zadbać o odpowiedni sponsoring dla wolontariuszy (na wszystkie wyjścia). U nas zabrało np. sponsoringu na obiad konferencyjny (uczestnicy płacili sami).
  • „Przećwiczyć rejestracje” i inne scenariusze na dzień przed konferencją z wolontariuszami (a nie tylko opowiadać).
Tyle zapamiętałem/zebraliśmy podczas retrospekcji..