Jak kodować według bardzo napiętego harmonogramu?

40

Pracuję nad projektem, który ma bardzo napięty harmonogram. Nie mam dużo czasu na kodowanie i testowanie (mimo że codziennie pracuję więcej niż 12 godzin, wciąż jest opóźnione), a wynik jest bardzo kruchy. Jego kod jest również bardzo dylemat.

Z tego programu korzystają wszystkie biura w firmie naszego klienta, która znajduje się w wielu krajach. Regularnie dostaję telefony o północy o błędach od naszego użytkownika / testera lub o tym, że nie wiedzą, jak korzystać z niektórych funkcji.

Po trzech latach pracy nad tym projektem czuję się bardzo zestresowana i nie mogę spać dobrze, ponieważ bardzo martwię się o błędy i połączenia telefoniczne.

Mam kilka pytań:

  1. Przez trzy lata cały kod, który napisałem, jest idealnym kodem scenariusza użytkowania (więc łatwo się psuje). Jest źle zaprojektowany i nie ma żadnych testów jednostkowych. Mam z tego powodu wiele problemów. Dlatego chcę wiedzieć, czy jest możliwe napisanie kodu, który działa, gdy projekt ma bardzo napięty harmonogram?
  2. Jak mogę napisać lepszy kod w tym samym czasie?
  3. Jak mogę oczyścić umysł i nie martwić się pracą, kiedy idę spać?
Anonimowy
źródło
9
Sugestia? Najbardziej oczywisty i wiesz o tym !!!
Aditya P
25
Wyłącz telefon w nocy. Ustaw limity i trzymaj się ich. Masz tutaj dwie odrębne kwestie, pierwszą z nich jest to, że twoja firma nie szanuje tego, że pracownicy również mają życie.
Tim Post
34
rzuć pracę, zdobądź nową.
Naucz się także
18
Terminy stanowią problem zarządzania. Jeżeli terminy są zawsze, że napięty, a następnie muszą pracować na zapewnienie lepszych szacunków - nie działa jak psa do spełnienia, co sądzili zajęłoby.
Steven Evers,
4
Jestem pewien, że gdyby gry EA zatrudniły SnOrfusa, zrobiłby to.
Berin Loritsch,

Odpowiedzi:

30

Zakaz połączeń telefonicznych

Jeśli Twoi użytkownicy są na całym świecie, z pewnością nie mogą oczekiwać, że odbierzesz telefon, gdy jest 4 rano i jesteś w łóżku. Zakazałbym połączeń telefonicznych i przestawiłbym się na inne środki komunikacji, które mogą lepiej służyć temu scenariuszowi (e-mail lub baza danych śledzenia problemów). Ale nawet w biurze zaplanuj harmonogram dostępności telefonu. W przeciwnym razie nie możesz nic zrobić, gdy jesteś w biurze.

To zapewni ci cenny sen i odpoczynek.

Napięty terminarz

Jeśli ten projekt został zaplanowany na trzy lata, ktoś musiał podejrzewać, że coś naprawdę nie działa. Może nadszedł czas, aby ktoś powiedział planistom coś, a zwłaszcza użytkownikom / klientowi i menedżerom, że jest to projekt marszu śmierci. Jest rozwijany od trzech lat, jest opóźniony i pełen błędów. Plan powinien zostać całkowicie ponownie oceniony, istniejący kod powinien zostać poddany ponownej analizie, a nowe funkcje nie powinny być rozwijane, dopóki nie zostanie rozwiązanych wiele problemów.

Porządek z chaosu

Ustal metodologię rozwoju, która sprawi, że wszystko będzie przewidywalne i znośne dla Ciebie. Jeśli jesteś programistą, obsługa przychodzących połączeń telefonicznych nie pozwala ci wykonywać żadnej pracy. Każda przerwa zajmuje 15 minut, aby wrócić do miejsca, w którym zostało przerwane. Połączenia telefoniczne powinny być wyłączone . Przynajmniej na twoim biurku, ponieważ jesteś programistą. Jeśli możesz przekierowywać połączenia telefoniczne do kogoś innego, kto nie będzie Ci przeszkadzał po każdym połączeniu, to zrób to.

Utwórz bazę danych incydentów / błędów. Każdego ranka poświęć trochę czasu na ustalenie priorytetów dla nowych incydentów (siebie, swojego zespołu lub klienta / kierownika). Spróbuj rozwiązać je w porządku posortowanym według kolejności priorytetów i nawet nie próbuj myśleć o rozmowach telefonicznych.

Co jeśli

Co jeśli nie możesz wyłączyć telefonu i nie możesz powiedzieć użytkownikom, że nie mogą do ciebie dzwonić, kiedy chcą? Jeśli masz numer telefonu użytkownika, sugeruję, abyś zrobił coś przeciwnego: kiedy do ciebie zadzwonią, zgłoś to i poinformuj, że oddzwoni, gdy zostanie rozwiązany. Następnie oddzwoń, gdy śpią. Jeśli powiedzą ci, że śpią, pamiętaj ich odpowiedź i użyj jej, gdy zadzwonią do ciebie w środku nocy następnym razem. Ludzie zwykle lepiej rozumieją swój język.

Jeśli używają telefonu biurowego, a ty korzystasz z telefonu komórkowego, abyś nie mógł do nich dzwonić poza godzinami pracy, a oni mogą, wtedy zacznij wyłączać swój telefon komórkowy po wyjściu z biura. Jesteś tam od 12 godzin i zasługujesz na zwolnienie z pracy. Jeśli telefon komórkowy jest osobisty, firma powinna otrzymać nowy i poinformować o tym użytkowników / klientów. Jeśli później zaczną do ciebie dzwonić na osobisty numer telefonu (ponieważ nie mogą się z Tobą skontaktować w Twojej firmie, możesz:

  1. nie odbieraj
  2. poproś znajomego, aby poinformował go o niewłaściwym numerze lub że pierwotny użytkownik tego numeru już go nie używa.

Najważniejszą rzeczą

Nie rozwijaj żadnych nowych funkcji, dopóki nie rozwiążesz istniejących problemów. Przynajmniej te o wysokim i średnim priorytecie.

Robert Koritnik
źródło
6
Nie bądź biernie agresywny wobec użytkowników. Jeśli firma nie spodziewa się, że odbierzesz telefon poza godzinami pracy, nie rób tego. Potrzebny jest inny numer dla osoby dyżurującej.
JeffO
@Jeff O: Całkowicie się zgadzam. Ale ponieważ trwa to od 3 lat, wydaje się, że należy odbierać połączenia w tych nieludzkich godzinach.
Robert Koritnik
1
Sugerowałbym, abyś powiedział im z góry zamiast podżegać. Nie byłoby tak, że ludzie lepiej rozumieją swój język, ponieważ nie chcą z tobą rozmawiać, ponieważ uważają cię za nieprzyjemnego.
Rei Miyasaka,
3
„oddzwoń, gdy śpią” „Ludzie zazwyczaj lepiej rozumieją swój język”, dobry;)
Achu
2
Szczerze mówiąc, jeśli dojdzie do scenariusza „Co jeśli”, najlepszą opcją jest po prostu znalezienie innego miejsca do pracy. Niezdrowe (dla większości) jest ciągłe 12-godzinne dni, a nawet gorzej, gdy dyżurujesz. Z pewnością powinien zrobić wszystko, co w jego mocy, aby rozwiązać problem, ale jeśli wszystko inne zawiedzie, przestań. Ta sytuacja nie jest trwała.
Dan Lyons,
14

O ile nie jesteś jedyną osobą w zespole - w takim przypadku prawdopodobnie jesteś w połowie drogi do wypalenia - na zmianę z „pagerem”. To powinno na razie zmniejszyć obciążenie.

Następnie należy powiadomić kierownictwo, że muszą zaplanować fazę spłaty zadłużenia technicznego - co oznacza testowanie, czyszczenie kodu, refaktoryzację. I wkrótce trzeba to zaplanować. Ogólnie oznacza to, że przez pewien czas nie ma nowego kodu, który nie byłby refaktoryzacją ani testem. Jeśli nie, będzie gorzej.

W tej fazie wybierasz najbardziej kłopotliwe sekcje bazy kodu, refaktoryzujesz ją, czyścisz i piszesz testy, aby przetestować to gówno. Gdy rozmowy ustaną lub można je obsłużyć bez szaleństwa deweloperów, jesteś gotowy na kolejną fazę funkcji (jeśli tego właśnie chcą). W tym momencie piszesz testy z nowym kodem i kontynuujesz regresje. W tej chwili oprogramowanie wydaje się być na dobrej drodze do ponownego napisania.

Punkty sprzedaży za rozmowę z szefem:

  • Zautomatyzowane testy mogą zatrzymać lub znacznie zmniejszyć regresje
  • Koncentracja na stabilności oznacza, że ​​użytkownicy będą mieli mniej opóźnień / przestojów w pracy
  • Brak połączeń o północy oznacza, że ​​nie płacą za nadgodziny
  • Brak wezwań o północy oznacza, że ​​deweloperzy nie wypalą się tak szybko

Bądźmy szczerzy. Do tej pory Twoja firma nie uważała, że ​​jest to wystarczająco duży problem, aby coś z tym zrobić; wypalisz się. Wygląda na to, że nikt w zarządzaniu nie ma żadnego prawdziwego doświadczenia programistycznego. Zacznij szukać.

Steven Evers
źródło
Jeszcze lepiej, podaj pager menedżerowi, który wprowadził cię w ten bałagan ... lub przypadkowo upuść go w wiadrze słonej wody.
Stephen C
2
Jeśli ten projekt trwa chaotycznie od trzech lat, przypuszczam, że faza technologiczna potrwa kilka miesięcy. Najpierw powinni przestać opracowywać nowe funkcje, rozwiązać 20% najbardziej problematycznych problemów (ponieważ 80% z nich rzadko spotyka się z problemami), a następnie rozpocząć od refaktoryzacji. Gdy to zrobisz, możesz zacząć dotykać innych 80%. Ale nie zaczynaj opracowywać nowych funkcji, dopóki nie rozwiążesz wszystkich bieżących problemów. Czemu? Im szybciej usuniesz błąd, tym taniej go rozwiązać. Nawet jeśli w twoim przypadku nic nie wydaje się tanie.
Robert Koritnik
@Robert Koritnik: Absolutnie. +1
Steven Evers
13

Chociaż mogą istnieć pewne techniki, które pozwolą ci osiągnąć niewielki wzrost wydajności, wzrost wydajności pracy o 5% jest teraz gorszy niż bezużyteczny. Prawdziwa umiejętność, której tu brakuje, jest prosta i fundamentalna:

Naucz się mówić „nie”

Powiedz „nie” wszystkim nieuzasadnionym oczekiwaniom, o których wiesz, że powinieneś odmówić. Wiesz jakie one są. To jest oczywiste. Jeśli nie możesz teraz odmówić, znajdź pracę, w której możesz. Inteligentni pracodawcy uznają tę umiejętność za pożądaną.

Rein Henrichs
źródło
1
Przede wszystkim jest to umiejętność wymagana. Świetna odpowiedź!
Joe Z
8

Zacznij od zrozumienia, że ​​Twój projekt zawiedzie, jeśli nic się nie zmieni. To najważniejszy krok do zrobienia tego, co musisz zrobić. Deweloper nie jest w stanie wytrzymać 12 godzin dziennie i jest w stanie wygenerować użyteczny kod. Dojdziesz do momentu, w którym popełnisz głupie błędy i faktycznie stracisz postęp, ponieważ musisz zaczynać każdego dnia od naprawy tego, co zrobiłeś dzień wcześniej. Brzmi jakbyś już tam był.

Istnieją dwa główne problemy, którymi należy się zająć, zanim znów będziesz mieć zdrowie psychiczne:

  • Kierownictwo musi wiedzieć, że to, co robią, nie działa . Powtarzanie tych samych błędów przyniesie te same wyniki. Coś musi się zmienić.
  • Potrzebujesz czasu, aby naprawić to, co już masz. Oznacza to, że potrzebujesz czasu na zaplanowanie ataku i potrzebujesz czasu, aby nad nim popracować w 8 godzin roboczych dni.
  • Musisz zmienić sposób pracy. Zrozum, że im więcej stresu masz, tym więcej masz wizji w tunelu. Nie możesz wymyślić kreatywnych sposobów rozwiązania problemów, a nawet pomyśleć o tym, co się stanie, jeśli wystąpi problem, gdy jesteś tak zestresowany. Nie wspominając o tym, że masz zwiększoną szansę na poważne komplikacje zdrowotne. Znajdź sposoby na rozładowanie stresu i sposoby na zmniejszenie stresu.

Aby naprawić swoją sytuację, potrzebujesz wpisowego do zarządzania. Problem polega na tym, że nie odczuwają bólu i nie chcesz skończyć w szpitalu z udarem, aby zwrócić ich uwagę. Pierwszym krokiem jest wyjaśnienie swojemu kierownictwu, gdzie jesteś i presji, na którą jesteś. Jeśli tego nie dostaną, przejdź na wyższy poziom zarządzania. Lub ewentualnie opisz swoje warunki pracy działowi HR. Wymaganie, abyś pracował dłużej niż 8 godzin dziennie przez dłuższy czas, może stanowić naruszenie prawa, a dział HR na pewno się o tym dowie.

Zakładając, że kierownictwo usłyszy twoją prośbę, chcesz podjąć następujące działania:

  • Zatrzymaj krwawienie. Brak nowych funkcji, a ktoś inny obsługuje połączenia serwisowe. Musisz skupić się na zadaniu.
  • Zidentyfikuj najcięższe błędy, które należy naprawić, i spróbuj ustalić, ile czasu zajmie ich usunięcie. Jest to przybliżone oszacowanie i lepiej mieć większe liczby niż niższe. Aby uwzględnić spotkania i przerwy w ciągu dnia, kierownictwo potrzebuje oszacowania opartego na pracy nad nim przez 5 godzin dziennie. To pozostawia 3 godziny na spotkania i przerwy.
  • Poproś kierownictwo, aby zgodziło się na zmieniony harmonogram tych krytycznych błędów.
  • Poproś kierownictwo, aby zgodziło się zlecić Ci wykonanie testu przez inną osobę. To nie oznacza, że ​​nie możesz wykonywać swojej pracy. Zapewnia to po prostu pewne zapewnienie jakości, dzięki czemu każde wydanie jest lepsze od poprzedniego.
  • Teraz je naprawisz. Napisz testy jednostkowe, aby odtworzyć problem, abyś wiedział, kiedy już działa. Co ważniejsze, będziesz wiedział, czy coś, co zrobiłeś w innym miejscu, ponownie to zepsuło. Refaktoryzuj, aby kod działał lepiej.

Po zakończeniu aktualizacji krytycznej poprawki czasu nadszedł czas, aby zaplanować następną. Wszystkie funkcje i poprawki błędów muszą być traktowane priorytetowo, a wydania należy zaplanować wokół podzbioru oczekującego obciążenia. Przekonasz się, że wprowadzasz zdrowy rozsądek w życiu zawodowym, poziom stresu spadnie, jakość wzrośnie i ogólnie będziesz bardziej wydajny.

Berin Loritsch
źródło
6

Wydaje się, że cierpisz z powodu tego, co uważam za przypadek fałszywej gospodarki , a im dłużej będziesz przestrzegać tych rzeczy, które nie działają, tym gorszy będzie twój problem.

Niektóre kluczowe wskaźniki:

  • To, co wydaje się być nierealnym harmonogramem.
    • Zakładam słabe zrozumienie dobrych praktyk rozwoju ze strony kierownictwa.
    • Zakładam brak zrozumienia lub wsparcia ze strony kierownictwa.
  • Pracuje 12 godzin dziennie.
  • Wysoki poziom stresu.
  • Brak snu.
  • Niepokój.
  • Słaba dbałość o wygląd i jakość kodu.
  • Brak siatki bezpieczeństwa testującej jednostkę.

Chcę wiedzieć, czy jest możliwe napisanie kodu, który działa, gdy projekt ma bardzo napięty harmonogram?

Krótka odpowiedź brzmi: tak. Długa odpowiedź jest złożona i będzie wymagała ogromnej zmiany postrzegania w imieniu kierownictwa i ewentualnie również klienta, a także wysiłku Herculean z twojej strony ... ale wrócę do tego za chwilę.

Jak mogę napisać lepszy kod w tym samym czasie?

Realistycznie nie możesz, jeśli Twoim założeniem jest, że możesz zrobić wszystko, co pozwoli Ci zaoszczędzić czas i nadal uzyskać doskonały wynik. Musisz zastosować techniki, które zwiększą czas potrzebny na wdrożenie kodu, ponieważ musisz poświęcić trochę czasu, aby skupić się na właściwym ułożeniu szczegółów. To wymaga czasu i właśnie tutaj krzywdzą cię twoje fałszywe gospodarki. Jednakże, robiąc rzeczy w lepszy sposób, poprawiasz jakość swojego kodu, co z kolei spowoduje zmniejszenie kruchości twojego systemu. Ponownie wyjaśnię to dalej.

Jak mogę oczyścić umysł i nie martwić się pracą, kiedy idę spać?

Lęk powoduje brak snu, a utrata snu powoduje niepokój. To błędne koło, jeśli kiedykolwiek istniało, a pozostawienie go bez kontroli prawdopodobnie doprowadzi do złego bliźniaka lęku, Depresji . Przewlekła utrata snu, która, jak zakładam, jest prawdopodobnie połączona z brakiem ćwiczeń fizycznych, a także prawdopodobnie złymi nawykami żywieniowymi, wszystko to może doprowadzić do chronicznego zmęczenia . Wszystko to jest symptomatyczne dla wszystkich problemów, z którymi borykasz się w miejscu pracy i wynikających z nich problemów, z którymi prawdopodobnie będziesz mieć do czynienia w życiu domowym. To tutaj znajdują się największe dowody fałszywej ekonomii i jest to prawdopodobnie najpoważniejszy problem, z którym musisz się najpierw zmierzyć.

Z zadowoleniem przyjmuję również wszelkie sugestie.

Najpierw powinienem stwierdzić, że nie jestem lekarzem, a przed podjęciem jakichkolwiek działań powinieneś zasięgnąć porady lekarza. Zwrócę jednak uwagę, że przeżyłem doświadczenia, które opisałeś w swoim poście i wiem, jak trudno jest sobie z tym poradzić i jak ważne jest, aby coś z tym zrobić. Przeżyłem depresję, lęk, chroniczne zmęczenie, stres i wszystkie inne towarzyszące im drobne nieprzyjemności, dlatego dam ci kilka porad w oparciu o następujące doświadczenia:

  • Idź do lekarza i przedyskutuj swoje objawy. Poinformuj lekarza, jeśli jesteś zmęczony, jeśli czujesz się przygnębiony lub zmartwiony przez większość czasu, jeśli często chorujesz na przeziębienie i grypę oraz jak się czujesz fizycznie. Jeśli twój lekarz jest dozwolony, prawdopodobnie otrzymasz leki przeciwlękowe, a nawet przeciwdepresyjne. Nawet jeśli czujesz niechęć, zostaw dumę przy drzwiach i weź je zgodnie z zaleceniami. Naprawdę pomagają i pozwalają znaleźć siłę, by poradzić sobie ze wszystkim, co ma nadejść.
  • Poszukaj dobrego psychologa, aby przedyskutować twój problem, tak jak go znasz, i który może pomóc ci odkryć, co czujesz do tego wszystkiego, i pomóc ci w opracowaniu strategii radzenia sobie z problemem. Niektóre z zadań, które należy wykonać, mogą wydawać się bezcelowe lub nieco nieprzyzwoite. Zrób to mimo wszystko, ponieważ to naprawdę pomaga, szczególnie w uczeniu cię, jak oczyścić umysł.
  • Unikaj tabletek nasennych, chyba że naprawdę ich potrzebujesz, ponieważ możesz stać się od nich zależny i pogorszyć problemy ze snem. Osobiście biorę je tylko wtedy, gdy nie mogę zasnąć, którego potrzebuję po weekendzie, i to zwykle wtedy, gdy miałem leniwy i niespełniony weekend.
  • Sprawdź, jak zmienić dietę. Poważnie odetnij kofeinę, ponieważ tylko przyczynia się do podwyższonego poziomu lęku. Zmniejsz ilość węglowodanów i zrównoważ swoją dietę, a przez to rozumiem bardziej naturalne owoce i warzywa, zmniejszając ilość spożywanego czerwonego mięsa oraz redukując tłuszcze i oleje. Wytnij napoje bezalkoholowe i ogranicz się do jednej filiżanki kawy dziennie, jeśli nie możesz się poddać. Dieta ma kluczowe znaczenie w walce ze zmęczeniem. Zjedz także swój ostatni posiłek wcześniej, aby nie kłaść się spać z pełnym żołądkiem.
  • Ćwiczenia każdego dnia. Co najmniej raz w tygodniu wykonuj forsowny trening i chodź lub jeźdź rowerem przez co najmniej 30 minut każdego dnia, aż do wyczerpania przynajmniej potu. Pomoże to męczyć cię fizycznie, co pomoże ci w śnie i zmęczeniu.
  • Zmień swoje nawyki spania. Staraj się wcześnie wstać do pracy, więc musisz iść spać wcześniej, niż możesz się wydawać. Jeśli nie możesz spać, odpocznij w słabo oświetlonym pokoju i przeczytaj coś nudnego i nie martw się, jeśli nie możesz od razu zasnąć.

Teraz, gdy przejrzałem wszystkie związane z medycyną rzeczy, przyjrzyjmy się, co możesz zrobić ze swoją pracą:

  • Ktoś zasugerował użycie techniki Pomadoro. Jest to również znane jako boks czasowy i myślę, że to dobry pomysł. Zasadniczo koncentrujesz się intensywnie przez 20-25 minut, a potem robisz sobie małą przerwę. Radzę wstać i poruszać się przez około 3-5 minut i spojrzeć w dal, aby odpocząć. W tym czasie staraj się nie myśleć o swoich zadaniach. Wypij drinka, zejdź do łazienki lub po prostu przejdź się po biurze na krótki czas.
  • W zależności od relacji z szefem znajdź sposób, aby poznać i porozmawiać o swoich obawach, że harmonogram pracy wpływa na twoje zdrowie. Daj mu do zrozumienia, że ​​nie chcesz ryzykować rozczarowaniem klienta firmy i że chcesz spróbować opracować strategię, która zapewni kontynuację pracy, ale oznacza to, że potrzebujesz aby znaleźć czas na rozwiązanie twoich problemów zdrowotnych. Wykorzystaj to jednak w ostateczności, ponieważ lepiej byłoby wyjaśnić funkcjonujące tutaj fałszywe gospodarki, takie jak:
    • Zmęczeni pracownicy kończą ze znacznie zmniejszoną wydajnością, podczas gdy niezmęczeni pracownicy są w stanie zrobić więcej w krótszym okresie czasu, a ja postaram się zebrać pewne dane i badania, które można wykorzystać do wsparcia. Z dobrym szefem nie powinieneś tego nawet potrzebować. Następujące artykuły mogą Ci się przydać : artykuł 1 , artykuł 2 , artykuł 3
    • Pominięcie testów i zwrócenie uwagi na niektóre drobne szczegóły będą później kosztować. Punktem wyjścia jest koncepcja długu technicznego .
  • Staraj się skracać godziny pracy do 8 do 9 godzin dziennie.
  • Zarezerwuj okres wakacji i ucieknij na chwilę do spokojnego miejsca. Nawet jeśli wszystko, co robisz, to jechać samochodem do lasu i biwakować przez tydzień. Poważnie, nie róbcie nic przez chwilę, aby naładować akumulatory.

Jeśli chodzi o rzeczy związane z programowaniem:

  • Przeczytaj książki Wyczyść kod i dokonaj refaktoryzacji i poświęć trochę czasu na zastosowanie zawartych w nim technik. Pomogą ci poradzić sobie z kwestią jakości kodu. Jak wspomniałem wcześniej, wydaje się, że wymaga to dłuższego czasu, jednak spędzisz mniej czasu na radzeniu sobie z bałaganem i problemami wynikającymi z wcześniejszej pracy.
  • Znajdź narzędzia, które możesz zintegrować ze środowiskiem programistycznym, aby pomóc Ci w poprawie jakości kodu. Na przykład, jeśli tworzysz w Visual Studio, użycie kombinacji narzędzi takich jak Resharper i NCrunch może przyczynić się do znacznego zwiększenia ogólnej wydajności, jeśli używasz ich religijnie i jeśli stosujesz już dobre techniki opisane w książkach, o których wspomniałem .
  • Napisz testy jednostkowe i zastosuj podejście testowe. Wydaje się, że najbardziej Cię to spowalnia, jednak ogólnie przyśpieszysz rozwój, gdy będziesz mieć testy, ponieważ mogą one przyczynić się do skrócenia czasu debugowania i dać ci pewność zmiany testowanego kodu. Napisz swoje testy, aby spełnić wymagania, a nie kod. Spowoduje to konstruktywne skoncentrowanie wysiłków związanych z testowaniem, co powinno zminimalizować czas poświęcony na testowanie.

Co najważniejsze, musisz zarządzać oczekiwaniami, zaczynając od własnych. Jesteś tylko człowiekiem i możesz tylko tyle zrobić w danym momencie. Musisz zarządzać oczekiwaniami swojego szefa i mieć swojego szefa 9 lub siebie bezpośrednio) zarządzać oczekiwaniami swoich klientów. Oznacza to poważne uszeregowanie pod względem ważności wykonywanej pracy. Przydziel czas na nowe funkcje i czas na błędy, i zakładaj, że terminy się zbliżają. Jeśli chodzi o możliwość przesunięcia terminów dostaw, obiecaj, że dostarczysz tylko zestaw najważniejszych funkcji, a resztę pozostaw jako „miło mieć, jeśli to możliwe”. Następnej daty dostawy, ponownie przechodzisz przez ten proces, zwiększając priorytety „miłych do zrobienia” wcześniejszych dostaw i tak dalej. Wbuduj to w swoją metodologię programowania jako minimalny punkt wyjścia, a następnie dokonaj przeglądu po kilku dostawach, aby zobaczyć, gdzie możesz dostroić swoje procesy i poprawić swoją wydajność. Największa efektywność będzie pochodzić ze zmian stylu życia, jednak zawsze można zrobić niewiele, aby usprawnić pracę, na przykład zmniejszyć koszty związane z dokumentacją i komunikacją między tobą a użytkownikami końcowymi.

Bądź proaktywny w tym wszystkim. Pokaż swojemu szefowi, że oboje możecie pracować razem, aby naprawdę poprawić sprawy, co ostatecznie dobrze odbije się na tobie i całej firmie.

Nie podejmuj teraz żadnych drastycznych decyzji. Poczekaj, aż poradzisz sobie ze swoim zdrowiem i obciążeniem, i zobacz, jak sobie radzisz. Kiedy twój umysł stanie się bardziej przejrzysty i poczujesz, że jesteś w lepszym miejscu, nadejdzie czas, aby zdecydować, czy warto zostać, czy też czas ruszyć dalej. Mówię w zasadzie, aby poradzić sobie z jednym problemem na raz, a resztę pozostawić do duszenia, dopóki nie będą potrzebować twojej uwagi.

S.Robins
źródło
4

Jeśli twój harmonogram jest napięty, musisz być kompulsywny w stosunku do Don't Repeat Yourself . Zidentyfikuj najczęściej stosowane metody i upewnij się, że są one wielokrotnie używane.

Zaplanuj, nad czym dzisiaj będziesz pracować, zapisz to i trzymaj się tego. Spróbuj ograniczyć to, co musisz zapamiętać, do siedmiu lub mniej przedmiotów.

Zrobiłbym jeszcze jeden krok i unikałbym powtarzania innym pracy. W miarę możliwości korzystaj z bibliotek języka. Jeśli to możliwe, używaj bibliotek stron trzecich.

Może wydawać się, że pisanie zajmuje więcej czasu, ale celuj w metody, które robią tylko jedną rzecz. Ograniczam metodę do podejmowania decyzji lub robienia rzeczy. Spójność kodu powinna wzrosnąć, a sprzężenie maleć. Testowanie powinno być łatwiejsze. To dobrze nadaje się do postępującego rozkładu.

Uprość jak najwięcej. Użyj szablonów, list kontrolnych i dowolnych technik, które pozwolą ci uniknąć myślenia o trywialnościach.

Będziesz musiał unikać przerw. Każda przerwa kosztuje około 15 minut zgodnie z harmonogramem. Chroń swój czas.

Jeśli jest to długoterminowe, idź do domu, gdy zauważysz, że wydajność zaczyna się opóźniać. Jeśli nieprzerwanie pracujesz przez 12 godzin, wydajność prawdopodobnie będzie podobna do tego, co osiągniesz w ciągu 8 godzin. Możesz nie zauważyć, jak bardzo pogorszyła się twoja wydajność. Poświęć dodatkowe cztery godziny na ćwiczenia i odpoczynek. Sprawdź, czy możesz zdrzemnąć się w połowie dnia lub wziąć kilka godzin wolnego po obiedzie.

BillThor
źródło
4

Gdybym był tobą, porozmawiałbym z moim przełożonym i wyjaśniłbym, że wyznaczone przez nich terminy są nierealne. Jeśli będziesz tak dalej pracował, będą myśleć, że wszystko jest w porządku, nie będą świadomi problemów, które masz, i będziesz codziennie dodawać coraz więcej słabo napisanego kodu do swojego systemu, co jeszcze bardziej skomplikuje twoją pracę.

Alternatywnie, zawsze możesz przejść do innej pracy :-)


źródło
2

Śledź wszystko, co robisz

Poświęć czas na śledzenie wszystkiego, co robisz i ile czasu spędzasz na tym razem z zespołem. Skończy się to tym, co wnosisz do zarządzania, aby pokazać im, że musisz robić różne rzeczy. Jeśli nie masz zimnych, twardych faktów na temat tego, co robisz i ile czasu spędzasz na rozwiązywaniu problemów zgłaszanych przez innych, o wiele trudniej będzie ich przekonać, że należy wprowadzić zmiany. Każda godzina musi być śledzona przez wszystkich, aby było to dokładne. Można to powiedzieć, że spędziłeś 80 godzin w ciągu ostatnich 3 tygodni na naprawie systemu, który mógł zostać odbudowany od podstaw w tym samym czasie.

Spróbuj zmienić rzeczy

Użyj zebranych danych śledzenia i wspaniałych sugestii innych osób, aby opracować plan ulepszenia oprogramowania. Wybierz części oprogramowania, które powodują najwięcej problemów. Ułóż plan, który Twoim zdaniem przyniesie rzeczy do normalnego tempa zarządzania. Daj czas na pracę.

Przygotuj się na to, że może być czas na wyjazd

Jeśli kierownictwo nie chce zmieniać rzeczy i współpracować z tobą, być może czas pomyśleć o dalszym rozwoju. Zgadzam się z innymi, że się wypalasz. Zacznij przygotowywać swoje CV i portfolio. Sytuacja może się poprawić i nie będziesz musiał iść do przodu, ale jeśli kierownictwo nie zaakceptuje wprowadzania zmian, przejdź dalej. Twoje zdrowie psychiczne i fizyczne jest ważniejsze niż pozostawanie w pracy, która tak bardzo cię wycenia.

Amy Patterson
źródło
Muszę się nie zgodzić z częścią „śledzenie wszystkiego”, ponieważ jeśli dane te zostaną dostarczone do kierownictwa, bardzo dobrze mogą być bardzo krytyczne wobec najmniejszej niedoskonałości w sposobie zarządzania czasem przez pracownika. To spotęguje stres pracownika.
Acumenus
2

Na miłość boską, gdzie jest twój kierownik projektu?

Jeśli nie masz kierownika projektu, który pomógłby ci ustalić produktywny czas, potrzebujesz go. Potrzebujesz osoby zaangażowanej w pilnowanie swojego czasu programowania, ograniczanie zakresu, zarządzanie oczekiwaniami itp.

Wykonujesz kreatywną pracę na życie. Jeśli nie masz bariery między Twoimi klientami / użytkownikami, jak możesz skutecznie skoncentrować się na rozwoju?

Dobry PM może być dobry dla wielu rzeczy ...

1. Aby zagrać w kartę „Wyższej mocy”:

Twoi użytkownicy podsłuchują cię za nowe funkcje, ale naprawdę potrzebujesz trochę czasu, aby skupić się na wydaniu poprawki. Kto powiedział, że musisz porozmawiać z użytkownikami? Czy Twoim obowiązkiem jest napisanie umów? Czy Twoim zadaniem jest zarządzanie oczekiwaniami klientów? Czy masz uprawnienia do podjęcia ostatecznej decyzji, aby dyktować warunki umowy?

Nie? Dlaczego zatem ponosisz wyłączną odpowiedzialność za interakcję z klientem? Rozwój jest trudny i wymaga dużej koncentracji. Potrzebujesz możliwości odzyskania czasu na rozwój i możesz to zrobić z dobrym PM i dobrą wymówką.

Niezależnie od tego, co robi twój PM w porównaniu z tobą, jeśli klienci zaczną cię niepokoić o modyfikacje poza specyfikacją, powiedz tylko.

„Negocjowanie zmian poza specyfikacją jest powyżej mojej kategorii płac ...”

To grzeczny sposób powiedzenia: „Nie daję się jak ***”.

Kontynuuj to, chorując na nich „Scope Creep Dog”.

„Jeśli chcesz wprowadzić zmiany w specyfikacji, musisz skontaktować się z moim premierem”

Teraz zostaw mnie w spokoju. Zdolność użytkownika do bezpośredniej interakcji z programistami jest dozwolona jako przywilej, który można odebrać. Jeśli tak nie jest, Twoje zarządzanie Cię zawodzi.

2. Zarządzanie oczekiwaniami 101

Kto przy zdrowych zmysłach myśli, że możesz pracować tak szalony harmonogram i obsługiwać wsparcie techniczne 24/7. Potrzebujesz kogoś, kto stanie za tobą, ponieważ twój czas jest cenny i powinien być poświęcony twojemu rzemiosłu.

Dotyczy to zarówno klientów, jak i firmy, dla której pracujesz. Jeśli klienci przekraczają granice, zawsze możesz zapytać ...

„Czy ta usługa jest zapisana w umowie?”

Jeśli nie, masz prawo odrzucić wnioski. Nie zrozumcie mnie źle, miło jest zrobić wszystko, aby uszczęśliwić swoich klientów, ale równie ważne jest, aby dać im znać różnicę między tym, czego się spodziewają, a tym, co im dajesz jako przysługę.

W firmie, w której pracujesz, potrzebujesz kogoś, kto niesie wiadomość ...

„Czy praca, o którą jestem proszony, jest równa mojej grupie zaszeregowania?”

To znaczy, czy płacą ci 60 tys. Rocznie, aby spędzić 50% czasu na pomocy technicznej przez telefon, co jest znacznie niższą pozycją płatniczą. Jest to niebezpieczny temat do poruszenia, więc potrzebujesz premiera, któremu możesz zaufać, aby zrobić dla niego dobrą sprawę. Argument, który powinieneś mu przedstawić, to ...

„Zarabiam 60 tys. Rocznie, ale połowa mojej potencjalnej produktywności marnowana jest na pracę służebną”.

Albo mnie zatrudniliście i chętnie tracicie pieniądze na tej inwestycji, spędzając połowę mojego czasu na obsadzaniu niskiej pozycji. Wierzcie lub nie, maksymalizując swój potencjał, mogą w dłuższej perspektywie zarobić więcej pieniędzy.

Jeśli chodzi o biznes, o wiele łatwiej jest przekonać firmę do zmiany pozycji, jeśli potrafisz przedstawić sytuację korzystną dla wszystkich. Nie musisz być mistrzem negocjacji, aby ten mógł się trzymać. Oczywiście, jeśli zasoby firmy są ograniczone, może to odbić się na tobie.

3. Każdy mógł czasem użyć cheerleaderki

Dobry premier będzie naturalnie osobą-osobą. Trzon ich działań stanowią relacje międzyludzkie. Dobry premier będzie mógł powiedzieć klientowi, czego nie chce słyszeć, i nadal będzie szczęśliwy.

Mogą być również doskonałym źródłem wsparcia moralnego, gdy nadchodzą ciężkie czasy. Zwykłe zwiększenie morale nie powinno być zbyt duże dla dobrego PM, jeśli o to poprosisz. Potrzebujesz kogoś po swojej stronie, bo inaczej twoje morale spadnie, a praca będzie przytłaczająca.


Jeśli nie ma kogoś wyższego szczebla w organizacji, który byłby odpowiedzialny za zarządzanie oczekiwaniami, kierownictwo ponosi porażkę, a osoby z wyższego szczebla prawdopodobnie nawet nie zdają sobie sprawy z tego, jak źle działa projekt.

To jest główny powód, dla którego unikam pracy dla korporacji takich jak zaraza. Miałem szczęście pracować dla mniejszych firm, w których mam kogoś wyżej. Mogę szczerze omawiać problemy z tym, kto zachowa poufność tego, co mam do powiedzenia, i w razie potrzeby podejmie działania.

Potrzebujesz kogoś po swojej stronie, który pomoże Ci spełnić wymagania biznesowe i zarządzać rozproszeniem uwagi. Jeśli nie masz tego i nie ma nadziei na znalezienie go w przyszłości, powodzenia ...

Evan Plaice
źródło
1

Wow wow wow ! Trzymaj swoje konie kowboju !. Wygląda na to, że wszystko tam źle się rozwija. Podczas kodowania brakuje niektórych podstawowych zasad oprogramowania. Tak, odświeżyć swoje podstawy ... życie będzie o wiele łatwiejsze.

Wróć do czasu w szkole

  1. Rapid-Rozwój-Oswajanie-Software-harmonogramów *
  2. Mityczny Miesiąc Człowieka *

*Musisz przeczytać

Imran Omar Bukhsh
źródło
2
następne pytanie - jak kodować i jak czytać książki według napiętego harmonogramu :-D
Ventsyslav Raikov
1
@Bond - koleś, powinniśmy już przeczytać tę książkę przed rozpoczęciem projektu. Jeśli nie, musimy zdać sobie sprawę, że ciągłe uczenie się jest częścią naszego rozwoju oprogramowania. Nie powinniśmy myśleć, że czytanie nie jest częścią naszej codziennej pracy. Powinniśmy już codziennie czytać przez jakiś czas. Myślę, że twórcy oprogramowania mają prawo spędzać trochę czasu na czytaniu, nawet w godzinach pracy. Osobiście widziałem, że nawet czytanie zaledwie 5 stron dziennie ma ogromny wpływ. Rozpoczęcie czytania już teraz pomoże Ci zaoszczędzić czas w następnym projekcie.
Imran Omar Bukhsh
absolutnie się z tobą zgadzam, czytam każdego dnia. Ale nie pracuję (co, jak zakładam, oznacza kod w powyższym pytaniu) 12 godzin dziennie. Gdybym to zrobił, zdecydowanie nie czytałbym żadnych książek. Życie to coś więcej niż praca.
Ventsyslav Raikov
@Bond - prawda, ale nie pozostanie wiele życia, jeśli nie działamy we właściwy sposób. W mojej firmie pracuję 5 godzin dziennie. Zrobiliśmy silnik pełzający w około 1,5 roku. Miesięcznie odwiedza nas ponad milion osób.
Imran Omar Bukhsh,
1

Lubię tworzyć listę rzeczy do zrobienia, sortować je według konieczności i bezwarunkowo trzymać się tej kolejności - nawet jeśli mam ochotę zwlekać z niektórymi zadaniami.

Zdziwiłbyś się, ile czasu możesz zaoszczędzić, skracając czas na zastanawianie się nad czym dalej pracować.

Rei Miyasaka
źródło
1

W tej chwili możesz to zrobić

  • Sparuj z kolegą
  • Cały kod, który piszesz lub zmieniasz, musisz zgodzić się na bycie wystarczająco dobrym. Najlepiej jako programowanie parowe, dokonuj przeglądu tylko wtedy, gdy nie możesz sparować programu.
  • nie odstępujcie od tego!

Oznacza to, że przynajmniej to, co robisz odtąd, zostało zatwierdzone przez DWIE osoby, które mogą poprawić te fragmenty kodu.

Co jeszcze można zrobić, zależy od zarządzania. Możesz pokazać im to pytanie wraz z odpowiedziami!


źródło
Muszę zdecydowanie nie zgadzać się z programowaniem par. Nie tak działają niezależni myśliciele czy kreatywne umysły. Nigdy też nie zastępuje oceny zespołu.
Acumenus
1

Blokuj połączenia telefoniczne i stosuj ścisłą zasadę „TYLKO błędy idą do narzędzia do śledzenia błędów”. Następnie twoim pierwszym krokiem jest segregowanie nowo wprowadzonych błędów, usuwanie duplikatów, ustalanie priorytetów i rozpoczęcie pracy nad poprawkami błędów. I upewnij się, że poprawki błędów faktycznie naprawiają błąd i nie wprowadzają nowych błędów.

Jak robisz tę ostatnią część? Ponownie instalując przypadki testowe w istniejącym kodzie. Jeśli masz funkcje, sprawdź, czy wprowadzają i wysyłają to, czego oczekujesz, i czy ładnie zawodzą, jeśli dasz im śmieci. Użyj pewnego rodzaju automatycznych testów interfejsu użytkownika, aby przetestować integrację i wydajność od początku do końca.

Tak naprawdę nie wstajesz z łóżka o 3 nad ranem, aby rozwiązać problemy z kodem, prawda? Jeśli tak, zasługujesz na wszystko, co dostajesz.

Dan Ray
źródło
0

Spróbuj użyć techniki pomodoro . Poza tym mam 3 osobiste zasady, aby wiedzieć, czy piszę dobry czy zły kod, który może okazać się przydatny.

dukeofgaming
źródło
0

Ty i programiści tacy jak ty, to jedyny powód, dla którego mogę wymyślić licencję na tworzenie oprogramowania, na przykład lekarze i prawnicy. W ten sposób licencja może zostać cofnięta z powodu nieprzestrzegania podstawowych dobrych praktyk programowania. Nie tylko ochroniłoby branżę przed niekompetentnymi, ale także ochroniłoby tych kompetentnych programistów przed menedżerami, którzy nalegają, aby ich programiści nie przestrzegali dobrych praktyk.

Do Twojej wiadomości, praktycznie każdy pracuje w napiętym terminie. Jednak programiści, którzy wiedzą, co robią, przestrzegają najlepszych praktyk, ponieważ w dłuższej perspektywie praca jest wykonywana szybciej. Wtedy nie muszą pracować 12 godzin przez 3 lata z rzędu.

Maczać
źródło