Pytanie:
Jak poradzić sobie z grą w obwinianie prowadzoną przez mojego kolegę w biurze?
TheHungryCoder
2018-06-14 19:11:26 UTC
view on stackexchange narkive permalink

Mój kolega (nazwij go Bob) i ja jesteśmy programistami z rocznym doświadczeniem. Nasz CTO uważa, że ​​jestem od niego inteligentniejsza. Od kilku miesięcy oboje pracujemy nad tą samą technologią.

Teraz, gdy Bob napotyka problem, nasz CTO sugeruje konsultację ze mną. W 80 do 90 procentach czasu jestem w stanie rozwiązać jego problem i informuję dyrektora ds. Technicznych, że dostarczyłem Bobowi rozwiązanie.

Teraz zdarzyło się, że ponad 10 razy Bob wdrożył dostarczone rozwiązanie przeze mnie niepoprawnie i natychmiast udaje się do naszego CTO, mówiąc mu, że podane przeze mnie rozwiązanie jest albo nieprawidłowe, albo nie działa.

Słuchając go, CTO zawsze się na mnie złości i każdemu daje mi solidną naganę czas. Incydenty takie jak te wywarły na mnie bardzo złe wrażenie w jego umyśle, że nie wykonuję swojej pracy poprawnie za pierwszym razem i wykonuję poprawną pracę dopiero po 5-6 powtórzeniach i poprawkach.

Teraz z współczucie dla Boba, nigdy nie powiedziałem naszemu dyrektorowi technicznemu, że często nieprawidłowo wdraża moje rozwiązanie. Jeśli powiem mu o nieefektywności Boba, Bob może zostać zwolniony.

Dlatego zawsze milczę, gdy Bob popełnia błędy podczas wdrażania mojego rozwiązania. Ale poziom mojej cierpliwości osiągnął teraz swoje granice i myślę, że nadszedł czas, aby znaleźć rozwiązanie, które mogłoby dać Bobowi lekcję.

Chociaż rozmawiałem z Bobem o tym samym w przeszłości, a on powiedział, że rozumie, ciągle popełnia te same błędy.

Nie chcę się zemścić na Bobie, ale chcę rozwiązania, w którym mogę po prostu trzymać się z daleka od tej gry z obwinianiem. autorstwa Boba, co skutkuje tym, że CTO nic mu nie robi, ale bardzo wpływa na moją reputację.

Czy ktoś może zasugerować, jaka byłaby dobra strategia radzenia sobie w tej sytuacji?

Komentarze nie służą do rozszerzonej dyskusji;ta rozmowa została [przeniesiona do czatu] (https://chat.stackexchange.com/rooms/78923/discussion-on-question-by-dg4-how-can-i-deal-with-the-blame-game-grany-przez-my-co).
Czy próbowałeś poprosić go o skonsultowanie się z Tobą przed przejściem do CTO?
Dlaczego czujesz, że powiedzenie CTO * „Musiałem pomóc Bobowi z X, on robił A i powiedziałem mu, żeby zrobił B” * jest w porządku, ale mówienie CTO * „Musiałem ponownie pomóc Bobowi z X, ponieważ onzrobił C, zamiast B, jak mu powiedziałem "* nie jest OK?
To nie jest gra polegająca na obwinianiu.Tytuł może wymagać zmiany.
Siedem odpowiedzi:
dwizum
2018-06-14 19:39:47 UTC
view on stackexchange narkive permalink

Myślę, że @Neo dostarczył solidnej odpowiedzi, jeśli chodzi o dokumentowanie i skupianie się na faktach, ale myślę również, że możesz pójść o krok dalej. Po prostu udokumentowanie / wskazanie, że implementacje Roberta nie działają, może pomóc ci się zabezpieczyć, ale nie rozwiązuje ostatecznego problemu (kod Roberta jest uszkodzony).

Zasadniczo masz możliwość wsparcia Roberta i przekształć to w doświadczenie edukacyjne dla was obojga.

Twój szef polecił Ci pomóc Bobowi, gdy poprosi Cię o pomoc. Ostatecznie oznacza to, że pomaganie Bobowi jest częścią Twojej pracy. Dajesz Bobowi rozwiązania, a jego implementacje nie działają. Do pewnego stopnia masz pewną odpowiedzialność, aby pomóc mu odnieść sukces. Jest kilka rzeczy, które możesz zrobić, aby zaradzić tej sytuacji:

  1. Zanim dasz Bobowi rozwiązanie, upewnij się, że rozumiesz prawdziwy problem. Często mniej utalentowani programiści skoncentruj się na symptomie, a nie na głównym problemie. Jeśli daje ci symptom do rozwiązania, upewnij się, że oboje zgadzacie się co do pierwotnej przyczyny, zanim rozpocznie się dyskusja na temat rozwiązania.
  2. Gdy masz już na myśli rozwiązanie, upewnij się, że ” dajesz mu to w sposób, który pomoże mu odnieść sukces. Jeśli jest mniej utalentowany od ciebie, możesz brać za pewnik rzeczy, o których on nie wie - jak zbudować lub wdrożyć rozwiązanie, jak skonfiguruj, przetestuj itp. Upewnij się, że Twoje instrukcje są wyraźne i kompletne. Dzięki temu odniesie sukces, zamiast nieustannie ponosić porażki, zanim natknie się na właściwą poprawkę.
  3. Po wypróbowaniu Twojego pomysłu aktywnie pomóż mu przetestować go, zanim będzie miał szansę narzekać, że jest źle. Dzięki temu będziesz mógł „wyłapać” wszelkie problemy, zanim będzie mógł powiedzieć dyrektorowi technicznemu, że Twoje rozwiązanie jest bezwartościowe. Ten krok może obejmować przegląd kodu lub inny przegląd implementacji, ale zdecydowanie powinien obejmować przynajmniej weryfikację, czy rzeczywisty problem został naprawiony.
  4. W ramach sekcji zwłok, gdy rozwiązanie jest już gotowe i działa, omów cały proces z Bobem. Omów, co zadziałało, a co nie podczas implementacji. Udokumentuj powody, dla których musieliście spróbować 5 lub 6 razy, zanim wszystko zadziałało. Udokumentuj swoje rozwiązanie i dlaczego je wybrałeś. Następnym razem, gdy przyjdzie do ciebie po pomoc, możesz zacząć od przejrzenia ostatnich rozwiązań - pomoże to wam obojgu uniknąć ciągłego popadania w te same problemy.

To wszystko może brzmieć jak dużo pracy , ale ogólnie rzecz biorąc, na dłuższą metę łatwiej / lepiej jest robić rzeczy „właściwie” w sposób, który pomaga ludziom uczyć się na błędach, niż po prostu uderzać w najszybsza / najłatwiejsza naprawa. Podsumowując: Jeśli ktoś poprosi Cię o pomoc, upewnij się, że Twoja pomoc jest rzeczywiście pomocna, zamiast po prostu rzucać mu pomysł na kolana i iść dalej.

+1 do tego, chociaż powinieneś dołączyć przegląd kodu implementacji Roberta na 3 lub między 2 a 3.
Słuszna uwaga, zmienię to w.
Wszystko to jest rozwiązaniem problemu głównego, którym jest OP nie komunikuje się skutecznie ... ani z Bobem, CTO, albo najprawdopodobniej z oboma.
Chciałbym móc głosować za tym więcej niż raz.Poświęcenie czasu na właściwe nauczenie rozwiązania oszczędza czas i ból serca w przyszłości.
Jeśli OP ma taki poziom odpowiedzialności za nadzorowanie pracy Boba, w rzeczywistości jest jego przełożonym ... i powinno to być jasno określone przez CTO zarówno Bobowi, jak i OP.Jeśli OP spróbuje zarządzać pracą Boba bez uprzedniego wyjaśnienia tego, istnieje duża szansa, że wywoła urazę.
@AllTheKingsHorses nie jestem pewien, czy w 100% się zgadzam.Istnieje różnica między wyraźnym powierzeniem komuś odpowiedzialności jako przełożonego a poproszeniem go o pomoc w rozwiązaniu problemów.Uważam, że nawet w tym drugim przypadku „pomocnik” ponosi odpowiedzialność za prawidłowe zastosowanie rozwiązania, nawet jeśli nie jest wyraźnie przełożonym innego personelu.Innymi słowy, ** jeśli ktoś poprosi Cię o pomoc, upewnij się, że Twoja pomoc jest rzeczywiście pomocna **, zamiast po prostu rzucić pomysł na kolana i przejść do następnej rzeczy.
Fakt, że CTO jest oczywiście zdenerwowany z powodu powtarzających się niepowodzeń Boba, sprawia, że wydaje mi się, że to oczywiste, iż OP powinien dokładać więcej starań, aby być bardziej dokładnym i pomocnym - stąd odpowiedź.Oczywiście, do twojego punktu, wyjaśnienie wskazówek CTO nie zaszkodzi - ale może być na to trochę za późno, ponieważ wydaje się, że ten schemat powtórzył się już kilka razy, a odczucia CTO są dość dobrze znane.
@dwizum Uważam, że Bob jest odpowiedzialny za prawidłowe wykonanie swoich zadań.Powinien uzyskać pomocne wsparcie od innych pracowników (w tym OP) - ale ostatecznie to on.Ale zamiast wykorzystywać wszystkie dostępne zasoby (w tym OP), aby skutecznie wykonywać swoje zadania, Bob biegnie do dyrektora technicznego i narzeka.Więc coś jest nie tak.Albo zadania Boba nie są tak naprawdę zadaniami Boba, albo Bob nie dba o nie, albo OP ma nadzorować bez powiadomienia, albo CTO jest zbyt zajęty / leniwy / czymkolwiek, aby zarządzać swoimi raportami lub * coś *.Występują tu niezgodne oczekiwania ...
Zgadzam się ... spójrz na przykład, jakby to było coś INNEGO niż programowanie.Jeśli obaj jesteście murarzami kładącymi cegły na ściany ... a Bob potrzebuje ciągłych instrukcji, aby dobrze wykonać pracę, odpowiedzialność zawsze spadnie na was jako „nadzorcę”.Nie ma znaczenia, kto właściwie ułożył cegłę lub źle wymieszał zaprawę, liczy się to, że praca jest źle wykonana i należy ją przerobić.
„Upewnij się, że instrukcje są wyraźne i kompletne”.Jest to zasadniczo niemożliwe.Dzięki technologii przeważnie nie jest możliwe przewidzenie każdego możliwego czynnika, który mógłby wpłynąć na Twoje rozwiązanie.Każde rozwiązanie, które zaproponujesz bez jego samodzielnego wdrożenia, zawsze będzie najlepszym przypuszczeniem.
Uzyskaj oficjalny nadzór nad Bobem.Upewnij się, że Twoje ogólne obowiązki odzwierciedlają związane z nimi obciążenie pracą, więc nie jest to coś, co zabiera niezapomniany czas.Pamiętaj, że wymaga to zgody kierownictwa, więc może nie być łatwe do zdobycia.Jednak łatwe może być ustalenie reguły, że jeśli implementacja nie zadziała, Bob musi przyjść do * ciebie * ** pierwszy *.Zmniejszy to liczbę skarg, które CTO musi składać (więc CTO powinien to polubić), a jeśli Bob złoży skargę do CTO, możesz wskazać naruszenie tej prostej reguły.To proste i oszczędza, nie atakując umiejętności kodowania roota Boba
Wersja TLDR;wymuszaj programowanie w parach i przeglądanie kodu, dopóki nie będziesz zadowolony, że Bob w przyszłości wszystko sobie poradzi.
Neo
2018-06-14 19:26:39 UTC
view on stackexchange narkive permalink

Czy ktoś może mi zasugerować, jaka byłaby dobra strategia radzenia sobie w tej sytuacji?

Dokument, dokument, dokument .

Za każdym razem, gdy musisz posprzątać bałagan Boba, udokumentuj go i skopiuj CTO. To może nie wydawać się najmilszą rzeczą do zrobienia, ale w tym momencie byłbym bardziej zaniepokojony moją reputacją w firmie , aw szczególności wrażeniem dyrektora ds. Technologii o tobie, ponieważ wydajesz się być tym jedynym CTO się złości.

Pamiętaj, dokumentując tego typu działania, tylko zgłaszaj fakty. Nie ma potrzeby upiększania, CTO może połączyć 2 + 2. Robiąc to, szybko zobaczy, kto dodaje więcej wartości, a kto więcej „mówi”.

Nie jest to przyjemne, ale nie widzę innego skutecznego sposobu radzenia sobie z nim.

I jak najbardziej odpowiada dyrektorowi technicznemu.W tym przypadku nie używaj CCO.Chcesz, żeby BOB wiedział, że szef nasłuchuje.
@Mindwin: Zgaduję, że CO = CC i CCO = BCC?(Google sugeruje, że są to odpowiednie hiszpańskie skróty CC i BCC).
Nic nie przyciągnie CTO szybciej niż siatka z 2 kolumnami i wierszami pokazującymi, jakie kroki poleciłeś i jakie kroki Bob faktycznie wykonał (wraz z wynikami nieprawidłowych działań).
@V2Blast - w języku hiszpańskim CC = CC (** Copia de Carbón **), BCC = CCO (** Copia de Carbón Oculta **).Nie wiem, * CO * odnosi się do ... to wygląda na literówkę.
JimmyJames
2018-06-14 21:38:24 UTC
view on stackexchange narkive permalink

Teraz, gdy napotyka problem, nasz CTO sugeruje, że powinien się ze mną skonsultować. W 80 do 90 procentach czasu jestem w stanie naprawić jego problem i informuję dyrektora ds. Technicznych, że dostarczyłem mu rozwiązanie.

...

Słuchając go, CTO zawsze się na mnie złości i za każdym razem daje mi solidną naganę.

To naprawdę się nie zgadza i myślę, że oznacza to, że źle interpretujesz, co jest z ciebie sfrustrowane CTO o. Zgadzam się z twierdzeniem dwizuma, że ​​„pomaganie Bobowi jest częścią twojej pracy”, ale poszedłbym o krok dalej. W rzeczywistości jesteś liderem Boba. Twój dyrektor techniczny nie chce po prostu udzielić Bobowi porady i odejść. Chce, abyś wziął odpowiedzialność za upewnienie się, że praca zostanie wykonana poprawnie. Jestem całkiem pewien, że nadal kieruje Boba do ciebie. Gdyby CTO myślał, że to Ty jesteś problemem, nie zrobiłby tego.

Pomyśl o tym z perspektywy CTO. Bob wchodzi i mówi, że ma jakiś problem. CTO nie ma czasu dla Boba. Wysyła go do ciebie po pomoc. Daj mu jakąś pomoc, Bob jej nie łapie i wraca do CTO. CTO chciałby tylko, żebyś miał do czynienia z Bobem i przejrzał sprawy. Nie chce rozmawiać z Bobem o swoich problemach. Chce tylko, żeby praca została wykonana.

Myślę, że powinieneś szczerze porozmawiać z CTO o tej sytuacji. Zasadniczo są tutaj dwie ścieżki. 1. Bob jest sam. Udaje mu się lub przegrywa na własnych zasługach. 2. Jesteś właścicielem wyniku i jesteś odpowiedzialny za upewnienie się, że to, co robi Bob, jest słuszne. Wydaje się, że CTO chce tej drugiej opcji, ale nie przekazał ci tego jasno. Jeśli ty i Bob jesteście rówieśnikami, może to być dobry moment, aby porozmawiać o awansie. Jeśli jesteś liderem, powinieneś być przynajmniej za to uznany i możesz spodziewać się rekompensaty. Założę się, że już otrzymałeś wyższe wynagrodzenie niż Bob.

Nie należy pozwalać sobie na wślizgiwanie się na stanowisko kierownicze bez odpowiedniego wynagrodzenia (niekoniecznie materialnego / pieniężnego).
@Mindwin W pełni się zgadzam, ale rozróżniam rolę lidera i przełożonego / menedżera, tak jak myślę, że większość HR (przynajmniej w USA) to robi.
„Hej, CTO - zauważyłem, że denerwujesz się na mnie, kiedy Bob ma problemy. Czy ja coś nie rozumiem?Bez zarzutów i SŁUCHAJ odpowiedzi.Nie kłóć się ani nie debatuj.Ta część nastąpi później.W pierwszej dyskusji po prostu SŁUCHAJ.
„Nie należy pozwalać sobie na wślizgiwanie się na stanowisko kierownicze bez odpowiedniego wynagrodzenia” - a na pewno bez odpowiednich uprawnień.Nie możesz dostarczyć bez upoważnienia do wykonywania swojej pracy.
Tom W
2018-06-15 15:03:07 UTC
view on stackexchange narkive permalink

Czy podczas sprawdzania kodu pracy Roberta nie zauważyłeś problemów? Dokonałeś przeglądu kodu, prawda?

Czy podczas testowania pracy Roberta testy wykryły awarie? Wykonałeś zautomatyzowane testy, prawda?

Nic nie trafia do produkcji - ani nawet do testowania, gdzie może to zobaczyć każdy spoza zespołu programistów - dopóki kod nie zostanie sprawdzony . Zaimplementuj proces przeglądu kodu i trzymaj się go . Kiedy Bob robi coś, o czym nie mówiłeś, dowiadujesz się podczas przeglądu kodu i albo ty, albo on, przerabia to, aż będzie to akceptowalne.

Powiedz też Bobowi, że chociaż nadzorujesz, nie odpowiedzialny za jakość swojej pracy; on jest. Każdy programista powinien umieć krytycznie ocenić jakość swojej pracy. Obwinianie cię za coś, co zrobił źle, jest nieprofesjonalne.

Przy dwóch różnych okazjach dwóch inżynierów całkowicie pokonało proces przeglądu kodu.
@Joshua "pokonać" proces?_Dlaczego? _ To nie ma być sprzeczne.Rozumiem, że czasami trzeba pospiesznie załatwić sprawę w nagłych wypadkach, ale ogólnie takie postępowanie w złej wierze spowodowałoby, że poważnie zakwestionowałbym czyjąś przyszłość w firmie.Co się im stało?
„pokonać proces przeglądu kodu” Co to oznacza?
@Tom W: Jeśli zależy Ci na celowym sprawdzeniu złego kodu, to jest to.Znaleźliśmy grupę programistów podpisujących się pod przeglądami kodu bez przeprowadzania ich w sensowny sposób.Przywódca został wyparty przez „konstruktywne zwolnienie”.
Will Ware
2018-06-14 23:53:02 UTC
view on stackexchange narkive permalink

Jest tu już kilka świetnych pomysłów, które warto rozważyć. Oto inna myśl. Kiedy wymyślisz rozwiązanie dla Boba, zamiast je przekazać i zająć się innymi rzeczami, możesz usiąść z Bobem i przez godzinę lub dwie programować z nim w parach. Może to być po prostu sposób na upewnienie się, że dobrze się rozpoczął, lub może się okazać, że w trakcie tego procesu samemu dochodzisz do głębszego zrozumienia problemu.

Organizacje często unikają programowania w parach ponieważ uważają, że praca dwóch inżynierów nad tym samym fragmentem kodu jest marnotrawstwem. Istnieją jednak statystyki wskazujące, że oszczędności wynikające z unikania błędów przewyższają koszt „marnowania” czasu jednego inżyniera. Jeśli myślisz, że możesz to zrobić, możesz przejrzeć literaturę dotyczącą programowania w parach, aby przedstawić argumenty przemawiające za tym z CTO.

+1 I poszedłbym dalej: Ty i Bob możecie * wziąć wspólną odpowiedzialność * za problem, zakodować rozwiązanie za pomocą programowania parami i przesłać rozwiązanie, gdy oboje będziecie z niego zadowoleni.
Little Girl
2018-06-15 07:02:53 UTC
view on stackexchange narkive permalink

Masz już tutaj świetne odpowiedzi. Mam kilka drobnych dodatków:

Podczas nauczania lub dostarczania Bobowi rozwiązań pamiętaj, że nie wszyscy komunikujemy się ani nie uczymy się w ten sam sposób, więc jest to coś, czego uczysz w sposób, który Twoim zdaniem byłoby to zrozumiałe, może nie być zrozumiałe dla Boba. Dobrym sposobem, aby się tego dowiedzieć, jest poproszenie Boba o powtórzenie wszelkich instrukcji lub informacji, które mu przekazałeś, własnymi słowami, aby upewnić się, że dobrze Cię zrozumiał.

Inną rzeczą, która może być dobrym pomysłem, byłaby aby zaangażować stronę trzecią, najlepiej kogoś, kto może być bezstronny lub bezstronny i działać jako mediator lub doradca Bob i Ciebie. Jeszcze lepiej byłoby, gdyby osoba trzecia została uznana za profesjonalistę na równi z Bobem, aby Bob czuł się bardziej komfortowo.

Dynamika grupy byłaby zupełnie inna niż to, co Ty i Bob macie, kiedy jesteście tylko we dwoje. W tej chwili jesteś dawcą i on jest biorcą lub jesteś nauczycielem i on jest uczniem - tak czy inaczej, to nie jest przepis na bliskość, więź czy komfort, a może nawet powodować niezręczność, która jest wystarczająco silna, aby uniemożliwić mu słuchanie razy, gdy jest zajęty w swojej głowie.

W grupie Bob ma szansę zidentyfikować się z osobą trzecią, a nawet wziąć od niej kilka wskazówek. Otwiera to możliwość dla strony trzeciej podania przykładów zadawania pytań, parafrazowania tego, czego nauczono, a nawet teoretyzowania na temat kreatywnych sposobów wykorzystania nowo zdobytej wiedzy, aby pokazać, w jaki sposób może być pomocna.

Moja dwójka centów.

Jonathan Rosenne
2018-06-16 22:14:52 UTC
view on stackexchange narkive permalink

Jako menedżer na poziomie C, jeśli to potrwa zbyt długo, zwolnię was obu. Wszyscy pracownicy firmy muszą być jako grupa zaangażowani w realizację celów firmy. CTO dba o osiągnięcie celów firmy i poprosił cię o pomoc Bobowi, więc chce, abyś pomógł Bobowi i rozwiązał problem, i oczekuje, że jesteś w stanie to zrobić. Nie obchodzi go, kto jest winny. Jest zły, ponieważ problem nie został rozwiązany i zamiast tego, żebyście go rozwiązali, tracicie jego czas na swoje drobne kłótnie. Dotyczy to was obojga, więc rozwiążcie to między sobą jako dorośli.

To naprawdę zła odpowiedź.Gdybym otrzymał to stanowisko od menedżera na poziomie C, musiałbym tylko zgłosić, że nie mogę naprawić umiejętności Boba.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 4.0, w ramach której jest rozpowszechniana.
Loading...