To nie ma być pełna odpowiedź - jest już kilka bardzo dobrych, które wspominają o ważnych rzeczach, takich jak korzystanie z VCS i oprogramowania do zarządzania projektami - ale raczej uzupełnienie dodające kilka punktów, których nie widziałem w żadnym innym, okaże się bardzo pomocny i mam nadzieję, że inni również mogą być pomocni.
1. Żadne zadanie nie jest za wcześnie ani za małe, aby je spisać
Ludzie zwykle sporządzają listy rzeczy do zrobienia dla rzeczy, które planują robić w przyszłości , ale ponieważ programowanie wymaga koncentracji, a ponieważ możemy przerwać w dowolnym momencie , uznałem, że pomocne jest zapisanie nawet tego, co robię teraz, lub co mam zacząć w ciągu kilku sekund . Możesz czuć, że znajdujesz się w strefie i nie możesz zapomnieć o rozwiązaniu, które właśnie uderzyło cię w tej chwili aha , ale kiedy twój współpracownik wpadnie do twojej kostki, aby pokazać zdjęcie jego zainfekowanego palca u nóg , i jesteś tylko w końcu się go pozbyć, zaczynając gryźć się na własnym ramieniu , możesz żałować, że nie napisałeś szybkiej notatki, nawet jeśli tylko na kartce Post-It ™.
Oczywiście lepszy może być inny, bardziej trwały nośnik (szczególnie lubię OmniFocus ), ale chodzi o to, żeby przynajmniej gdzieś go mieć , nawet jeśli skończysz za 20 minut, a potem wyrzucisz Post-It ™. Chociaż możesz odkryć, że informacje te stają się przydatne, aby wystawiać klientowi arkusze czasu pracy lub faktury, lub gdy szef / klient pyta cię, nad czym pracowałeś i nie pamiętasz. Jeśli upuścisz wszystkie te notatki w pudełku, szufladzie lub folderze, to kiedy nadejdzie duża przerwa - przerywający projekt - możesz je przejrzeć i zapamiętać wiele rzeczy, które zrobiłeś, aby doprowadzić kod do punktu, w którym znajdź go po powrocie do projektu.
2. Użyj tablicy na biurku, aby uchwycić pomysły na duże obrazy
Obok biurka mam tablicę o wymiarach 3 x 4, więc kiedy rozpoczynam projekt, mogę przeprowadzić burzę mózgów na temat rozwiązań wszystkich problemów, które dostrzegam w projekcie. Mogą to być schematy architektoniczne, przypadki użycia, listy zagrożeń i przeszkód lub cokolwiek, co wydaje się istotne dla Ciebie.
Niektóre bardziej sformalizowane podejścia wymagają generowania diagramów i przypadków użycia i tak dalej jako „rezultatów” w formie papierowej lub elektronicznej, ale uważam, że może to spowodować wiele dodatkowej pracy i po prostu stać się serią podprojektów, które kończą się oderwanie się od faktycznego celu głównego projektu i tylko część sformalizowanego procesu, który musisz zrobić, ale na który nikt nie zwraca dużej uwagi. Tablica to najprostsza rzecz, która faktycznie działa, przynajmniej z mojego doświadczenia. Jest tak wytrwały, jak chcesz (z kamerą) i, co najważniejsze, pozwala od razu odrzucić pomysły.
Myślę, że lepiej z piórem w dłoni, więc zrzut myśli na białą powierzchnię przychodzi mi naturalnie, ale jeśli nie uważasz, że tak jest w twoim przypadku, oto kilka pytań, które mogą pomóc ci zdecydować, co jest istotne :
- Gdybym był głównym programistą, który zamierzał spędzić miesiąc miodowy przez 3 miesiące, podczas gdy inni deweloperzy zakończyli projekt, jaki ogólny kierunek chciałbym im dać? O jakich pomysłach chciałbym się upewnić, że wiedzieli, lub jakie podejścia chciałbym mieć, aby się upewnić? Jakie biblioteki lub inne przydatne rozwiązania chciałbym mieć pewność, że są świadome?
- Gdyby ten projekt był moim pomysłem na milion dolarów, o którym wiedziałem, że zapewni moją przyszłą niezależność finansową, ale zostałem zaplanowany na krytyczną operację, która obezwładniałaby mnie na 3 miesiące, co chciałbym mieć w przyszłości, aby zapewnić pomyślne zakończenie projekt?
(Kiedy po raz pierwszy spisuję pomysły, martwię się tylko tym, że mają one sens dla mojego obecnego ja. Gdy są już na dole, mogę bardziej krytycznie na nie spojrzeć i wprowadzić zmiany, aby upewnić się, że mają sens dla mojego przyszłego ja lub innych. o komunikowaniu się z innymi podczas ich zapisywania na początku może prowadzić do blokowania pisarzy - umysłu zablokowanego przez konkurujące ze sobą cele. Najpierw zejdź na dół; martw się o jasność później).
Polecam wydać pieniądze, aby kupić przyzwoitą tablicę, co najmniej 3 „x 4”, i powiesić ją w miejscu, w którym normalnie pracujesz. Tablica fizyczna ma wiele zalet w porównaniu z dowolnym systemem wirtualnym.
- To jest duże. Zajmując dużo miejsca, sprawia, że jego obecność jest odczuwalna, a plany wydają się być częścią twojego obszaru roboczego, pomagając przez cały czas wskazywać właściwy kierunek.
- Jest tam uporczywie: nie masz uruchomionej określonej aplikacji lub strony internetowej, aby uzyskać do niej dostęp, i nie ryzykujesz zapomnienia, jak się do niej dostać, lub zapomnienia, że tam jest.
- Jest natychmiast dostępny, gdy masz pomysł, który chcesz przemyśleć.
Tracisz wiele korzyści, jeśli po prostu użyjesz tablicy w pokoju konferencyjnym, a następnie zrobisz migawkę telefonem. Jeśli zarabiasz na programowaniu, jest to warte kosztu porządnej tablicy.
Jeśli masz inny projekt, który przerwie ten, który zapełnił twoją tablicę, być może będziesz musiał skorzystać z migawki w telefonie, ale przynajmniej będziesz miał to za 3 miesiące, kiedy „pilny” projekt zostanie zakończony i będziesz musiał wróć do drugiego. Jeśli chcesz odtworzyć go na swojej tablicy, prawdopodobnie zajmie to tylko 15 minut i może się okazać, że możesz go znacznie ulepszyć, co sprawia, że ta niewielka inwestycja czasu jest bardzo opłacalna.
3. Poinformuj interesariuszy o kosztach przerwania projektu
Metafora samolotu jest dla mnie pomocna: rozpoczęcie i ukończenie projektu jest jak latanie samolotem. Jeśli wyskoczysz w połowie lotu, samolot nie będzie po prostu siedział w powietrzu i czekał, aż wrócisz do niego, i potrzebujesz sposobu na podróż z bieżącego projektu / lotu do następnego. W rzeczywistości, jeśli jesteś w środku lotu z Phoenix do Fargo i powiedziano ci, że musisz przerwać ten lot, aby wziąć inny samolot z Denver do Detroit, musisz wylądować pierwszy samolot w Denver (który na szczęście nie jest daleko od toru lotu - nie zawsze tak jest z rzeczywistymi przerwami) i ktoś musi wymyślić, co zrobić z ładunkiem i pasażerami. Nie będą tylko siedzieć i czekać wiecznie.
W przypadku projektów chodzi o to, że przejście z jednego projektu do drugiego wymaga dużego nakładu czasu i pozostawia wiele do stracenia, z którymi trzeba sobie poradzić.
W projekcie jest oczywiście i nieuchronnie wiele rzeczy, które dzieją się w twojej głowie podczas pracy i nie każda myśl może być przekształcona do postaci seryjnej na piśmie, i nie każda część tych myśli, które są zserializowane, pozostanie po deserializacji. Chociaż możemy częściowo uchwycić nasze myśli na piśmie, jest to format bardzo stratny.
Problem (jak widzę) polega na tym, że menedżerowie projektów i inni ludzie biznesu myślą o projektach jako o szeregu kroków, które często można dowolnie zamawiać (chyba że istnieje wyraźna zależność od ich wykresu Gantta) i które można łatwo rozdzielić między ludzi lub opóźnione, aż będzie to najwygodniejsze dla firmy.
Każdy, kto dokonał dowolnej ilości programowania, wie, że projekty oprogramowania nie mogą być traktowane jak klocki Lego, które można przenosić w dowolny sposób. Uważam, że metafora podróży lotniczych daje przynajmniej zainteresowanym stronom coś konkretnego, o czym mogą myśleć, że nie można tego traktować jako szeregu różnych kroków, które należy zmienić według kaprysu. Przynajmniej ułatwia zrozumienie , że takie zakłócenia wiążą się z pewnymi kosztami. Oczywiście nadal jest to ich decyzja, ale chcesz uświadomić im o tym, zanim przerwie jeden projekt, aby dać ci inny. Nie bądź wojowniczy, ale udzielaj pomocnych informacji i pomocnej perspektywy programisty, gotów zrobić wszystko, czego od ciebie potrzebują, ale po prostu oferuj informacje, których mogą nie być świadomi, jeśli im nie powiesz.
W skrócie:
- Zapisz wszystko, co masz zamiar zrobić, nawet jeśli nie wydaje ci się, że może być potrzebne. Nawet krótki ołówek bije długą pamięć.
- Przeprowadź burzę mózgów na dużym obrazie na fizycznej tablicy, do której masz stały dostęp.
- Państwo może uniknąć przerw projektowych jeśli się decydenci świadomy, że istnieje koszt takich przerw, a przynajmniej będziesz mieć wyznaczone oczekiwania tak wiedzą, że projekt potrwa trochę dłużej po wznowieniu go.