Jak źle może być brak pracy zespołowej, gdy jesteś programistą? [Zamknięte]


17

Nadal jestem w szkole i wiem, że mam problemy z innymi ludźmi.

Nie jestem zły, nieśmiały ani inny, po prostu lubię pracować po swojemu i mając swoje opinie szanując innych, mam wielką ciekawość i głód wiedzy, ale brakuje mi praktyki i myślę, że ludzie nie chcą pracować ze mną, ponieważ mogliby się obawiać, że porozmawiam o jakimś morale. (Na przykład zacząłem uczyć się programowania przy użyciu systemu Linux zamiast Windows, nawet jeśli często używam systemu Windows. I mam Mac).

Co dzieje się z programistami, którym brakuje pracy zespołowej? Gdzie zaczynają się problemy? Czy bycie dobrym programistą kompensuje choć trochę? Czy to normalne, że programista ma wizję swojej pracy zamiast robić to, co mu powiedziano?


17
W dzisiejszym świecie nie ma zawodu, w którym umiejętności komunikacji i pracy zespołowej nie są cenione.
Fanatic23,

2
Możliwość przyznania, że ​​masz problem, jest pierwszym krokiem do jego rozwiązania i jest to dobry problem, aby zdać sobie sprawę, że masz go za późno!
Chris

Odpowiedzi:


16

Twoje zachowanie jest dość powszechne w twoim wieku. Byłem jak ty.

Dobra wiadomość jest taka, że ​​przez większość czasu rozwija się w dobrym kierunku. Dowiesz się, jak zintegrować się w zespole. Będzie Ci się podobało! Ale spotkałem ludzi, którzy nie byli w stanie tego zrobić, a teraz utknęli w depresji.

W zależności od stylu zarządzania firmą zostaniesz odrzucony przez zespół lub po prostu zwolniony po pewnym czasie. Musisz być przygotowany na pewne trudności.

Najpopularniejszy styl zarządzania we Francji opiera się na strachu i karach. To nie jest dla ciebie dobra wiadomość, ponieważ zachęci do indywidualizmu. To zachęci twoje zachowanie.

To powiedziawszy, już wiesz, że jest z tobą problem, więc jest to całkiem dobra wskazówka, że ​​masz wszystko, czego potrzebujesz, aby ewoluować bez pomocy z zewnątrz. Pierwszym krokiem jest bycie świadomym. Drugi, najtrudniejszy, działa na niego.


1
Postanowiłem nie używać pogrubienia w tej odpowiedzi, ponieważ lubię Stevena.

15

Zależy od tego, czego wymaga praca. Czasami nawet nie będziesz mieć zespołu do niektórych zadań. Ale przez większość czasu będziesz mieć menedżera.

Ponadto posiadanie zespołu naprawdę pomaga od czasu do czasu przypomnieć ci, że piszesz bzdury. :

Jako twórca oprogramowania jesteś swoim największym wrogiem. Im szybciej zdasz sobie z tego sprawę, tym lepiej. - Jeff Atwood

Co oznacza, że ​​posiadanie zespołu ułatwi naukę rzeczy szybciej! Bycie samotnikiem uczyni cię pustelnikiem;)


2
+1 Doskonałe do przypomnienia. Jedyni programiści utknęli w rutynie i zapominali, że tak naprawdę nie są fantastyczni.
Orbling

15

Co dzieje się z programistami, którym brakuje pracy zespołowej?

Wtedy trudno jest pracować nad projektami, które są zbyt duże dla jednego programisty. Trudne dla programisty solo i trudne dla reszty zespołu.

Gdzie zaczynają się problemy?

Wszystkie rodzaje miejsc. Obecnie mamy jednego programistę, który źle pracuje w zespole. Ma tendencję do wprowadzania skrótów, które mają zły wpływ na resztę aplikacji, ponieważ zbyt wąsko koncentruje się na naprawianiu błędu przed sobą. Lub pisanie nowej funkcji w taki sposób, aby nie była kompatybilna z resztą aplikacji. Musimy tak zmienić układ, aby każde jego sprawdzenie kodu było sprawdzane przez resztę zespołu. Ale aby go nie wyróżnić, sprawdzamy również kody wszystkich innych osób, więc wraz z porannym spotkaniem o statusie nie wykonujemy żadnej pracy aż do lunchu. W naszym biurze oznacza to, że 4 osoby tracą 1/2 dnia pracy każdego dnia, ponieważ jeden facet jest kiepski w pracy zespołowej. Nie mogę powiedzieć, że jest to poprawa w stosunku do poprzednich przygód, ponieważ moglibyśmy losowo stracić dzień lub tydzień (zwykle goniąc za nowymi błędami) z jego odpraw, które psują rzeczy (nazywamy te „robstacles”). Niektóre poprawki w jego kodzie spowodują usunięcie pół tuzina błędów z powodu splątanej i niechlujnej aplikacji (moje zalecenie donuke z orbity i zacznij od nowa, ponieważ to jedyny sposób, aby upewnić się, że nie został zaakceptowany).

Kiedy jesteśmy w hojnym nastroju, nazywamy go „programistą z głową w dół”. Ma tendencję do spoglądania w dół na klawiaturę i szybkiego pisania. Nie zwraca uwagi na to, co robią inni.

Czy bycie dobrym programistą kompensuje choć trochę?

Nie. Większość programistów, którzy są złymi graczami zespołowymi, ma bardzo wysoką opinię na temat swoich umiejętności, co nazywa się efektem Dunninga-Krugera . PDF z papieru.

Może: solowy programista musiałby być znacznie lepszy niż reszta zespołu. Ale to tylko oznacza, że ​​nikt inny nie może zachować tego, co robi; a kiedy tak się dzieje, prawdopodobnie oznacza to, że solowy programista nie jest wcale lepszy od reszty zespołu - on (i prawie zawsze jest facetem) jest po prostu lepszy w oszukiwaniu wszystkich.

W zakresie tworzenia oprogramowania biznesowego firma będzie istnieć długo po twoim odejściu. Programy zostały najprawdopodobniej napisane przed rozpoczęciem i będą utrzymywane długo po twojej nieobecności. Jeśli piszesz rzeczy, które są tak wyjątkowe i niesamowite, że nikt inny ich nie rozumie, to kończy się sytuacja, w której znajduje się Naughty Dog - ich główny programista zrezygnował, nikt inny nie rozumie prawnie zastrzeżonego języka programowania, który napisał (i napisał) facet rzeczy w), więc teraz muszą zmienić wszystko na C ++.

Czy to normalne, że programista ma wizję swojej pracy zamiast robić to, co mu powiedziano?

To jest powszechne - jak korek drogowy lub cukrzyca. Nie nazwałbym tego normalnym. W świecie korporacyjnym jest wiele innych rzeczy do rozważenia; silne ego, które ma wielu programistów, zazwyczaj powoduje, że deweloper myśli, że nic innego się nie liczy. Ten „brak dopasowania” i brak uwzględnienia dla reszty firmy powoduje, że tak wielu typów menedżerów dochodzi do wniosku, że ciężko jest pracować z programistami.


Tak, już myślałem o tym efekcie, nie wiedząc, że ma on jakąś nazwę nad jakimś naukowcem. W tym momencie nigdy nie wiadomo, czy jesteś wątpliwym geniuszem czy arogancką głupią osobą. Nie sądzę jednak, że jestem arogancki, ale myśląc, że na tym świecie jest wiele zamieszania i głupoty, nie wiem, czy to oznacza być aroganckim. Wiem tylko, że nie oświadczam wyraźnie, że mam rację, przynajmniej wyrażam różne rzeczy poprzez pytania, aby ludzie mogli wyrazić swoje myśli. Kiedy powiedziano mi, że połączona lista jest ostatecznym rodzajem struktury danych, jestem sceptyczny, ale nie arogancki.
Jokoon

Trochę trudniej jest nazwać recenzje kodu stratą czasu.
jfs

5

To umiejętność, której można się nauczyć. Możesz uczyć się teraz (po prostu próbując współpracować z innymi) lub uczyć się na własnej skórze, w pracy. (Sugerowałbym ten pierwszy.)

Jeśli nie możesz pracować z innymi ludźmi, nie możesz budować dużych systemów. Nie możesz także pracować z ludźmi mądrzejszymi od siebie, co oznacza, że ​​nie możesz nauczyć się tyle lub tak szybko.


3

Bycie dobrym programistą zrekompensuje trochę, ale tylko trochę. Przez szesnaście lat w branży wszyscy najlepsi programiści, z którymi współpracowałem, mogli nawiązać kontakt z ludźmi - być może nie przyszli do nich naturalnie, ale poradzili sobie z tym i była to absolutnie kluczowa umiejętność. Tych, którzy nie mogli, byli tolerowani, ale szczerze mówiąc niewiele więcej.

Dla mnie najważniejsza jest umiejętność współpracy z innymi, to użytkownicy i analitycy. Nie ma znaczenia, jak dobrze potrafisz kodować, jeśli kodujesz niewłaściwy kod. Kluczem do tego jest dobra współpraca z ludźmi, którzy definiują produkt.

Pierwszym krokiem może być lepsze zrozumienie siebie. Mówisz, że z przyjemnością szanujesz opinie innych, ale czy to naprawdę prawda? Jeśli tak, to dlaczego sugerujesz, że masz skłonność do zajmowania stanowisk moralnych w kwestiach (które są wręcz przeciwne do szanowania poglądów innych)?

Ogólnie rzecz biorąc, kontaktowanie się z innymi zwykle polega na ignorowaniu tego, kto ma rację, a kto się myli (który w to wierzy lub nie ma znaczenia w 80% sytuacji) i koncentruje się na robieniu tego, co posuwa projekt do przodu.


3

Profesjonalne tworzenie oprogramowania dzisiaj jest przede wszystkim wysiłkiem zespołu. Najlepsze oprogramowanie powstaje dzięki dzieleniu się nowymi pomysłami i wysokiej współpracy, a nie majstrowaniu w samotności. Kowboj koder ideału jest znanym przeszkodą dla zespołów. W rzeczywistości jest z definicji całkowitym przeciwieństwem pracy zespołowej.

Więc tak, słabe umiejętności drużynowe w otoczeniu drużynowym są bardzo złe. Ale jeśli naprawdę chcesz z nim pracować, nie ma powodu, dla którego ostatecznie nie będziesz świetnym współpracownikiem zespołu (z dużymi umiejętnościami programowania)!


3

Inni opisali już większość tego, co chciałem powiedzieć, więc dodam to: tylko dlatego, że masz opinię lub wizję, nie oznacza, że ​​masz rację lub że twoje podejście jest najlepsze. Wiele możesz się nauczyć od innych, jeśli otworzysz umysł na możliwość, że mają oni także opinię i / lub wizję.

Praca zespołowa polega na połączeniu wszystkich tych opinii w coś, co opiera się na zbiorowym doświadczeniu zaangażowanych osób i rozwiązuje problemy, których jedna osoba może nie wziąć pod uwagę.

To była jedna z pierwszych lekcji, których nauczyłem się podczas pracy, a potem stałem się lepszym programistą.


2

Jeśli nie możesz współpracować z innymi i nie jesteś urodzonym geniuszem kodującym z natury, zasadniczo blokujesz się przed pracą nad jakimkolwiek nietrywialnym projektem, ponieważ dla nich potrzebujesz zespołu, jeśli tylko obniżenie współczynnika autobusu.

Jeśli po prostu nie lubisz kontaktu fizycznego, ale dobrze pracujesz z telepracą lub na listach dyskusyjnych typu open source, musisz specjalizować się w umiejętnościach pozwalających na taką pracę.


2

Niestety może to stanowić pewien problem, ponieważ rzadko pracuje się nad dużymi projektami i nie musi pracować w zespole. Nawet jeśli pracujesz nad projektem współzależnie, na ogół zauważysz, że musisz bliżej współpracować z użytkownikami końcowymi, którzy wszyscy wracają do pracy zespołowej, więc jest to bardzo ważne.

To powiedziawszy jednak, jak zauważyli inni, jest to umiejętność do nauki (do pewnego stopnia) i jeśli włożysz w to wysiłek. Istnieją większe kursy, które można odbyć tutaj w Stanach Zjednoczonych w większych miastach, aby rozwinąć umiejętności przywódcze; jednak częścią bycia dobrym liderem jest także bycie dobrym naśladowcą, więc te umiejętności również są rozwijane. Podobnie, umiejętność skutecznego komunikowania się w miejscach publicznych jest czasem umiejętnością, z którą ludzie muszą ćwiczyć i jest związana z umiejętnościami pracy w zespole, ale czasami jest nadużywana - ktoś, kto nie jest w stanie skutecznie komunikować się, może być cytowany jako nie będący „graczem zespołowym” wystarczy trochę popracować nad umiejętnościami komunikacyjnymi.

Jednak duża część pracy z zespołem polega na tym, że do pewnego stopnia poznajesz siebie i czujesz się dobrze zarówno ze sobą, jak i z innymi osobami, więc czasem nie ma nic złego w rozmowie z psychologiem lub doradcą, aby sprawdzić, czy można coś poprawić w odniesieniu do pracy z innymi.

Jeśli chodzi o twoją karierę jako całość, tutaj, w Stanach Zjednoczonych, reputacja „bycia trudnym do pracy” lub „nie bycia graczem zespołowym” może być bardzo niekorzystna dla twoich długoterminowych perspektyw kariery i zaryzykowałbym przypuszczenie że byłoby tak samo w większości innych krajów. Jest to również trudna do zniesienia reputacja, gdy zostanie ustanowiona bez przeprowadzki do innej firmy lub nawet innej branży, w zależności od dziedziny, w której pracujesz.


2

Ponieważ jesteś dobrym uczniem, powinieneś nauczyć się jeszcze jednej rzeczy, o której niektórzy już wiedzą.

  • Każdy jest inny i wszystkie są cenne.

Są chwile na bycie niezależnym i są chwile, by się połączyć. Oba są ważne.

Ponieważ jesteś w szkole, możesz ćwiczyć ciekawość i szukać nowych i różnych sposobów działania. To jest dobra rzecz.

Współpracując z zespołem oprogramowania, możesz przekazać swoje dobre pomysły. Niektóre zostaną zaakceptowane. Niektórzy nie. Następnie wszyscy „przykładacie ramię do kierownicy” i wykonacie pracę. To też dobrze.

Moje doświadczenie w projektach polega na tym, że na początku morale grupy jest niskie, kiedy ludzie wciąż starają się skupić na szerszej perspektywie. Następnie morale stale rośnie, gdy postęp jest osiągany w kierunku celu. Pod koniec jest bardzo wysoka, gdy twoje „dziecko” zaczyna się „rodzić”. To coś, czego nie chcesz przegapić.


+1 Pod koniec jest bardzo wysoka, ponieważ twoje „dziecko” zaczyna się „rodzić”. - Przy moim ostatnim projekcie czułem się dokładnie tak :-).
Oliver Weiler

@Helper: Tak. To, czego nie powiedziałem, to to, że znów zaczyna się
obniżać,

Ale te cenne chwile są powodem, dla którego jesteśmy programistami, prawda :-)?
Oliver Weiler

2

Mogę wymyślić wielu doskonałych programistów, którzy są (przez wielu) uważani za „dość trudnych w pracy”:

W tej branży uważam, że spora część z nas oczekuje i zakłada, że ​​kompetencje i umiejętność wyrażania naszych kompetencji są kluczowe. W końcu idziemy do pracy, aby wykonać pewne zadania, aby zarabiać pieniądze, nawiązywanie przyjaźni jest drugorzędne.

W pewnym momencie swojego życia zdasz sobie sprawę z jednej z dwóch rzeczy:

  1. Jesteś w stanie być tak złośliwy, wycofany, aspołeczny, cyniczny lub niegrzeczny, jak chcesz, ponieważ pomimo twojego zachowania twoje umiejętności (i umiejętność wyrażania swojej wiedzy) kończą wszystkie argumenty.

  2. Jesteście jak wszyscy inni i musicie być w stanie pracować w zespole, jednocześnie znosząc (i wybieranie mózgów) złośliwe, wycofane, aspołeczne, cyniczne i niegrzeczne zachowania od innych, których umiejętności i biegłość w artykułowaniu wiedzy kończą większość argumentów.

Jeśli kwestionujesz to, myślę, że widzisz pewną wartość uczestniczenia w zgodzie w zespole i być może „robienie tego ze względu na robienie tego” jest wystarczająco dobrą wymówką, aby zbadać tę możliwość.

Jestem też bardzo podobny do ciebie. Nienawidzę zakłóceń, zajęło mi prawie pięć lat, aby nauczyć się, jak nie przeszkadzać i zwalniać ludzi. Pracowałem również w zespołach, w których nauczyłem się więcej w ciągu miesiąca, niż sam mogłem w ciągu roku. Czy to nie dziwne, że chcesz mieć wokół siebie ludzi tylko wtedy , gdy masz coś ciekawego do pokazania lub dyskusji?

Jeśli jeszcze go nie widziałeś, obejrzyj film „ Prawdziwy geniusz ”. Zwróć szczególną uwagę na Lazlo Hollyfelda . Wskocz do drużyny z otwartym umysłem i pożycz moją piżamę.


2

Nie ma nic złego w posiadaniu silnych opinii na temat tego, jak powinno być. Każdy świetny programista ma ich wiele. Musisz jednak zadać sobie pytanie: dlaczego piszę ten kod?

Jeśli jest to dla twojej własnej rozrywki i możesz sam wykonać całą pracę, zrób wszystko, co chcesz. Jeśli jednak robisz to, aby inni mogli z niego korzystać, lub potrzebujesz pomocy, lub jeśli oczekujesz, że inni programiści utrzymają ją po tym, jak się nudzisz, musisz zacząć brać pod uwagę potrzeby i wyobrażenia innych osób.

Wizja jest w porządku. Ale to naprawdę robi różnicę tylko wtedy, gdy możesz przekonać innych ludzi do podzielenia się twoją wizją. Gates, Jobs i Torvalds zdołali urzeczywistnić swoje wizje, tworząc produkty, które służyły wielu ludziom, i zachęcając ich do kupowania ich. Praca wyłącznie na swój sposób jest czystsza i bardziej satysfakcjonująca, ale wiąże się z pewnymi kosztami. Możesz, jak powiedział Voltaire, pozwolić, by doskonały był wrogiem dobra („Le mieux est l'ennemi du bien”).


1

Praca zespołowa jest ważną częścią inżynierii oprogramowania. Jeśli pracujesz sam, możesz nie przejmować się tym, jak inni są i czego ludzie od ciebie oczekują. Ale jeśli pracujesz z inną osobą, współpraca naprawdę się liczy. Jeśli chodzi o oprogramowanie, to, co rozumiesz przez pracę zespołową, to naprawdę „ dobra komunikacja ”. Po prostu uszanuj swojego kolegę i bądź tolerancyjny wobec wszystkich pomysłów. Powinno być dobrze.


1

Jeśli w coś wierzysz, powiedz to i masz na myśli, ale raz udowodniono, że jest źle lub przewyższało, zaakceptuj to i wyciągnij z tego wnioski. Praca zespołowa nie polega na ciągłym uzgadnianiu, ale na znalezieniu najlepszego rozwiązania w danej sytuacji i czasie.


1

Ponieważ właśnie przygotowujesz się do wejścia na rynek pracy, zamierzam wskazać coś innego.

Programiści na poziomie podstawowym nigdy nie są gwiazdami. Nie możesz podjąć pracy, myśląc, że jesteś lepszy niż wszyscy inni, ponieważ w oczywisty sposób nie jesteś. Konkurowałeś z innymi ludźmi na swoim poziomie, więc możesz pomyśleć, że jestem lepszy od tych ludzi, muszę być świetnym programistą.

Ale ktoś świeżo po szkole nie wie, co wie osoba z dziesięcioletnim doświadczeniem zawodowym. Po prostu jeszcze tego nie wiesz. Teraz przyznaję, że nie każdy z dużym doświadczeniem jest gwiazdą, a samo bycie na poziomie podstawowym nie oznacza, że ​​nie można być porządnym programistą. Nie oznacza to nawet, że nie możesz zostać gwiazdą z mniejszą ilością przypraw niż niektórzy inni ludzie (cóż, niektórzy nigdy nie będą gwiazdami, ale to też OK).

Ale nie będziesz mieć wiarygodności, aby wdrożyć swoje pomysły, dopóki nie będziesz kimś innym niż młodsza osoba w zespole. Aby uzyskać tę wiarygodność, musisz być graczem zespołowym. Musisz dowiedzieć się o domenie biznesowej i o tym, jak działają firmy. Musisz zrozumieć, że Twoje osobiste potrzeby i pragnienia są nieistotne w większości miejsc pracy. Zostaniesz zatrudniony do wykonania określonej pracy i uzyskania wyników. Dopóki nie wyprodukujesz niektórych z nich, ludzie będą sceptycznie nastawieni do wszystkiego, co sugerujesz, nawet jeśli masz rację. Musisz iść spacerem, zanim zaczniesz mówić.


Nie obchodzi mnie to, że będę supergwiazdą lub nie będę nią, w rzeczywistości nie obchodzi mnie to. Wolę myśleć o mentalności i tym, jak ludzie myślą i / lub wolą takie lub inne rzeczy. Chodzi bardziej o opinie i wiedzę o tym, co dzieje się w tym biznesie, niż o coś innego. Nie sądzę, aby jeden programista był lepszy od drugiego, ponieważ przedstawił swoje dowody i myślę, że ludzie powinni po prostu próbować zignorować te punkty.
Jokoon

Jeden przykład: pewnego dnia przeczytałem artykuł zatytułowany „ciemna strona C ++” i postanowiłem włożyć dysk sieciowy na wypadek, gdyby niektórzy ciekawi ludzie zdecydowali się go przeczytać. Nasz nauczyciel programowania skomentował ten artykuł i uznał, że to dobra lektura. Nie ma znaczenia, że ​​jestem cenniejszy niż inni programiści, ale pokazuje, że mogę być dobrym źródłem do nauczania innych, którzy mogą nie mieć takiej samej ciekawości jak ja.
Jokoon

0

Skończysz pracując sam.
Korzyści z pracy w zespole:
1- Interaktywna pomoc: nie utkniesz w problemie przez wiele godzin / dni.
2- Nauczysz się rzeczy, których nie znajdziesz w książkach / samouczkach online, na forach.
3- Konkurs: zwiększy twoją motywację do pokonania członków drużyny.
4- Dyskusje: co jest lepsze niż godziny czytania książek i blogów.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.