Jak przeżyć pod naporem zadań i nie zwariować do końca
Disclaimer: znowu będzie marudzenie o sprawach, które nikogo nie obchodzą. Za to będzie długo. Ale co mi tam. Czasem trzeba po prostu napisać coś dla przekonania samego siebie, że pewne działania wbrew pozorom mają sens... ;-)
Charakter mojej pracy uległ w czasie ostatniego pół roku tak znacznej zmianie, że właściwie nie spodziewałem się, że to kiedykolwiek nastąpi. A jednak...[1] No ale mniejsza o to. Ważne, że przyszło mi się zmierzyć z rzeczywistością zbudowaną z tysiąca małych kawałków (częściowo od siebie niezależnych, choć niejednokrotnie powiązanych i dziwnie poprzeplatanych) i taktowaną cyklicznymi zdarzeniami typu CCB meeting oraz zmianami stanu owych kawałków. Słowem wpadłem po uszy w środowisko rzeczywiście sterowane zadaniami.
Przez „zadanie” rozumiem tutaj przede wszystkim zadanie programistyczne, z definicji niewielkie, czyli coś, co ktoś nazwał ładnie DEI. W zależności od lokalnego środowiska i zwyczajów może to być „bug”, „task”, whatever. Nie będę natomiast wnikał w znaczenie określenia „rzeczywiście sterowane” — kto się zetknął z międzynarodową korporacją fabryką oprogramowania, ten wie, kto się nie zetknął — niech to kiedyś zrobi. Dla sportu choćby.
Sytuacja, w której musisz żonglować wieloma małymi elementami DEI, choćby to faktycznie były tylko bugi w jakimś systemie BTS, należy do tego typu zagrożeń, które zmuszają do wypracowania pewnych mechanizmów obronnych, umożliwiających przetrwanie. W przypadku człowieka takiego jak ja, starającego się stosować „filozofię” GTD w praktyce, ta konieczność wydaje się jeszcze bardziej oczywista.
Nie dziwne zatem, że starając się przeżyć (efektywnie) w pracy i równocześnie wyspać (również efektywnie) nie myśląc o pracy po nocy, opracowałem sobie pewien zestaw zachowań i zebrałem pewien zbiór maksymalnie prostych narzędzi umożliwiających funkcjonowanie w środowisku sterowanym zadaniami. Garść przemyśleń poniżej. Wszelkie komentarze i propozycje jak zwykle mile widziane...
(Tym razem wspominam programy wyłącznie dla systemu Windows, choć zapewne mają swoje odpowiedniki w innych systemach. Ogólne zasady oczywiście pasują wszędzie...)
ToDoList
Pamiętanie o tym, co już zrobiłem, a co jeszcze mam do zrobienia, jest stratą energii. Po prostu. Pamiętać powinno się o imieninach żony, a nie o tym, co czeka następnego dnia w pracy. Stąd konieczność posiadania programu, na który będzie można przerzucić tę mniej ekscytującą część „rzeczy do pamiętania” i planów wszelakich.
ToDoList jest jednym z najlepszych (o ile nie najlepszym) programem typu lista zadań jakie widziałem. I to mimo paru drobnych niedoróbek. Możliwość stosowania priorytetów, podzadań, kategorii, bogatych opisów, śledzenia czasu wykonania i utrzymywania równocześnie kilku niezależnych list, przechowywanie danych w XML-u (może nie najwyższych lotów, ale jednak...), powodują że program ten robi właściwie wszystko czego można od niego oczekiwać. Dodatkowo bajery takie jak to, że naciśnięcie [Esc] wywołuje zapisanie zmian i minimalizację programu, powodują, że można go używać niemal niezauważalnie i jakby przypadkowo, w tle. W praktyce jest to podstawowy program, w którym trzymam ważniejsze zadania i „rzeczy, o których na pewno zapomnę jeśli tylko będę miał okazję”. Czasami lepiej nie dawać sobie okazji...
filesystem
Organizacja plików na dysku jest sprawą niejednokrotnie niesłusznie niedocenianą. Dobra i pasująca do organizacji pracy struktura katalogów stanowi odpowiednik wszelkiego rodzaju folderów i fiszek w metodach typu GTD. Wszelkie identyfikatory pochodzące z systemu dawkującego poszczególne zadania (czy innego tam BTS-a) są oczywiście jak najbardziej na miejscu. Osobiście wrzucam do katalogu nazwanego identyfikatorem danego DEI wszystko co jest związane z tym zadaniem (a nie trzymane w innych systemach specjalistycznych) — pliki danych dla testcase'ów, screenshoty, wszelkie możliwe notatki, obliczenia, wykresy, czy co tam jeszcze może być potrzebne lub pojawi się w trakcie wykonywania zadania. Ważne jest zachowanie pewnego wysokiego poziomu ogólności takiego folderu — to po prostu takie „pudło”, do którego wrzucam wszelki stuff związany z danym zadaniem. Jakikolwiek dodatkowy czas poświęcony na katalogowanie rzeczy wewnątrz tego „pudła” jest już czasem niepotrzebnie straconym. Jedyna konwencja jaką zachowuję wewnątrz takiego katalogu, to istnienie w nim pliku notes.txt
z notatkami na dany temat — o tym jeszcze niżej..
Oczywiście dla projektów zbudowanych z większej ilości zadań elementarnych struktura taka musi być odpowiednio dostosowana — wszelkie sensowne hierarchie są jak najbardziej na miejscu, w zależności od potrzeb.
poczta
Analogiczna sytuacja występuje w przypadku poczty elektronicznej — organizacja e-maili w katalogi to klucz do sukcesu. Poważnie. Narzędzia wspomagająco wyszukujące, np. typu Google Desktop, oczywiście się przydają, ale w praktyce najwięcej zyskuję wiedząc, w którym katalogu mam szukać. Oczywiście tutaj numeracja analogiczna jak w przypadku systemu plików jest jak najbardziej pożądana. I bardzo ważne — całą pocztę związaną z danym zadaniem (od jakiegoś maila inicjującego, poprzez wszelkie ustalenia, aż do ostatniego słowa) wrzucam do jednego katalogu poczty. Bez względu na to od kogo przyszła i czy jest to poczta wysłana czy odebrana. Trzymanie poczty odebranej i wysłanej w zupełnie innych miejscach, mimo że stanowią jedną ciągłą konwersację, a tylko dlatego, że jakiś tam program pocztowy ma osobne foldery In i Out, jest dla mnie rzeczą absolutnie pozbawioną sensu i straszliwą stratą czasu.
Natomiast wszelkie dodatkowe możliwości programu pocztowego, typu kolory, flagi, tagi lub kategorie są jak najbardziej do wykorzystania...
Przy okazji poczty jeszcze dwie ważne rzeczy natury ogólnej:
- kasowanie maili — odchudzanie ilości zasobów mailowych przez pozbywanie się tych, które na pewno nie są ważne, może bardzo wyraźnie wpłynąć pozytywnie na naszą wydajność. Serio — kasuj każdy śmieć, nie ma czego żałować; im mniej masz maili tym lepiej.
- filtrowanie spamu — ustalony dopisek typu
[spam]
w tytułach maili nie na temat, specjalny folder i filtr, który ustawiłeś na wyłapywanie takich maili istnieją po to, żebyś tych wiadomości nie czytał teraz. Na koniec pracy, jutro rano, kiedyś, ale na bogów nie teraz. Teraz starasz się zrobić to, co masz zrobić, spam zostaw sobie na jutrzejsze śniadanie...
notes.txt
Potęgi pliku tekstowego nie wolno nie doceniać. Wszystko, co robię w ramach jakiegoś zadania, ma swoje odzwierciedlenie w jakimś pliku — najlepiej o ustalonej, prostej nazwie, typu notes.txt
, w katalogu danego zadania (patrz wyżej). Pod słowem „wszystko” rozumiem w tym przypadku faktycznie wszystko, co się da zapisać w postaci tekstowej — ważne miejsca w kodzie programu, nazwy metod, zmiennych, wartości, callstacki, obserwacje wszelakie itd. itp. Taki plik stanowi odzwierciedlenie wszystkich kroków mojej pracy nad danym zadaniem i taki jest jego cel. Nie muszę pamiętać „jak to tam się robiło” czy „co się tam wywoływało, jak i dlaczego” — wszystko zostało zapisane, a ja mogę spać z przyjemnie pustą głową...
Mimo, że plik tekstowy sam w sobie jest genialny w swej prostocie, to wybór narzędzia, edytora, jest raczej istotny. Mój osobisty wybór dla środowiska Windows to Notepad++. Ale, oczywiście, co kto lubi...
Stickies
Stickies to jeden z wielu, choć całkiem możliwe, że najlepszy program typu „żółte karteczki”. Jeżeli powiemy, że rolą katalogów i zapisków w pliku tekstowym jest odciążenie pamięci długoterminowej, to zadaniem karteczek jest odgrywanie roli pamięci krótkoterminowej. Stickies ze swoimi szczególnymi możliwościami typu skojarzenie notatki z oknem konkretnej aplikacji umożliwiają bardzo skuteczne wymuszenie skupienia uwagi w konkretnym momencie i miejscu. Oczywiście w tym samym celu jak wszystkie powyższe — aby nie pamiętać tego, czego pamiętać nie trzeba...
No i tak to z grubsza wygląda. Proste narzędzia i proste rozwiązania, a jednak bez nich ginę w mgnieniu oka...
[1] Ciekawe, że w pewnym sensie powracam do spraw i sytuacji, którymi zajmowałem się wieki temu... (Np. jutro to dziś, tylko ma więcej błędów — 2004.10.15, błąd nasz codzienny — 2004.04.20; Sylwester — 2005.01.03.) Strasznie dziwnie się czasem w życiu układa...
2007.06.26 | 9 komentarzy |
tagi » inżynieria?, soft, gtd
Komentarze
#1 | 2007.06.28 14:42 | qvist
dzieki za notke, wlasnie jestem po sesji i dopadlo mnie jednoczesnie kilka zlecen i nie moglem sobie poradzic z organizacja... te narzedzia (Stickies i ToDoList) sa genialne. GTD rox! :-)
#2 | 2007.06.28 15:36 | MiMaS
Oryginalna strona ToDoList przeszła w wersję 509 (Bandwidth Limit Exceeded). Ale można to jeszcze dorwać np. na The Code Project.
#3 | 2007.06.28 16:35 | Adam
Jeśli chodzi o katalogowanie wszelkiego rodzaju półproduktów, o których piszesz, używam struktury katalogów YYYYMMDD_opcjonalnyZnacznikSpecjalny. Jest to o tyle wygodne, że najczęściej zdarza mi się "Hm.. zaraz, zaraz, przedwczoraj to robiłem".
Dodatkowo do katalogu macierzystego tych osobodni, linkują zewsząd (czyli z np. z katalogów domowych softu, który nie lubi pamiętać ostatnio otwartego miejsca) zwykłe windowsowe skróty - zaoszczędza to tych paru sekund podczas których można zgubić wątek ;-)
Niektóre *znajome twarze z pracy* używają też jakiegoś softu obsługującego gesty myszy, pisząc "za jednym pociągnięciem" najczęściej powatarzane opasłe SQL-e.
#4 | 2007.06.28 17:30 | MiMaS
Jeśli chodzi o katalogowanie wszelkiego rodzaju półproduktów, o których piszesz, używam struktury katalogów YYYYMMDD_opcjonalnyZnacznikSpecjalny. Jest to o tyle wygodne, że najczęściej zdarza mi się "Hm.. zaraz, zaraz, przedwczoraj to robiłem".
No widzisz, a mi właśnie data nic nie mówi. Nie wiem i nie chcę wiedzieć co było przedwczoraj, a np. miesiąc temu to już w ogóle nie mam pojęcia. Co innego numerek defektu z ClearQuesta np. — ten mówi wszystko, czy raczej stanowi klucz do odnalezienia wszystkiego, co może być na dany temat interesujące... Data jako taka nie jest dla mnie kluczem, zwłaszcza że w ciągu jednego dnia robię wiele niezależnych rzeczy.
Ale, co komu pasuje ;-)
#5 | 2007.06.28 22:44 | Wojciech Bednarski
ToDo instalowane na desktopie ma tą wadę, że jest tylko tam :- )
Dlatego lepszym rozwiązaniem jest wersja sieciowa, przykładowo:
#6 | 2007.06.29 09:06 | Shot
„ToDo instalowane na desktopie ma tą wadę, że jest tylko tam” – chyba, że sobie z komórką zsynchronizujesz. Nie, jeszcze się za synchronizowanie Pimlico z moją Nokią nie zabrałem. :)
#7 | 2007.06.29 09:28 | MiMaS
ToDo instalowane na desktopie ma tą wadę, że jest tylko tam :- )
To zależy od zastosowań. Jeżeli chodzi o śledzenie zadań wykonywanych w fabryce, to jaki mogę mieć powód żeby próbować się do nich dostać z innego miejsca niż stanowisko pracy? Skąd niby? Z LAN-u firmy się dostanę i to chyba wystarczy...
#8 | 2007.06.30 22:21 | Reqamst
Odnośnie organizacji pracy w plikach tekstowych niezastąpionym narzędziem jest Emacs i Org-mode. Tagi, drzewa, rozbudowane zarządzanie czasem, tworzenie list TODO, kolorowanie, eksportowanie do html, ical i czegoś tam jeszcze, a to dopiero kilka z możliwości. Wszystko szalenie czytelne i intuicyjne.
#9 | 2007.07.02 08:20 | dragonka
Czuję się trochę, jakbym Cię do tej notki zainspirowała :)
Jeszcze dwa miesiące temu, czytałabym ją z wypiekami na twarzy ;), bo również szukałam czegoś, co pamiętałoby za mnie, że "a tu, kiedyś trzeba jeszcze to poprawić, zmienić...". Rozwiązanie podsunął mi zupełnie niechcący pracodawca, obdarzając nas "gwizdkiem" U3. Polecam z czystym sumieniem. Na urządzonko został napisany programik Accomplice, odpowiednik ToDoList, jak sadzę. Nie jest pewnie doskonały, ale wart sprawdzenia.
P.S. Jak widać, czasami mogę tu wchodzić.
Uwaga: Ze względu na bardzo intensywną działalność spambotów komentowanie zostało wyłączone po 60 dniach od opublikowania wpisu. Jeżeli faktycznie chcesz jeszcze skomentować skorzystaj ze strony kontaktowej.