Jak wyjaśnisz źródło zidentyfikowanego problemu, nie czyniąc go „wymówką”? [Zamknięte]

14

Ćwicząc (przynajmniej w miarę możliwości) „programowanie bez ego”, koncentruję się na rozwiązywaniu problemów z tym, kto napisał powiązany kod (jeśli ta osoba nie tworzy niebezpiecznego kodu) i lubię w pełni rozumieć problem, aby mieć pewność aby rozwiązać źródło tego problemu.

Jednak gdy ktoś wskazuje mój kod, aby pokazać błąd, często próbuję zapamiętać mój sposób myślenia podczas pisania kodu usterki i staram się wyjaśnić facetowi, który wskazuje błąd, aby wyjaśnić, jakie było źródło błędu (na przykład, gdy niektóre nazwiska są źle wybrane, możesz użyć ich w sposób, w jaki nie były zamierzone iz widocznym sukcesem ...).

Teraz robię to odruchowo i większość moich współpracowników rozumie ten odruch. Ale pracowałem również w firmach, w których współpracownicy obwiniali ludzi, którzy sprawiali zidentyfikowane problemy, z humorem lub bez (dla mnie i tak ma to samo nieszablonowe działanie).

W tego rodzaju środowisku wyjaśnienie, dlaczego musisz pisać zły kod, sprawia, że ​​inni myślą, że próbujesz stworzyć wymówkę. Zauważyłem, że większość nietechnicznych osób (lub osób niebędących ekspertami w dziedzinie, nie jestem pewien, to tylko osobiste doświadczenie) również reaguje dokładnie tak, gdy próbujesz wyjaśnić, dlaczego zrobiłeś coś złego.

A zatem, kiedy radzisz sobie z tego rodzaju ludźmi / środowiskiem, jak udaje ci się wyjaśnić prawdziwe źródło błędu, nie wyglądając jak „usprawiedliwienie”? (i czy w ogóle warto próbować wyjaśnić?)

Klaim
źródło
zdarzyło mi się to (w sprawach nietechnicznych) podczas wywiadu HR ... nie jest fajne: /
Matthieu M.
1
możliwy duplikat Uzyskiwanie nieprogramiści zrozumienia procesu
programowania

Odpowiedzi:

10

Myślę, że to tylko kwestia dopasowania słów do tego, co czujesz w środku, i umieszczenie na pierwszym miejscu tego, co najbardziej odczuwasz (bez ego rozwiązywania problemów). Kiedy współpracownik wskazuje straszliwą zmienną nazwę, możesz powiedzieć „Byłem naprawdę zmęczony tego dnia” lub możesz powiedzieć „Masz rację, to jest okropne imię; Byłem naprawdę zmęczony tego dnia”. lub „To ja to zrobiłem; tego dnia byłem naprawdę zmęczony”. lub „Dzięki za znalezienie tego dla mnie; byłam bardzo zmęczona tego dnia”. Itd. Jeśli prowadzisz z powodu, to brzmi jak wymówka. Jeśli poprowadzisz posiadanie pomyłki, dziękujesz komuś za znalezienie go lub po prostu się z nim zgadzasz, powód nie brzmi jak wymówka.

Jako bonus, kiedy to ćwiczysz, prawie na pewno nie będziesz musiał wyjaśniać tych sytuacji: „Byłem zmęczony, nie sądziłem, że ktokolwiek mógłby to wykorzystać, spieszy mi się”. Nadal możesz go używać do „dobrze, że sprzedaż nigdy nie wspominała, że ​​powiedział użytkownikowi, że funkcja zostanie dodana, Bob nie wyjaśnił mi tego poprawnie, jeśli Joe wybrałby lepszą nazwę zmiennej, miałbym rację, działał, dopóki nie zmieniono specyfikacje ”, kiedy może być konieczna pierwotna przyczyna i podstawowa analiza zmian.

Kate Gregory
źródło
Myślę, że to najlepsze rozwiązanie. W końcu będę miał więcej czasu i energii skupiając się na uzgodnieniu i naprawieniu problemu i wyjaśniam tylko źródło problemu, o którym myślałem, gdy go o to zapytałem. W końcu domyślnie jestem jedynym, który się tym przejmuje. Jeśli ich to obchodzi, to chyba spytają.
Klaim
12

Tego rodzaju nieporozumienia są powszechne wśród pragmatyków i idealistów. Pragmatycy myślą tylko: „coś poszło nie tak ... kogo możemy winić?” Idealiści już próbują dowiedzieć się, jak zapobiec temu błędowi.

Po południu Ashton dostał się do San Francisco. Zabrał SuperShuttle do Fisherman's Wharf i, głodny, poszedł do restauracji i zamówił duży stos naleśników.

Właśnie wtedy konsekwencje porzucenia dawnego życia w Michigan naprawdę zaczęły się zapadać. Nie miał pracy, nie miał gdzie spać, jego samochodu już nie było, był winien 40 000 dolarów pożyczek studenckich i miał dokładnie 173 $ w portfelu.

Ale goll-ee, z pewnością mają w San Francisco ładne kelnerki, pomyślał, podziwiając truskawkowe loki przypominające wygląd Molly Ringwald stojące przy kasie. Może nieco ponad pięć stóp wysokości. Szalone Piegi.

Podczas gdy Ashton patrzył na nią z opuszczonej restauracji, weszło kilku dobrze ubranych chłopców i zaczęło z nią rozmawiać. Może turyści czy studenci? Czy były tu jakieś szkoły? W San Francisco muszą być szkoły. Nie słyszał, co mówią, ale wydawało się to trochę bardziej skomplikowane niż „czy możemy postawić stolik i kupić naleśniki”.

„Molly” wyjęła torebkę i grzebała w kółko. Dała dzieciom trochę pieniędzy. Rozmowa była kontynuowana. Próbowała zadzwonić; nikt nie odpowiada. W końcu otworzyła kasę i odliczyła dość dużo pieniędzy, które im dała.

„To dziwne” - pomyślał Ashton, ale zapłacił czek i przeszedł przez ulicę do kafejki internetowej, by poszukać mieszkania na Craigslist.

Pierwszą rzeczą, która go uderzyła, było to, że ceny mieszkań były szalone. Po powrocie do Michigan płacił 475 USD za naprawdę ładną sypialnię, ale w San Francisco wydawało się, że jest potrójnie. Bez pracy nie był nawet pewien, czy ktoś by go wynajął. Kiedy zastanawiał się nad tym problemem, zauważył, że kelnerka z placka wychodzi, wyraźnie zrozpaczona. Usiadła na przystanku autobusowym i zaczęła płakać.

Teraz stary Ashton nigdy, nigdy nie pójdzie po prostu na przypadkową dziewczynę na ulicy, a przynajmniej tę płaczącą, ale magiczne zaklęcie San Francisco w jakiś sposób sprawiło, że stracił zahamowania, więc kupił dwie filiżanki herbaty miętowej , poszedłem na przystanek autobusowy, usiadłem obok niej i powiedział: „Wydaje mi się, że mam dodatkową filiżankę miętowej herbaty. Chciałbyś to?"

Dziewczyna spojrzała na niego zakłopotana, a potem trochę się zaśmiała.

- Przepraszam - powiedział Ashton. „Zwykle tego nie robię. Widziałem cię pracującego w IHOP, a potem, kiedy cię tu widziałem ... Och. Nawiasem mówiąc, jestem Ashton. Z N. ”

„Jestem Becca”, powiedziała. „Z M.”

Ashton powiedział: „M milczy, zakładam?” Trochę się śmieją. Becca pociąga nosem. Ashton znajduje chusteczkę w kieszeni płaszcza, co jest śladem życia w naprawdę zimnym klimacie.

Zaczynają rozmawiać. Okazuje się, że Becca właśnie została zwolniona.

„Ten głupi starzec. Nie chciał mnie słuchać! Wyjąłem trochę pieniędzy z kasy, żeby ratować własnego syna, ale nie chciał o tym słyszeć. Po prostu założył, że go ukradłem.

"Co?"

„Cóż, te dzieciaki weszły do ​​restauracji, były koleżankami ze szkoły Daryla, syna pana Dimitriousa.”

„To jest właściciel?”

"Dobrze. W każdym razie te dzieciaki wydawały się miłe, powiedzieli, że niektórzy handlarze narkotyków wkurzyli się z jakiegoś powodu na Daryla i potrzebowali 200 $, aby go uratować. ”

„Uratować go przed czym? Nie rozumiem Jak to działa?" - zapytał Ashton. To nie brzmiało jak prawdziwa historia. Ale może tak właśnie było w Kalifornii.

„Dałem im 40 dolarów, ale bardzo nalegali, że jeśli nie wymyślą 200 $, Daryl zostanie skrzywdzony. Nie mogłem skontaktować się z panem Dimitriousem przez telefon i przestraszyłem się, więc wyjąłem z rejestru 160 dolarów i podałem im. Ale kiedy próbowałem mu to wytłumaczyć, po prostu się wyrzucił i nie chciał mnie słuchać. Próbowałem mu powiedzieć, że Daryl ma kłopoty i chciał tylko o tym mówić, że go okradam. Jak mógł mnie zwolnić za próbę pomocy własnemu synowi? Co jest nie tak z tym mężczyzną? ”

Ashton był prawie pewien, że Becca właśnie został oszukany, ale nie był w stanie zmusić się, by jej to złamać. I chociaż była wyraźnie zdenerwowana, naprawdę lubił z nią rozmawiać, więc kontynuował rozmowę. Zaczął gadać o tym, że kiedy pracował w firmie meblarskiej w Michigan, wszyscy musieli wziąć udział w kursie „Five Whys”. Chodziło o to, że za każdym razem, gdy coś poszło nie tak, trzeba było zapytać, dlaczego należy uzyskać natychmiastową przyczynę. Następnie zapytałeś dlaczego, aby dowiedzieć się, co to spowodowało, i robiłeś to około pięć razy, aż znalazłeś problem z rootem.

„Więc na przykład zostałeś zwolniony. Dlaczego? Ponieważ w kasie brakowało pieniędzy. Dlaczego? Ponieważ dałeś to niektórym dzieciom. Dlaczego? Ponieważ powiedzieli ci, że Daryl ma kłopoty. Dlaczego?"

„Czekaj, dlaczego co?” Zapytała Becca.

„Dlaczego powiedzieli ci, że Daryl ma kłopoty?”

Becca myślała przez chwilę.

„Zostałem oszukany, prawda?”

„Myślę, że może to zrobiłeś.”

Becca milczała przez naprawdę bardzo długi czas. Potem zaczęła się śmiać, co zaraziło Ashton i oboje śmiali się jak szaleni, a po stresującym dniu czuła się świetnie.

„Jesteś totalnym kujonem” - powiedziała. „Pięć powodów.” Musiał się zgodzić.

Dobrze się bawili. Chodzili po całym North End i rozmawiali godzinami. Powiedział jej o byciu programistą i firmie meblarskiej oraz o tym, że w ciągu dwóch lat nie miała znaczenia żadna rzecz, którą robił w pracy, i miał już tego dość, i zaczął nowe życie, i oto był, bez miejsce na nocleg w zimową noc w San Francisco.

- O rany - powiedziała Becca - znam tylko to miejsce. Mieszkam w dużym wspólnym domu w Russian Hill. Teraz jest pusty pokój.

„Gdzie jest rosyjskie wzgórze?” - zapytał Ashton.

"To nie jest daleko. Zabiorę cię. Ale poczekaj ... czy nie masz nic przeciwko czekaniu, abym mógł spróbować jeszcze raz, aby odzyskać moją pracę?

Ashton był szczęśliwszy niż przez cały dzień. Rzeczy naprawdę mają sposób na wypracowanie.

"Pewnie!" powiedział, prawie zawroty głowy. „Chwilkę”. Wyjął z portfela 160 dolarów, pozostawiając dokładnie trzy dolary, i dał go Becce i powiedział: „Weź to, może ci pomóc odzyskać pracę”.

„Och, nie mogłem!” powiedziała, ale Ashton nalegała, a oni zgodzili się spotkać za pół godziny na Schodach Rzymu na Columbus Ave., gdzie Ashton poszedł usiąść i wypił filiżankę espresso, a Becca wróciła do restauracji.

I stało się trochę późno.

I minęła godzina, potem druga, a włoski kelner najwyraźniej zakochał się w Ashtonie, więc nie zawracał mu głowy zamówieniem jednej kawy i godzinnym siedzeniem przy stole, i jest północ, potem jest pierwsza, potem jest druga w nocy, a kelner w końcu mówi: „Słuchaj, przepraszam, zamykamy się, musisz wyjść”.

Joel Spolsky
źródło
6
Hej, Joel, są tutaj naprawdę świetne pomysły ... może powinieneś rozważyć blog?
Macneil,
2
-1 za kolejny brak odpowiedzi. To nie jest przemyślana odpowiedź na złożone pytanie, ale raczej trwający wrak pociągu.
Josh K
2
@Macneil: To? To wędrówka i bałagan. Farsa odpowiedzi. Szanuję Joela i myślę, że napisał kilka porządnych rzeczy. To? To jest żart.
Josh K
2
@ Bob: Pytające umysły powinny szukać odpowiedzi gdzie indziej.
Josh K
1
@sharptooth: OP upomina swoje wewnętrzne myśli o swoich błędach ludziom, którzy nie dbają o to, co myśli i po prostu chcą, aby ich błędy zostały naprawione. To marnowanie czasu bez znaczenia, podobnie jak bezsensowna historia kudłatego psa Joela. Joel wziął to, co robi OP, i przetłumaczył to na kontekst SE, i pokazał, że to naprawdę irytuje wszystkich oprócz osoby wykonującej bełkot. Nie ma moralny w historii; historia jest moralna.
Bob Murphy,
6

Wydaje mi się, że najlepszą opcją byłoby przyznanie się do problemu i obietnica szybkiego rozwiązania problemu. Ludzie w ogóle nie są zainteresowani, dlaczego i jak popełniłeś błąd, jedynym wyjątkiem jest twój menedżer, ponieważ musi on stale oceniać twoje dopasowanie zawodowe.

Jeśli chodzi o obwinianie tego, który popełnił błąd, leży to w ludzkiej naturze i nic na to nie poradzisz. Najlepszą radą jest zbudowanie bariery mentalnej i postaraj się nie brać jej zbyt osobiście, aby ich krytyka nie „dotknęła” ciebie. To trudne.


źródło
6

Krótka odpowiedź: nie

Jest szansa, że ​​ktokolwiek wskazuje błąd, nie jest zainteresowany, dlaczego jest on błędny, po prostu chce go naprawić. Ten fakt, że chcesz dowiedzieć się, dlaczego popełniono błąd i czego możesz się z niego nauczyć, a tym samym poprawić, jest godny pochwały, ale ktokolwiek wskazuje na błąd, prawdopodobnie nie jest zainteresowany usłyszeniem twojego wewnętrznego monologu.

rób to, co robisz, pomaga to ulepszać. Ale nie rób tego głośno przed użytkownikiem.

Steven A. Lowe
źródło
Dokładnie tak. Jeśli kelner w restauracji przynosi mi czyjś posiłek, chcę tylko, żeby go zabrał i przyniósł mi mój posiłek tak szybko, jak to możliwe. Nie chcę słyszeć, dlaczego to zrobił.
Bob Murphy,
@ Kllaim: Po prostu powiedz: „Przepraszam za problem. Naprawię go”. To wszystko, co powinieneś powiedzieć, ponieważ to wszystko, na czym zależy większości ludzi.
Bob Murphy,
@Bob Murphy, po co zawracać sobie głowę „przepraszam?” Dlaczego po prostu nie powiesz: „Zauważyłem, następny?” Przepraszamy jest częścią cyklu obwiniania. Jest zepsuty i musi zostać naprawiony. Nie ma za co przepraszać.
Dan Rosenstark,
@Bob Murphy: Tak, rozumiesz, przepraszam, że jest używany zbyt często, i zwykle nie oznacza to, że komuś jest przykro - to tylko hasło do protokołu. Czy potrzebujemy słów kluczowych protokołu, w których rzeczywiste działanie i postawa są rzeczywiście potrzebne?
sharptooth
1
@Steven: Całkowicie się zgadzam. W rzeczywistości często uważam, że polityka amerykańska skorzystałaby na powrocie do pojedynków.
Bob Murphy,
1

Niezależnie od tego popełniłeś błąd, więc powinieneś to przyznać. Być może miałeś nieskończenie małą szansę na uniknięcie go, ale napisałeś go i został wydany.

Dlaczego w kontaktach z osobami nieposiadającymi żadnej dziedziny ani wiedzy technicznej podajecie szczegółowe wyjaśnienia? To brzmi jak wymówka lub wytłumaczenie, które znajduje się nad ich głowami, które będą interpretować jako wymówka.

JeffO
źródło
0

Pod wieloma względami nie sądzę, że można uniknąć tego konfliktu.

Wyjaśnienie uzasadnienia, w jaki sposób dotarłeś do punktu, w którym jesteś, jest ważne w zrozumieniu „dużego obrazu” wokół problemu w wielu przypadkach, ale zawsze znajdą się ludzie, którzy uznają to za usprawiedliwienie.

Wybór osoby, z którą prowadzisz rozmowę, jest najbliższy temu, jak mogłem poradzić sobie z tym problemem. Ogólnie rzecz biorąc, sprowadza się to do tego, aby nie rozmawiać o tym z ludźmi biznesu i omawiać je tylko z osobami, które będą zaangażowane w rozwiązanie techniczne.

Nawet takie podejście czasami zawodzi, ponieważ dzisiejsze zło często wiąże się z poprzednim wymogiem, a i tak dostajesz narkotyki.

Ogólnie staram się nie przejmować się tym zbytnio, ponieważ jeśli ludzie wybiorą to jako kwestię, która ma na twój temat problem, prawdopodobnie są wystarczająco zmotywowani, znajdą inny problem, gdy tylko „poprawisz” ten problem.

Rachunek
źródło
0

Weź za to odpowiedzialność. Steven Covey określa to jako zdolność do reagowania : twoją zdolność do reagowania. Powiedz, co będziesz robić w przyszłości, aby zapobiec ponownemu zrobieniu czegoś takiego, i kontynuuj. Ogólnie rzecz biorąc, powinieneś martwić się swoją długoterminową reputacją, a nie bezpośrednim momentem.

Jeśli popełnisz błędy, ludzie to docenią i bardziej cię uszanują. To daje większą wiarygodność, gdy coś nie jest błędem (lub przynajmniej nie własne) i nie potrzebują wyjaśnień.

Ponadto, nawet jeśli nie został dobrze dostarczony, weź to jako konstruktywną informację zwrotną i dziękuj temu, kto zauważył problem. Jeśli nie masz pewności, co mówią o tym, że kod jest nieprawidłowy, zadaj pytania uzupełniające.

Macneil
źródło
Nie jestem pewien, czy twoja odpowiedź odpowiada bezpośrednio na moją odpowiedź. Biorę odpowiedzialność za problem i staram się zapewnić dobre rozwiązanie, ale aby to zrobić, najpierw muszę dowiedzieć się, dlaczego źle zrobiłem kod. Cokolwiek by to nie było, to wyjaśnienie (a może sam fakt, który warto wyjaśnić?), Które wydają się wywoływać „wymówki”, wycinanie zdań, które po prostu powstrzymują cię przed próbą wyjaśnienia czegokolwiek. To powiedziawszy, nie jest to dla mnie duży problem, ponieważ wciąż mogę rozwiązać problem, ale raczej chodzi o problem z komunikacją.
Klaim,
Chęć „wyjaśnienia” próbuje uratować twarz. Mówię, że powinieneś to zrobić w inny sposób. Nie odpowiadam na twoje pytanie powierzchownie, pomagam ci z podstawową przyczyną.
Macneil,
0

Oto co mówisz:

„Biorę na siebie pełną odpowiedzialność. Zrobię co w mojej mocy, aby to naprawić i nie zrobię tego w przyszłości.”

Co więc ktoś może powiedzieć? Albo akceptują to, co powiedziałeś, i idą dalej, albo dyscyplinują cię. Otóż ​​to. To nakłada na nich obowiązek zrobienia czegoś lub, jak powiedziałem, przejścia dalej.

Jasio
źródło
Nie tak dobrze, gdy przyczyną twojego błędu jest błąd innej osoby, który również musi zostać naprawiony.
Kate Gregory
@kate możesz być zaskoczony, jak bardzo osoba odpowiedzialna może uciec.
Johnny
Nie obawiam się, że ci to nie ucieknie, obawiam się, że nikt nie podejdzie do drugiego faceta i nie nakłoni go, by przestał robić to, co zrobił źle, nie zmieni tego, czy coś takiego. Przyczyną jest często ( prawie zawsze) o wiele ważniejsze niż to, za kogo winić
Kate Gregory
@kate zależy od przełożonych i atmosfery. Zawsze mógł powiedzieć, że biorę pełną odpowiedzialność za to, co robię.
Johnny
Mógł także powiedzieć: „Przepraszam, że jest problem. Będę współpracować z innymi członkami mojego zespołu, aby go naprawić”.
Bob Murphy,
0

W większości przypadków występują błędy, ponieważ programista zapomina rozważyć wszystkie przypadki. Czasami piszesz kod, mając na uwadze jeden scenariusz, a drugi scenariusz się nie udaje. W takim przypadku, jeśli ktoś zapyta, twoja odpowiedź powinna brzmieć „Ta sprawa nie została rozpatrzona. Pozwól mi ją poprawić, a my udokumentujemy, że każdy, kto dotyka tej części kodu, powinien również kodować zgodnie z tą sprawą”.
Zwykle popełnianie błędów nie jest problemem, ale powtarzanie ich jest problemem. Dlatego gdy ktoś pokaże ci błąd, powinieneś powiedzieć: „Dzięki za odkrycie tego. Naprawię to i wspomnę o tym w wytycznych dotyczących kodowania”.
Ale jeśli ktoś ciągle znajduje głupie błędy i jeśli ci to przeszkadza, to za każdym razem, gdy zmieniasz kod, idź do tej osoby i powiedz mu, aby sprawdził kod pod kątem błędów. Pewnego dnia stanie się sfrustrowany i przestanie.

Manoj R.
źródło
1
Jeśli ktoś wciąż znajduje głupie błędy w kodzie, należy dokładnie sprawdzić swoją pracę, zanim przeszkadza tej osobie w sprawdzaniu błędów. Celem jest wyeliminowanie błędów, więc nie udaje się sfrustrować kogoś, kto próbuje poprawić jakość.
Adam Lear