Co mogę zrobić? Jak byś zareagował? WSPARCIE! [Zamknięte]

13

Staram się poprowadzić zaległy zespół programistów. Jednym z głównych problemów jest to, że ilekroć coś jest nieco trudne, ostatecznie muszę przypisać to sobie. Miałem jeszcze jednego programistę z umiarkowanymi umiejętnościami i połowę stażysty. Niestety umiejętności drugiego programisty nie obejmują projektowania.

Błagałem więc mojego szefa o jednego z facetów w jednym z pozostałych zespołów, on pracuje tu dłużej niż ja (5 lat). Nie może ze mną konkurować w projektowaniu LUB w języku, którego używamy, ale myślałem, że był najbardziej kompetentny poza mną.

Dzisiaj dał mi fragment kodu, który zrobił coś, co nie różni się niczym:

object const& my_class::get_object() const 
{ 
  return *std::unique_ptr<object>(new object());
}

Zapytał mnie, czy to był problem! Powiedziałem jedyną rzecz, o której mogłem pomyśleć: „Tak. To jest problem”. Potem podchodzi do mojego biurka i pyta, jak to naprawić !! Powiedziałem: „Użyj obiektu, który przetrwa wywołanie funkcji”. Potem zaczyna wariować: „Tak, ale jak, jedyne, co mogę wymyślić, to uczynić członka zmiennym”.

Byłem w tym czasie trochę zajęty, ponieważ już próbowałem załatwić dodatkową pracę, musiałem zająć się drugim facetem w zespole, ponieważ nie mógł tego rozgryźć ... Powiedziałem temu facetowi, żeby odszedł, ponieważ ja był zajęty i sam to wymyślił. Potem odchodzi z hukiem, mówiąc, że to nie jego wina, że ​​coś spieprzy. Przeraża się, odkąd wszedł do zespołu i nie sądzę, żeby było lepiej.

Mam wrażenie, że tonę tutaj. WTH mogę zrobić? Jaki był właściwy sposób, aby sobie z tym poradzić? Czy rozsądniej byłoby pomóc temu facetowi, który pisze C ++ od 7 lat, dowiedzieć się, jak poprawnie zwrócić odwołanie do obiektu, który nie jest zniszczony w momencie jego zwrotu? Czuję, że to po prostu absurdalne, że muszę to robić i zastanawiać się, jak, u diabła, udało mi się zrobić coś w ten sposób.

Czasami myślę, że robią to celowo, ale wydaje mi się, że to tylko bicie ... ale z drugiej strony, podobnie jak pytanie, które właśnie zadałem dzisiaj. To nie jest jakiś dzieciak siedzący w domu i próbujący rozgryźć swój pierwszy program, którego mózg wysadził w powietrze wskaźnik.


źródło
4
KRZYK!!! I kontynuuj dekret. To sprawia, że ​​czujesz się lepiej. Och, czekaj, widzę, że już to robisz. Spróbuj się uśmiechnąć. :): D (Złe uśmiechy też są w porządku.>: D)
Mateen Ulhaq
Właśnie wysłał mi wiadomość e-mail z informacją, że skoro mam „silną chęć, aby mu nie przeszkadzać”, nie mógł kontynuować i wracał do innego projektu: p
7
Dlaczego ktoś, kto nie ma najmniejszego zrozumienia wskaźników i zarządzania pamięcią, pracuje nad projektem C ++?
Charles Salvia
2
Jedno możliwe wytłumaczenie: przez wiele lat popularna była mądrość, że STL nie był gotowy na najwyższy czas i produkowałby zbyt rozdęty kod do użytku produkcyjnego. Kiedyś można było być względnie wyrafinowanym programistą C ++ bez wiedzy o STL. Oczywiście wszystko się zmieniło. Jeśli jednak był trenowany pod koniec lat 90. lub był prowadzony przez kogoś trenowanego w późnych latach 90., może dobrze wyszkolić nowy obiekt (), ale całkowicie go nie zawiódł ten stangretny std :: Unique_ptr <object> () rzecz. Nie rozwiązuje twojego problemu, ale może wyjaśniać, skąd pochodzi.
Charles E. Grant,
2
@Charles: zgadzam się, mam kilka lat doświadczenia w C ++ w branży gier i nigdy nie dotknąłem STL ani nic o tym nie wiem. Patrząc na powyższy fragment kodu, wszystko, co mogę zrobić, to potrząsnąć głową i pomyśleć: „jeśli chcesz pisać w C ++, napisz C ++, ale wygląda na to, że nie chcesz pisać w C ++, więc dlaczego nie użyć wyższego poziomu język?"
Carson63000,

Odpowiedzi:

14

Czy rozsądniej byłoby pomóc temu facetowi, który pisze C ++ od 7 lat, dowiedzieć się, jak poprawnie zwrócić odwołanie do obiektu, który nie jest zniszczony w momencie jego zwrotu?

Kilka lat temu rozdałem wszystkie moje książki o C ++, przysięgając, że nigdy więcej nie dotknę tego języka, i nawet mogę powiedzieć temu facetowi, że nie wie, co robi. Myślę, że powinieneś usiąść z nim i dowiedzieć się, jaki jest jego poziom umiejętności.

Wygląda na to, że może ma siedem lat doświadczenia siedem razy - nie siedem lat doświadczenia. W większych firmach niewykwalifikowani pracownicy mogą ukrywać się i tasować „wokół systemu”, gdy tylko zostaną złapani.

Staram się poprowadzić zaległy zespół programistów. Jednym z głównych problemów jest to, że ilekroć coś jest nieco trudne, ostatecznie muszę przypisać to sobie.

W takim przypadku musisz się zatrzymać i dowiedzieć się, jakie są umiejętności ludzi. Rozumiem, że czujesz się przytłoczony terminami i takimi, ale nie możesz wykonać pracy, kiedy nie możesz być nawet pewien, z czego składa się twój zespół. Nie możesz ukończyć projektu, jeśli nadal popełniasz te same błędy - tym razem tylko szybciej.

Podjęcie całej pracy nad sobą oznacza, że ​​nie masz zespołu ani nie masz do niego zaufania. Najpierw trzeba to naprawić.

Tangurena
źródło
7
+1 dla „brzmi jakby miał siedem lat doświadczenia siedem razy”.
Mateusz
@Matthew: taka prawda.
IAbstract
13

Tego rodzaju kwestia to chleb powszedni zarządzania. Jedno pytanie, które wszyscy menedżerowie muszą zadać, brzmi: „Czy moi ludzie mają umiejętności potrzebne do wykonywania pracy?” Jeśli odpowiedź brzmi „nie”, dobry menedżer nie krzyczy ani nie rezygnuje - dobry menedżer stara się naprawić sytuację.

Oto jedno spostrzeżenie - C ++ nie jest trywialnym językiem, więc czy można użyć czegoś, w czym twoi młodsi programiści są bardziej kompetentni? Jeśli musi być w C ++, musisz albo wyszkolić swoich obecnych programistów, albo zatrudnić nowych programistów z odpowiednimi umiejętnościami.

Rok temu byłem w podobnej sytuacji. Zostałem wezwany do kierowania zespołem programistów VB6 pracujących nad kodem spaghetti, a pragnieniem zarządzania było przejście do dobrze zaprojektowanych, obiektowych systemów napisanych w .NET. Poczyniliśmy doskonałe postępy w tej dziedzinie, więc tego rodzaju zmiany możliwe.

Ostatni komentarz. Jeśli nie lubisz zajmować się tego rodzaju sprawami, wycofałbym się z zarządzania i powróciłbym do roli czysto technicznej. Tego rodzaju bałaganiarskie kłopoty są chlebem powszednim w życiu menedżera i nie wszystkim to odpowiada.

Craig Schwarze
źródło
4
To dobry przykład poglądu kierownictwa, którego wielu pracowników wydaje się nie mieć.
Mark C
Tak, nie jestem zarządem. Czasami żałuję, że tak nie było, więc miałbym większe możliwości pracy nad tymi zagadnieniami. Innym razem cieszę się, że nie jestem, bo nie muszę. Jestem tylko liderem technologicznym.
Edward Strange,
1
Cześć Noah, porozmawiam z kimkolwiek zarządzającym zespołem - są oni odpowiedzialni za upewnienie się, że właściwi ludzie są dostępni i posiadają odpowiednie umiejętności.
Craig Schwarze
9

Znajdź pracę w lepszej firmie, w której możesz pracować z kompetentnymi ludźmi.

Matthew Read
źródło
7
Lub alternatywnie przestań używać C ++. To rozwiąże wiele różnych klas paskudnych błędów.
Mason Wheeler,
3
@Mason: Zgadzam się. Każdy pisze C # i bądź szczęśliwy. :)
IAbstract
2
C ++ powinien być używany tylko tam, gdzie C ++ jest odpowiedni. Nie znam żadnego istniejącego języka, który mógłby wykonać zadanie C ++ tak dobrze jak on.
Mateusz
2
@Matthew przeczytał, z programistami, którzy są tak niekompetentni jak w przykładzie PO, czy C ++ EVER byłby odpowiedni?
Dan Rosenstark,
4
@Yar: Chociaż zły programista pisze zły kod w każdym języku.
Jon Purdy,
7

Właściwą rzeczą byłoby pomóc mu w rozwiązaniu problemu. To nie musiało być na miejscu. Mógłbyś powiedzieć: „Jestem teraz związany. Przejdź do rozdziału X C ++ STL i dotknijmy jeszcze raz jutro o 11 rano.”.

Krzyki mogą działać u niektórych osób i niektórych sytuacji, jeśli jest to tylko kwestia motywacji. Ale jeśli jest to kwestia kompetencji lub wiedzy, krzyczenie na ludzi i zdmuchiwanie ich wcale nie pomaga. To jak krzyczenie na ludzi, którzy nie mówią po angielsku. nie pomaga im zrozumieć tego, co próbujesz powiedzieć, i może zabić wszelką motywację, którą próbują ci pomóc. Są tam, gdzie są i żadna ilość gniewu ani frustracji z twojej strony nie poprawi ich pisania C ++ w ciągu następnych 48 godzin. Być może będziesz musiał wrócić do zarządzania i wyjaśnić, że zakres projektu wykracza poza obecne umiejętności Twojego zespołu. Takie rzeczy są powodem, dla którego bycie liderem zespołu jest trudne.

Charles E. Grant
źródło
Nie krzyczałam. Powiedziałem tylko, że jestem teraz zajęty. Ale zdmuchnąłem go.
Edward Strange,
3
@ Nie, nie było mnie tam, byłeś, więc ustępuję. Zastanów się jednak: ludzie, którzy są tak sfrustrowani, że myślą, że ludzie celowo robią głupie rzeczy, a nie głupio robią głupie rzeczy, mają tendencję do mówienia bardzo napiętym głosem przez zaciśnięte zęby, myśląc, że są uśmiechnięci i stonowani. Druga osoba może być tak zestresowana, że ​​usłyszy: „Czy możesz wrócić za około 10 minut?” jako „Wynieś frack z mojego biura, ty gnojku!”. Bycie liderem zespołu często polega na manipulowaniu zachowaniami naczelnych poprzez mowę ciała i ton głosu.
Charles E. Grant,
3

Cóż, gdybym miał kogoś, kto pisze kod od 7 lat, pyta o coś, co brzmi dość prosto, musiałbym się zastanawiać, co jeszcze się dzieje. Nie jestem programistą C ++, więc nie mogę komentować tego aspektu.

To, co chciałbym wiedzieć, jak przypuszczałbym jego przełożony, jeśli dzieje się coś innego, co go rozprasza. Zdaję sobie sprawę, że nie miałeś wtedy czasu, ale ostatnią rzeczą, którą powinieneś zrobić, to odepchnąć kogoś takiego.

Poświęć chwilę na rozmowę z nim i daj mu znać: „Rozumiem twoją pilność w tej sprawie, ale nie mam teraz na to czasu. Jak tylko to zrobię, dam ci znać. Spodziewam się nie dłużej niż około godziny ”.

W ten sposób przekazałeś swoje zrozumienie jego pilności, że nie masz czasu i że wrócisz z nim. Nawet jako oczekiwanie, kiedy wrócisz z nim. Czuje się o wiele lepiej z tego powodu niż odtrącony (tak bym to wziął).

Teraz powinieneś poświęcić trochę czasu i poinformować go, kiedy możesz porozmawiać z nim na ten temat. Cofnij się i połknij dumę, daj osobie znać, że rozumiesz jego pilność i po prostu nie miał czasu, aby sobie z tym poradzić. Powinieneś także sprawdzić, czy ma on w swoich osobistych obszarach coś, co mogłoby wpłynąć na jego uwagę - tj. Co jeszcze mogłoby go rozpraszać. Życie osobiste wpływa również na nas, programistów. ;)

IAbstract
źródło
2

Myślę, że musisz usiąść z szefem i wyjaśnić mu to wszystko. Brzmi dziwnie - co ten koleś nawet tam pracuje, jeśli nie zna podstaw?

sevenseacat
źródło