Pytanie:
Odpowiedź na sugestię dotyczącą poprawki, która mówi tylko o zgłaszaniu błędów (nie sugerowaniu rozwiązań). Czy to typowe?
MortysFriend
2018-06-21 09:20:01 UTC
view on stackexchange narkive permalink

Jestem nowym pracownikiem w firmie programistycznej i zobaczyłem wiadomość e-mail wysłaną do współpracownika od właściciela systemu, ale z całym zespołem programistów dali znać, co spowodowało, że trochę się martwiłem o środowisko. Niedawno skończyłem college, więc to moja pierwsza praca, więc ... czy to normalne w firmach technologicznych?


Wysłane do Ricka i listy mailingowej zespołu deweloperów:

Cześć Rick,

Uruchomiłem valgrind na platformie SpaceShip i myślę, że znalazłem wyciek pamięci w części kodu platformy. Uważam, że znalazłem źródło i problem można naprawić za pomocą poniższej różnicy:

  --- a / spacehip / DoBattle.cpp +++ b / spacehip / DoBattle.cpp vector<part> parts = getSpaceShipParts (); + shared_ptr<SpaceShip> p = nowy SpaceShip (części); -SpaceShip * p = nowy SpaceShip (części); EngageInBattle (p, wróg);  

Ponownie uruchomiłem valgrind ze zmianą i wydaje się, że rozwiązuje problem!

Dzięki,
Morty

Wydaje mi się, że całkiem rozsądny e-mail, na który odpowiedział:

Cześć Morty,

Dziękuję, ale w przyszłości po prostu podaj informacje o tym, jak odtworzyć problem, a nie sugerowane rozwiązanie. Nie czytam sugerowanych poprawek, ponieważ predysponują mnie do konkretnego wyobrażenia o tym, na czym polega prawdziwy problem i jaka powinna być poprawka. Lepiej pójdę na świeżo i sam zdecyduję.

W przypadkach, w których przypadkowo przeczytałem różnicę, zanim zdałem sobie sprawę, co to jest, celowo spędzam co najmniej kilka dni na próbach zapomnienia, aby móc przejść do tego na nowo. Więc danie mi różnicy tylko zwiększa prawdopodobieństwo, że przez jakiś czas nawet nie będę patrzeć na problem.

Dziękuję,

- Rick

Komentarze nie służą do rozszerzonej dyskusji;ta rozmowa została [przeniesiona do czatu] (https://chat.stackexchange.com/rooms/79214/discussion-on-question-by-mortysfriend-is-this-tone-unusual-in-a-tech-workplace).
Ten rodzaj komunikacji jest bardzo rzadki, ale niestety często zdarza się, że każda firma / zespół ma członka, który tak naprawdę nie funkcjonuje w zespole lub jest wszechwiedzący i tak dalej.Zasadniczo, o ile nie występuje to w przypadku większości twoich kolegów, po prostu staraj się unikać tej jednej osoby i powinno być dobrze.
Jedenaście odpowiedzi:
mxyzplk - SE stop being evil
2018-06-21 09:25:50 UTC
view on stackexchange narkive permalink

Nie, to nie jest normalne. Spotkaliście jednak dość pospolitą bestię, elitarnego programistę z super uprawnieniami. Jest mądrzejszy niż wszyscy inni w swoim umyśle i ma prawo być niegrzeczny z tego samego powodu. Ma topór do ocierania z Morty'm. Unikaj go, jeśli to możliwe, i idź dalej.

Chociaż z pewnością ma on prawo do samodzielnego zbadania problemu, cywilizowana odpowiedź brzmi: „Dzięki za sugestię, przyjrzę się temu”. Może wcześniej istnieć zła krew między nimi lub może być po prostu zdziczały, ale w obu przypadkach, chociaż takie zachowanie nie jest nieznane w technologii, jest nie do przyjęcia lub „zwyczajne”.

Komentarze nie służą do rozszerzonej dyskusji;ta rozmowa została [przeniesiona do czatu] (https://chat.stackexchange.com/rooms/79213/discussion-on-answer-by-mxyzplk-is-this-tone-unusual-in-a-tech-workplace).
Najmniejszą poprawką, którą chciałbym dodać, jest to, że OP jest przyjacielem Morty'ego, a nie złośliwym Morty.
To nie jest poprawka, Rick ma problem z Morty w tym przykładzie.Przyjaciel Morty'ego jest operatorem, ale jest tylko obserwatorem.
hyde
2018-06-21 12:41:21 UTC
view on stackexchange narkive permalink

Jako programista uważam, że pierwszy raport jest bardzo przydatny. Żadnego długiego wyjaśnienia, żadnego długiego śladu valgrind do przeczytania. Dzięki tej poprawce mogłem od razu zobaczyć, na czym polega problem, a gdybym pracował nad tym kodem niedawno, prawdopodobnie wiedziałbym, czy jest to poprawna poprawka, czy nie, nawet bez sprawdzenia kodu. Więc odpowiadałbym po prostu „Dziękuję za złapanie” lub „Dziękuję, ten wskaźnik nie powinien być udostępniany, ale wiem, jak rozwiązać ten problem teraz, gdy zwróciłeś mi na to uwagę” lub coś w tym rodzaju.

Poza tym nie dostrzegam w wiadomości żadnego poczucia wyższości.

Teraz CC''Każdy może być zły lub nie. Kod może być czymś, o czym wiedzą również inni, więc jeśli lista odbiorców CC jest wystarczająco krótka, to dobrze. Mail jest wystarczająco krótki i każdy może od razu zobaczyć z łatki, czy powinien być zainteresowany, czy nie, marnując tylko trochę czasu. Jednak jeśli są ludzie, którzy nie są zaangażowani w tę bazę kodu źródłowego w CC, to było to niewłaściwe.

Inną kwestią jest to, czy dana osoba powinna spędzać czas na debugowaniu takiego problemu. Jeśli jednak nie osiągają własnych celów, przejęcie odpowiedzialności za całe oprogramowanie, takie jak to, jest na ogół bardzo cenną cechą. Pokazuje entuzjazm i troskę, naprawdę rzadką rzecz. Te rzeczy mogą zajść za daleko, ale o wiele częściej spotyka się kolegów z zespołu, którzy nie mogliby mniej przejmować się błędem w czyimś kodzie, chyba że miał on na nich bezpośredni wpływ.


Aby odpowiedzieć tytułowe pytanie. Ton Morty'ego w przedstawionym tu brzmieniu jest moim zdaniem profesjonalny i normalny. Ton Ricka ... niestety też nie jest taki niezwykły, ale niefortunny. Wszyscy mamy jednak złe dni, więc nie będę dalej analizować ani jednej anonimowej wiadomości. Może to być zły znak (i ​​wygląda na to, TBH) lub może być częścią całkiem przyzwoitej kultury pracy, do której wystarczy się przyzwyczaić.

„CC'ing każdy może być zły lub nie” - gdyby wiedzieli, jak Rick zachowuje się w takich sytuacjach, CCing każdy czuje, że jest to najbardziej odpowiedni sposób, aby upewnić się, że problem * faktycznie * zostanie naprawiony.
Flater
2018-06-21 11:09:10 UTC
view on stackexchange narkive permalink

Wiem, że odpowiedź na to pytanie została już udzielona i zgadzam się z zaakceptowaną odpowiedzią, ale chciałem tylko rozszerzyć to o więcej informacji.

To, co tu widzisz, to potencjał XY problem. Uważam, że problemy XY są czymś, o czym każdy rozwiązujący problemy (nie tylko programiści) powinien wiedzieć i unikać.

Zasada problemu XY jest dość prosta:

  • X to problem i należy go naprawić.
  • Y jest rozwiązaniem, ale nie najlepszym rozwiązaniem. Niezależnie od tego, jest wybierany (przez lenistwo lub niezrozumienie, że istnieje lepsze rozwiązanie)
  • Kiedy pojawia się problem z implementacją Y, ludzie poświęcają czas na próbę uruchomienia Y, zamiast na szukanie tam to rozwiązanie Z, które pasuje lepiej.

Jako jasny przykład:

  • X = Chcę posortować dane w Excelu.
  • Y = Potrafię napisać aplikację do sortowania danych i zapisywania pliku.
  • Z = Powinienem nauczyć się korzystać z funkcji sortowania programu Excel.

Zasadniczo jest to co się stało w e-mailu Morty'ego. Rick nie jest w stanie oznaczyć żądania jako Y lub Z, ponieważ Morty nie wyjaśnia X. Wyjaśnienie X jest ważniejsze niż zaoferowanie rozwiązania Y / Z, ponieważ Rick jest w stanie znaleźć Z, gdy zna X, ale może ” t zgadnij X znikąd.

Oto problem X:

wyciek pamięci w części kodu platformy

Zauważ, że jest to dość niejasne. Jaki był problem? Gdzie to się stało? Kiedy to się stało? Czy to był przypadek skrajny?

Następnie Morty proponuje rozwiązanie Y. Ponieważ nie znamy specyfiki X, nie mamy możliwości sprawdzenia, czy Y jest odpowiednim rozwiązaniem dla X.

Dlatego Rick się temu przeciwstawia. Został poproszony o zmianę czegoś (i efektywne wzięcie odpowiedzialności za zmianę czegoś) bez możliwości wyboru . Morty skutecznie podważył odpowiedzialność Ricka (pisanie dobrego kodu) i zastępuje ją prośbą o ślepe zaufanie, że oferowany kod jest odpowiedni i dobry.


Pomyśl o tym w ten sposób: Jesteś policjant. Podchodzi do ciebie mężczyzna i mówi „Chcę, żebyś aresztował tego człowieka” (Y).

Policjant nie powinien się podporządkować, ponieważ nie jest w stanie osobiście potwierdzić, że aresztowanie mężczyzny jest uzasadnione.

Gdyby jednak mężczyzna powiedział „ten człowiek właśnie zabił kogoś z zimną krwią”, wówczas policjant jest w stanie zrozumieć problem i sam zdecydować o jego rozwiązaniu (aresztowaniu mężczyzny).

Zasadniczo to właśnie Morty zrobił źle. Myślę, że Rick mógłby sformułować to bardziej uprzejmie (gdyby to było Interpersonal.SE Zdecydowanie przeformułowałbym niektóre zdania Ricka), ale jego prośba jest słuszna.

Komentarze nie służą do rozszerzonej dyskusji;ta rozmowa została [przeniesiona do czatu] (https://chat.stackexchange.com/rooms/79212/discussion-on-answer-by-flater-is-this-tone-unusual-in-a-tech-workplace).
Komentarze @JaneS są jednak * poprawnie * używane do wskazywania problemów w odpowiedziach.
Chociaż myślę, że wspomnienie o problemie XY ma znaczenie dla tego, czy prośba Ricka była tutaj rozsądna, nie wydaje mi się, że jest to odpowiedź na pytanie, jak ją napisałeś.OP zapytał, czy ton Ricka jest normalny w branży.Możesz rozważyć przeformatowanie swojej odpowiedzi, aby skupić się na tym, jak sobie z nią poradził Rick, chociaż jego treść jest ważna.
@BloodGain `Możesz rozważyć przeformatowanie swojej odpowiedzi, aby skupić się na tym, jak Rick sobie z nią poradził, chociaż istota jego odpowiedzi jest prawdziwa. 'Dokładnie tego dotyczy ostatnie zdanie odpowiedzi.
Daniel
2018-06-21 16:21:11 UTC
view on stackexchange narkive permalink

Ignorując, czy istnieje między nimi napięcie, ogólny problem z komunikacją lub standardowy ton w twoim miejscu, skupię się na twoim pytaniu:

Czy ten ton jest niezwykły w technologiczne miejsce pracy?

Nie , ten ton nie jest całkowicie niezwykły.

  1. Ludzie w branży są przyzwyczajeni do syntaktycznych języków programowania, a dokładne specyfikacje techniczne często zapominają o tonie w ich komunikacji. Często nie stanowi to problemu, o ile osoby postronne nie są zaangażowane w komunikację. Przyzwyczaj się do wielu prostych wiadomości.

  2. To banał, ale tak, są też tacy nerdowie, którzy mają po prostu kiepskie relacje społeczne umiejętności, więc lepiej naucz się radzić sobie z nimi i nie brać tego do siebie.

  3. Dla wielu programistów „ich” kod jest ich dzieckiem. Wskazanie na pewne niezaprzeczalne błędy to jedno - majstrowanie przy nim może po prostu uruchomić pewne mechanizmy obronne.

To powiedziawszy, można to zrobić w lepszy sposób. Z reguły, aby uniknąć takich problemów:

  • Chwal publicznie, krytykuj prywatnie.
  • Jeśli masz z kimś problem, w ogóle nie używaj do tego poczty e-mail!
  • Jeśli znajdziesz błąd, zgłoś go za pomocą standardowego mechanizmu akceptowanego przez zespół.
  • Nie wykonuj nikogo innego, chyba że zostaniesz o to poproszony.
Podobają mi się wszystkie wypunktowane punkty.Pierwsze dwa to dobre ogólne wskazówki życiowe.
Jeśli chodzi o dziecko, ważne jest, czy dana osoba ma doświadczenie z oprogramowaniem open source.
Narzekanie na brak odtwarzacza jest ważne przez IMO.Ale żądanie braku rozwiązania jest raczej szalone.Jednak niemożność zignorowania cudzych myśli oznacza, że nie możesz ignorować własnych wprowadzających w błąd myśli.A jeśli nie możesz, powodzenia w programowaniu.Musiałbyś zacząć w jedną stronę i iść w tym samym kierunku w nieskończoność. Albo refaktoryzacja istniejącego kodu?Musisz zrozumieć, jaki był pierwotny pomysł, a następnie dopasować go do nowego paradygmatu, który chcesz zastosować.
Deklaracja Ricka, że celowo doda opóźnienie do procesu, nominalnie, aby uwolnić swój delikatny umysł od korupcyjnej idei Morty'ego, jest rozdrażniona i całkowicie nie do zaakceptowania i należy się nią zająć.Jeśli Morty jest ponadprzeciętny (jego umiejętności i / lub zakres), lepiej wyważona odpowiedź brzmiałaby: „Dzięki, Morty, a twoja szybka sugestia może być częścią rozwiązania, ale będę musiał przeanalizować więcej problemu, aby upewnić sięto najlepsze podejście. W międzyczasie, czy możesz udokumentować ten błąd w naszym narzędziu do śledzenia błędów? Naprawdę ważne jest, aby umieścić w nim wszystkie błędy! ”
@CCTO (i inni komentatorzy) Zdajesz sobie sprawę, że OP nie pytał, jak sobie z tym poradzić, tak?
Alexander - Reinstate Monica
2018-06-21 09:57:26 UTC
view on stackexchange narkive permalink

Jego sentyment ma pewną wartość . Wiem wiele razy, kiedy moje przeczucie co do pierwotnej przyczyny doprowadziło kogoś na złą ścieżkę i zmarnowałem jego czas.

W przypadku większości problemów każda osoba ma pewne przeczucia, które po prostu „wyskakują”. Myślę, że warto spróbować wykorzystać tę moc. Kiedy potrzebuję pomocy w sprawie błędu, na którym utknąłem, staram się unikać narzucania im własnych przeczuć, aby być może ich własne były nowatorskie i produktywne.

Ale sposobem, w jaki to wyraził ... . był totalnym dupkiem.

Czasami dostaję bilety internetowe z sugerowanymi poprawkami CSS dla błędów wizualnych.Problem polega na tym, że selektory są zwykle super-ogólne (często oparte tylko na nazwach tagów lub jednej klasie) i mogą zepsuć kilka innych obszarów witryny.Mimo to podoba mi się ta sugestia, ponieważ zwykle oszczędza mi to trochę czasu na znalezieniu dokładnego problemu, a potem mogę po prostu nadać jej nazwę na coś gotowego do produkcji ...
@dandavis Nie ich zadaniem jest rozwiązanie problemu.To twoja praca.Rozwiązanie problemu wymaga wiedzy, na czym polega problem i jakie są problemy do rozwiązania: P.
Czy mógłbyś rozwinąć ten niegrzeczny kawałek?Ta odpowiedź jest świetna, biorąc pod uwagę, że waży obie strony, ale jest trochę nierówna.
Muszę się z szacunkiem nie zgodzić.W rozwiązywaniu problemów technicznych więcej informacji jest * zawsze * cenniejsze niż mniej.Zadaniem programistów jest zidentyfikowanie błędnych informacji od klienta w porównaniu z cennymi szczegółami.Zachowywanie niektórych szczegółów w narzędziu do rozwiązywania problemów, ponieważ możesz „ustawić je na niewłaściwej ścieżce”, jest dla mnie absurdalnym pomysłem i upomniałbym każdego z moich ludzi, którzy odpowiedzieli klientowi w ten sposób.
Techniczny, ale nie programista tutaj, i zgadzam się z @DanK.Jedyną bardzo drobną poprawką, jaką wprowadziłbym w początkowym raporcie, jest podanie najpierw szczegółów (być może z większą liczbą testów porównawczych), a różnicę na końcu.To dałoby Rickowi szansę na przeczytanie raportu bez różnic, ale (IMO jako ktoś przyzwyczajony do artykułów naukowych, w tym z listami kodów), trzymanie diff poza ciałem sprawia, że czytanie jest bardziej przejrzyste.
czy możesz wyjaśnić, co dokładnie nie jest tutaj grzeczne?wydaje mi się to całkowicie wolne od urazy, chciałbym to zrozumieć
@SargeBorsch - żądanie nieumieszczania zwykłych, banalnych informacji jest całkowicie nie do przyjęcia we wspólnym projekcie.A deklarowany zamiar ukarania Morty'ego przez celowe opóźnianie projektu tylko to podwaja.Napisano, żeby ładnie wyglądać, ale znaczenie jest rażące i niewłaściwe.To, że raport o problemie zawiera dwie linie różnicy, nie stanowi problemu - może pomóc lub nie, ale nie stanowi problemu.Otóż, jeśli Morty nie powinien prowadzić valgrind i zwykle zgłasza zdezorientowane rzeczy, * to * może być coś, z czym organizacja musi sobie poradzić, ale to nie jest droga.
@SargeBorsch zbyt wiele osób myli bycie bezpośrednim i zwięzłym z byciem niegrzecznym.Dla przypomnienia, ** jedynym ** problemem, jaki mam z e-mailem, jest to, że autor uznał za konieczne do cc all.
@DanK To całkowicie zależy od rodzaju problemu.Nie opowiadam się za tym podejściem powszechnie, ale tylko jako jedno z dostępnych narzędzi w pudełku.Często, gdy idę do kolegi po pomoc w dochodzeniu, wiem, że prawdopodobnie gonię za czerwonymi śledziami i marnuję czas.Chcę korzyści z nowej perspektywy.
Zgadzam się z DanK w tej sprawie, ważne jest, aby podać jak najwięcej informacji.Nawet jeśli mylą się co do przyczyny źródłowej, warto wiedzieć, * dlaczego * uważają, że jest to główna przyczyna, może to prowadzić do uzyskania większej ilości informacji.
@LordFarquaad To nie jest jakaś spolaryzowana gra zespołowa.Nie proponuję bezpłatnego udostępniania informacji.Ludzi łatwo przekonać.Nie jest to świadomy proces, więc nie jest to kwestia bycia „dobrym informatykiem”.
Martijn
2018-06-21 13:54:07 UTC
view on stackexchange narkive permalink

Oczywiście nie wszyscy się z tym zgadzają, ale IMO to normalna odpowiedź, nie bierz tego do siebie .

To łatwy do zrozumienia e-mail, on uzasadnia swoje powody dlaczego woli nie słyszeć twojego rozwiązania (nie dlatego, że jest to twoje rozwiązanie, ale dlatego, że chce na początek pustą kartę).

To nie jest osobiste dla ciebie lub obraźliwe lub w ogóle podważające, to wyjaśnienie. Dla niektórych jest to trochę bezpośrednie, ale często jest to dziwactwo programistów, bycie bezpośrednim i (zbyt) rzeczowym. Można było przeczytać cały ten e-mail normalnym tonem głosu, w którym wyjaśniał swoją metodę, którą preferował. Tylko dlatego, że nie jesteś jego fanem, nie oznacza, że ​​jest to zła praktyka, spotkasz wielu ludzi, którzy będą pracować inaczej niż ty.

Zgadzam się, że może to być trochę sformułowane bardziej uprzejmie, ale znowu, programista często po prostu mówi, co ma na myśli, bez tych wszystkich załadowanych interpretacji (co nie jest wymówką, ale może to być wyjaśnienie).

Jego zadaniem jest naprawianie problemów, a nie Twój. Po prostu spędziłeś czas na czymś, co mogłoby być użyte w inny sposób. Nie zrozum mnie źle, ćwiczenie poprawiania błędów jest ważne! Ale przestudiuj zastosowane rozwiązanie i porównaj je ze swoim. Twoje rozwiązanie może wydawać się w porządku, ale doświadczenie może cię nauczyć inaczej.

Komentarze nie służą do rozszerzonej dyskusji;ta rozmowa została [przeniesiona do czatu] (https://chat.stackexchange.com/rooms/79196/discussion-on-answer-by-martijn-is-this-tone-unusual-in-a-tech-workplace).
@Martijin Pytanie faktycznie stwierdza, że Morty jest „właścicielem systemu”, tj. Osobą odpowiedzialną za sprawdzenie, czy problem zostanie naprawiony.Badanie problemu nie wykracza poza ich ogólną pracę.E-mail Ricka jest po części wyjaśnieniem, ale jest wyjaśnieniem żądania ochrony przed tego rodzaju informacjami, które są zwykle i pożytecznie wymieniane w takich sytuacjach, i jako takie jest * zasadniczo niekompatybilne * z projektem grupowym, bez względu na to, jakładnie to jest sformułowane.Rick może swobodnie rozważać alternatywne przyczyny i rozwiązania, ale nie może przerywać zwykłej komunikacji.
Ben Mz
2018-06-21 09:31:07 UTC
view on stackexchange narkive permalink

Obie strony są tu winne.

Morty nie powinien był dzwonić do wszystkich w pierwszym e-mailu. Robiąc to, zawstydził Ricka, wskazując wszystkim swój błąd. Nie wiem, czy Morty próbował w ten sposób zdobyć punkty, czy też był po prostu głupcem. Jednak wynik był taki sam z punktu widzenia Ricka. Morty'emu byłoby lepiej, gdyby wysłał tę wiadomość e-mail tylko do Ricka, aby mogli rozwiązać problem bez konieczności złego wyglądu.

Rick był zażenowany, że jego błąd został ujawniony publicznie źle. Nie powinien był uśpić Morty'ego. Nie powinien publicznie krytykować Morty'ego za próbę pomocy.

Jeden przykład wymiany e-maili nie mówi nam nic o kulturze firmy. Jeśli jednak wysyłanie publicznych wiadomości e-mail wskazujących na błędy innych osób i wysyłanie wiadomości e-mail z informacją, że nie powinni oferować pomocy, jest powszechne, ponieważ istnieje toksyczna kultura.

Niestety, tego rodzaju toksyczna kultura jest powszechna w oprogramowaniu firm w Stanach Zjednoczonych. Wiele z nich zostało napisanych [1] [2] [3] i mówi o sposobie, w jaki określony typ inżynierów oprogramowania traktuje innych, zwłaszcza tych, którzy - inżynierów oprogramowania i ludzi, którzy nie pasują do ich stereotypu inżyniera oprogramowania.

Ta kultura nie jest właściwym sposobem traktowania ludzi. Dobra firma, menedżerowie i współpracownicy nie tolerują tego rodzaju kultury. Dobrzy pracownicy nie pokazują sobie publicznie błędów, a dobrzy pracownicy nie odrzucają pomocy innych.

Musisz zrozumieć, że takie zachowanie jest akceptowalne w kulturze Twojego działu i firmy. Jeśli myślisz, że jesteś w firmie, która jest akceptowana, musisz zdecydować, czy uważasz, że możesz zmienić kulturę i czy jest to niewystarczające. Ważne jest, aby dowiedzieć się, czy ta kultura pochodzi od przywództwa, czy nie. Jeśli przywództwo daje zły przykład, nic nie możesz zrobić. Jeśli jest to kultura oddolna, masz szansę przekonać ludzi do zmiany. To będzie długa ciężka praca, więc lepiej zdecyduj, czy firmę warto naprawić.

Może.Bez szerszego kontekstu nie możemy naprawdę wiedzieć, czy oryginalny e-mail „wskazuje czyjś błąd”, czy „dzieli się postępami z innymi zaangażowanymi w pracę grupową” - z tego, co wiemy, jest to kluczowy krok w dziedzinie, w której wystąpiłwspólne, ale niespecyficzne poczucie, że coś jest nie tak.Zauważ, że nie jest napisane „w Twoim kodzie” - może to być domniemane założenie, ale treść e-maila nie jest bardziej oskarżycielska niż typowe zgłoszenie błędu i lepiej zbadana niż większość.Albo może to być bardzo normalnie wyglądający tekst, wysoce uzbrojony w swoim rzeczywistym kontekście.
Dość często zdarza się, że w przypadku ważnego błędu zdaje się na zespół.
„zawstydził Ricka, wskazując wszystkim swój błąd” Oprogramowanie zawiera błędy.Każdy zaangażowany w jego tworzenie wie i akceptuje to.Mogę zagwarantować, że ** nikt ** nie działał w złudzeniu, że Rick był nieomylnym bogiem programowania.Czy powinni również usunąć swój moduł śledzenia błędów, ponieważ jest to wywrotowy trwały zapis osobistych niepowodzeń Ricka?Nie płacą mi za uleganie kruchym ego.Zarabiam na tworzeniu dobrego oprogramowania.
@Michael „Nie płacą mi za uleganie delikatnym ego”.Wielu ludzi tak mówi, aby usprawiedliwić bycie dupkiem.
@BenMz To prawda - jestem pewien, że Rick mógłby spróbować sformułować to stwierdzenie po przeczytaniu kilku odpowiedzi tutaj - ale myślę, że taka osoba błędnie identyfikowałaby grzeczność z pandingiem.To nie to samo.W pracy zawsze jestem uprzejmy, ale nie powinienem chodzić po skorupkach z kimś, ponieważ nie mogą sobie poradzić, gdy zespół programistów otrzyma wiadomość e-mail o łatwym do popełnienia błędzie.
Ta odpowiedź zakłada reakcje emocjonalne osób, o których mowa, gdy żadna z nich nie została wyraźnie lub pośrednio implikowana.
@Allan Nie można ocenić tonu komunikacji w miejscu pracy bez uwzględnienia reakcji emocjonalnej, którą prawdopodobnie wywołają.
Czy * wiesz * Rick był zawstydzony?[Zawstydzenie] (https://www.bing.com/search?q=embarrassment&FORM=AWRE) to samoocena (inaczej osobista).Nie dokonano żadnych osobistych ataków.Możesz powiedzieć, że ton wiadomości e-mail jest „ostry”, „bezceremonialny” lub jakikolwiek inny, ale nie możesz przyjąć reakcji emocjonalnej, ponieważ każdy zareaguje inaczej.
@Allan Zakładam, że Rick jest zawstydzony.Przyjmowanie najlepszych założeń dotyczących tego, jak ludzie zareagują, to sposób, w jaki sędzia się z nimi komunikuje.
Następnym pytaniem byłoby: „Co w tej wymianie e-maili sprawia, że * zakładasz *, że Rick był zawstydzony?” Aby rozwinąć to, co powiedziałem wcześniej, nie ma ani odrobiny osobistego ataku, który uzasadniałby „zażenowanie”.Ponadto odpowiedź Ricka nie atakuje Morty'ego;mówi mu, czego * potrzebuje *.
MonkeyZeus
2018-06-21 20:08:18 UTC
view on stackexchange narkive permalink

Normalność jest dość subiektywna, zwłaszcza że nie masz pojęcia o historii tego miejsca pracy.

Albo Rick ma okropne umiejętności interpersonalne, albo między tymi dwoma osobami jest coś złego.

Możliwe, że Morty celowo przygotował „rozsądną” wiadomość e-mail, mając nadzieję, że wywoła Ricka.

Ponieważ jesteś nowy, będziesz musiał ocenić, czy to toksyczne zachowanie rozprzestrzeniło się również na innych, czy też jest zamknięta sytuacja.

Cokolwiek się stanie, po prostu nie pozwól, aby rozprzestrzeniło się to na twoją osobowość.

Allan
2018-06-21 20:00:32 UTC
view on stackexchange narkive permalink

Piszę to z perspektywy menedżera z doświadczeniem obejmującym wiele aspektów tego typu scenariuszy.

Czy to normalne w firmach technologicznych?

Jest to całkowicie normalne dla każdej firmy w praktycznie każdej branży, nie tylko technicznej.

Mówiąc najogólniej, e-mail wysłany do wszystkich członków zespołu programistów, :

  • wskazał podejrzewaną usterkę („Myślę, że znalazłem wyciek pamięci ...”)
  • stwierdził, że znaleziono rzekome rozwiązanie („ wierzę , że znalazłem źródło i problem ...”)
  • przedstawił listę pralni poprawki do zaimplementowania

Uogólniając, dzieje się tutaj to, że Rickowi zostaje przekazana dyrektywa zawierająca uzasadnienie dyrektywy, a następnie wyszczególniająca specyfiki wspomnianej dyrektywy.

To dodatkowo komplikuje sprawę, ponieważ dyrektywa została przekazana w grupie (w kopii zapasowej do wszystkich członków e zespół).

Relacje organizacyjne Ricka i Morty'ego

Nie znamy relacji w odniesieniu do tych dwóch osób. Można to jednak ogólnie podsumować jako jedną z trzech możliwości:

  • Rick jest starszy od Morty'ego
  • Morty jest starszy od Ricka
  • Rick and Morty są równi

Czy Rick ma przyjąć dyrektywę od Morty'ego?

  • Nie? W takim razie Rick ma prawo odpychać
  • Tak? W takim razie nie ma potrzeby, aby wszyscy byli w posiadaniu CC. Rick ma nadal uzasadnienie, mówiąc Morty'emu, jak najlepiej wykonuje swoją pracę.

Sytuacja nie wyglądałaby inaczej, gdyby była ....

  • Medyczne. Dr Oz mówi Dr No, że zdiagnozował pacjenta Dr No i zrobił X, Y i Z bez podawania objawów dr. No.
  • Automotive. Inżynier 1 informuje Inżyniera 2, że znaleziono problem w konstrukcji zawieszenia Inżyniera 2, a rozwiązaniem jest przyspawanie wypustki A do szczeliny B bez podawania danych testowych, aby pokazać problem.
  • Pomoc techniczna - Tech 1 informuje Tech 2, że wystąpił problem z systemem Tech 2 i rozwiązaniem jest wdrożenie poprawek A, B i C bez dostarczania komunikatów o błędach wskazujących na problem.

TL; DR

Podsumowując, osoba odpowiedzialna za wykonanie właściwej naprawy mówi jej, czego potrzebuje, aby prawidłowo wykonać pracę. Jedyną osobą, która jest potencjalnie „poza linią”, jest Morty ze względu na pasywne agresywne zachowanie polegające na dzwonieniu do wszystkich.

Dzieje się to każdego dnia w każdej branży. To nic nowego ani niezwykłego.

Komunikacja jest niezwykle ważna… W moim zespole 90% komunikacji odbywa się przez slack / jira / github, co każdy może zobaczyć.Jeśli chodzi o rozwiązanie, które wpływa na produkt zespołu, uważam, że zawsze należy cc całego zespołu (lub prawdopodobnie po prostu wysłać go do całego zespołu). Jeśli chodzi o rzeczywisty problem w wiadomości e-mail: znaleziono problem, znaleziono rozwiązanie.Teraz uważasz, że lider dobrze wykorzystuje swój czas, odrzucając problem i rozwiązanie oraz próbując zweryfikować, czy problem istnieje, a następnie znaleźć rozwiązanie, które może być lepsze lub nie?robiąc to, mówisz facetowi, że jego praca nie ma znaczenia ...
@xyious - Zakładam, że nie oddałeś głosu, ponieważ z powodów w Twojej argumentacji.Ciekawy.** Pytanie ** nie dotyczy tego, kto ma rację, pytanie brzmi: ** jest tonem * niezwykłym ***.To powiedziawszy, jakiekolwiek preferencje ma osoba odpowiedzialna za dokonanie zmiany, są jej preferencjami.Kropka.
@Allan - różnica w dwóch wierszach nie jest „listą poprawek do zaimplementowania” - niezależnie od tego, skąd je otrzymujesz, nie jest to część problemu.Jeśli chodzi o role Morty'ego i Ricka, zostało wyraźnie powiedziane, że Morty jest „właścicielem systemu” iz kontekstu jasno wynika, że Rick jest obecnym guru obszaru dla danego kodu.
Więc, @ChrisStratton, wziąłeś "diff" dosłownie?SMDH.Pozwól, że zapytam ... czy uważasz, że lekarz prowadzący mówi specjaliście, co ma robić, czy też mówi mu o objawach i czeka na potwierdzenie?
Dosłownie wziąłem * skalę * różnicy i jestem pewien, że jest dokładny.Cały sens pytania polega na tym, że Rick wpadł w szał z powodu skrajnie normalnej, zwyczajnej i właściwej akcji.Zamiast tego wydaje się, że chcesz zareagować na zupełnie inną sytuację niż ta, o którą faktycznie pytano, wyrażoną również w twoich spekulacjach na temat relacji nie pasujących do wyraźnie wyrażonego stanowiska Morty'ego.
* Skalę różnicy wzięłam dosłownie ... * Post, który używa „Rick and Morty” jako zaciemnienia nazwisk osób w e-mailu, który ma prawdopodobnie mniej wierszy niż liczba osób na liście DW, którą bierzesz ** że ** „poważnie”.Nie jesteś menedżerem i to widać.
Stało się całkiem jasne, że znaczna część problemu w Twoim poście wynika z faktu, że nalegasz na zareagowanie ** w innej sytuacji niż ta, którą faktycznie opisano **.Jak zauważyłby każdy * doświadczony * programista, pokazana różnica dotyczy tego, jaki rozmiar poprawki dla tego rodzaju * często * faktycznie będzie.
Joshua
2018-06-21 23:37:16 UTC
view on stackexchange narkive permalink
  --- a / spacehip / DoBattle.cpp +++ b / spacehip / DoBattle.cpp vector<part> parts = getSpaceShipParts (); + shared_ptr<SpaceShip> p = nowy SpaceShip (części); -SpaceShip * p = nowy SpaceShip (części); angażować się w bitwę (p, wróg); 

Niestety ta zmiana naprawia błąd (udawanie, że test Valgrind jest adaquote), ale wprowadza coś niepożądanego, walkę z filozofią kodu. Jeśli nie jesteś stałym współpracownikiem, nie wdawaj się w walki z filozofią kodu.

Aby uniknąć walki z filozofią, zamiast tego powinno zostać wysłane. Tak, jest obiektywnie gorszy, ale jest zgodny ze stylem już istniejącego kodu:

  --- a / spacehip / DoBattle.cpp +++ b / spaceShip / DoBattle.cpp SpaceShip * p = nowy statek kosmiczny (części); angażować się w bitwę (p, wróg); + usuń p;  

Ale z tą odpowiedzią dewelopera, zakładam, że on też by się nie spodobał. Słyszę ten ton trochę za dużo, nawet od ludzi, którzy powinni wiedzieć lepiej. To nie jest normalne, ale wystarczy, że często to słyszysz. Jestem rozczarowany.

Może to oznaczać odczytanie różnicy nieco zbyt dosłownie.To nie jest * żądanie ściągnięcia *, to trochę * kodu jako mowy * w e-mailu.W efekcie mówi "może moglibyśmy to naprawić w ten sposób, a może masz lepszy pomysł, ale ten problem jest ważny dla mojego projektu, który zawiera twój kod i wydaje się, że jest w tej formie" Nawet jeśli nie jest scalony, różnicejak to jest całkiem normalna komunikacja między programistami.
xyious
2018-06-22 00:14:29 UTC
view on stackexchange narkive permalink

1) Komunikacja: OP sprawia, że ​​wydaje się, że standardową praktyką jest cc reszty zespołu programistów. Nigdy nie widzę powodu, by nie włączać reszty zespołu programistów do problemu / rozwiązania, które dotyczy wszystkich.

2) Problem / rozwiązanie: Nie widzę tutaj niczego złego. Należy to zrobić za pomocą żądania ściągnięcia, ale zakładając, że nie jest to możliwe, jest w porządku.

3) Odpowiedź: Tak wiele rzeczy jest nie tak, że nawet nie wiem, od czego zacząć.
a ) „Nie czytam sugerowanych poprawek”: To jest absolutnie okropne. Zawsze czytaj proponowany kod. Jest spora szansa, że ​​to lepsze niż cokolwiek, co możesz wymyślić ...
b) „Muszę poczekać kilka dni, zanim znajdę rozwiązanie”: Przetłumaczę to: „Muszę czekać kilka dni, zanim będę mógł całkowicie zignorować wykonaną pracę i odrzucić rozwiązanie. Nie tylko będę tracić czas na wdrożenie rozwiązania, ale także będę tracić więcej czasu na wymyślanie rozwiązania problemu, który został rozwiązany (przez napisany przez Ciebie kod, który odrzucę) "
c) 'zobacz, na czym polega prawdziwy problem i zobacz, jaka powinna być poprawka': przetestuj . Przetestuj, aby zobaczyć, czy jest problem. Następnie przetestuj go, aby zobaczyć, czy problem został rozwiązany. Nic nie zyskujesz, wymyślając własne rozwiązanie, które należy przetestować , zamiast testować proponowane rozwiązanie, aby sprawdzić, czy wszystko naprawia. Jeśli to nie rozwiąże problemu, wtedy możesz spróbować znaleźć poprawkę dla proponowanego rozwiązania lub całkowitą naprawę problemu.

W mojej firmie niezwłocznie i bez komentarza przekazał odpowiedź mojemu przełożonemu. To po prostu niedopuszczalne.

Mówiąc z perspektywy * menedżera *, chciałbym poinformować, że każdy deweloper jest indywidualnością i każdy ma swój ulubiony sposób pracy.Każdy z nas musi starać się dostosować do swoich dziwactw.W takim przypadku radziłbym ** ciebie ** (mówiąc jako twój kierownik, gdybyś był Morty), aby szanować preferowany przepływ pracy Ricka, wysyłając mu to, o co prosił * najpierw *, a następnie kontynuuj, w co * wierzyłeś * (jak we-mail) był problem, a następnie to, co myślisz (ponownie w e-mailu) jako rozwiązanie.
A propos… im dalej poszedłem w swojej karierze i nabierałem doświadczenia, tym mniej polegałem na „diagnozie i rozwiązaniu” bez jasnego sformułowania problemu ** w pierwszej kolejności. ** Wyjątek od tej regułyjeśli problem / rozwiązanie pochodzi z zaufanego źródła.Mogę powiedzieć, że ja również zignorowałem potencjalne rozwiązania, jeśli nie spełniały moich wymagań, ale nie wynikało to z arogancji, ale raczej z ograniczonej ilości zasobów (tj. Czasu), które można przeznaczyć na rozszyfrowanie cudzej pracy.
Więc poinformowałbyś swój zespół programistów, że dopuszczalne jest (jako dziwactwo) marnowanie czasu dewelopera (dostarczając rozwiązanie, które zostanie odrzucone) i marnowanie czasu leadu (przez to, że odrzuca rozwiązanie i wymyśla własne)?
Poinformowałbym zespół programistów, że marnowanie czasu na nieprzestrzeganie życzeń / próśb osób odpowiedzialnych za ich funkcje jest niedopuszczalne.To, że zakładasz, że rozwiązanie jest właściwe, nie oznacza, że tak jest.Sprowadza się również do tego, że osoba odpowiedzialna nie może zweryfikować problemu na podstawie diagnozy i ostatecznie rozwiązania.Nie opowiadasz się za tym, aby ktoś po prostu zaakceptował diagnozę i proponowane rozwiązanie od ręki, prawda?Ile czasu byłoby wtedy stracone?Ile czasu zostałoby zaoszczędzone, gdyby objawy zostały zweryfikowane ** najpierw **?
Sprawdź to !Sprawdź, czy problem istnieje!Sprawdź, czy rozwiązanie rozwiązuje problem!Następnie sprawdź, czy rozwiązanie nie psuje niczego innego.I tak musiałbyś zrobić dwie ostatnie.Dlaczego miałbyś marnować rozwiązanie, którego nie przetestowałeś, i wymyślić coś innego, co może nawet nie działać?
BTW, wszystko to w mojej odpowiedzi powyżej.I tak musisz mieć testy jednostkowe.I tak musisz ciągle testować.Dlaczego zdecydowałeś się nie testować rozwiązania, które ktoś Ci dał?Jak to jest akceptowalne w każdej sytuacji?
W jaki sposób dokładnie walidujesz test (musi mniej rozwiązanie) pod kątem objawów, które ** nigdy ** nie zostały wyartykułowane w pierwszej kolejności?Nie zakładaj, że diagnoza była prawidłowa od początku.Ciekawą częścią tego jest to, że twoja odpowiedź * nigdy * nie odnosi się do rzeczywistego pytania - * czy ton jest niezwykły *.Jednak spędzasz nadmierną ilość czasu na obronie swojej pozycji.Dosłownie mówisz mi o tym.
Rozumiem, że to nagłówek, ale to nie jest pytanie.Dźwięk w e-mailu nie istniał.Nie ma „tonu”.To słowa, które są niezwykłe.W pierwszych 3 komentarzach do mojej odpowiedzi nie spieracie się też o ton.Zacząłeś spierać się o ten proces ...
Moje komentarze adres ** Twoja odpowiedź **.Twoja odpowiedź nie odpowiada na ogólne pytanie.Na przykład, tak jak „Morty”, zapewniasz rozwiązanie, ale ignorujesz ważniejsze pytanie.Ile czasu spędziłeś, odpowiadając na coś, o co nigdy wcześniej nie pytano?Przyjazna rada od osoby, która ma ponad 25 lat, która to robi ... skup się na tym, o co * faktycznie * się pyta, a nie o to, o co * zakładasz *.
@Allan - jeśli Twój zespół nie może * efektywnie * ocenić proponowanej zmiany * przez inspekcję *, musisz zwolnić ich wszystkich i zastąpić ich kompetentnymi programistami.Ogólny problem może wymagać większej uwagi - może to być tylko jeden przykład bardziej rozpowszechnionego, ale * proponowana zmiana * jest albo uzasadnioną flagą błędu w istniejącym kodzie, oznaką pomyłki Morty'ego lub braku rzeczywistego efektu.
@ChrisStratton - Zadziwia mnie bez końca, że ludzie bronią się przed zamierającym oddechem, ich pozycja jest absolutnie poprawna, kiedy jeszcze nie zidentyfikowali objawów, które wymagały proponowanej korekty.** Za każdym razem, gdy przyjmuję Twoje podejście, kosztowało to więcej zasobów niż postrzegane oszczędności wynikające z samego wdrożenia zmiany. **
@Allan - kwestią, którą tak ** niebezpiecznie ** ignorujesz, jest to, że istniejący kod nie musi nawet wywoływać błędu, aby był zły.Jest tu bezwzględny obowiązek ustalenia, czy Morty wskazuje rzeczywisty problem w istniejącym kodzie, * oprócz * sprawdzenia zgłoszonego przez niego błędu testu *, który może, ale nie musi, być w jakikolwiek sposób z tym związany *.Nawet jeśli rzeczywista przyczyna zostanie znaleziona gdzie indziej, konkretny kod zaproponowany przez Morty'ego ** nadal może być niebezpieczny **.Czy Morty ma rację?A może jest po prostu zdezorientowany?Musisz się dowiedzieć, a * kompetentni * programiści mogą to zrobić szybko.
@ChrisStratton - Poważnie ... ile założeń możesz założyć w dwóch zaciemnionych e-mailach?* Jeśli to czy tamto * - to nie ma znaczenia.Wiem tylko, że nikt nie może odnieść się do żadnego z twoich założeń (z tego, co wiemy, Morty to głupi idiota), więc ostatecznie są one dyskusyjne.To powiedziawszy, odniosłem duży sukces w pracy z programistami, dostosowując się do ich potrzeb, a nie zastraszając ich hipotetycznymi opartymi na pseudokodach.


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...