Radzenie sobie z nieelastycznymi programistami


17

Czasami programiści, którzy pracują nad projektem od dłuższego czasu, stają się nieelastyczni i trudno jest z nimi uzasadnić. Nawet jeśli uda nam się ich przekonać, może nie być prawdopodobne, aby zastosowali nasze sugestie.

Na przykład niedawno dołączyłem do projektu, w którym proces kompilacji i wydania jest zbyt skomplikowany i zawiera niepotrzebne przeszkody.

Zasugerowałem, abyśmy pozbyli się części narzutów związanych z programowaniem (takich jak wypełnienie kilku arkuszy kalkulacyjnych) tylko poprzez zintegrowanie narzędzi do zarządzania defektami i kontroli wersji (oba są narzędziami IBM-Rational, więc integracja może być bardzo łatwym jednorazowym wysiłkiem). Ponadto, jeśli użyjemy narzędzi takich jak Maven & Ant (projekt obejmuje Javę i niektóre produkty COTS), kompilację i wydanie można uprościć, co powinno ograniczyć ręczne błędy i interwencje.

Udało mi się przekonać innych i jestem gotów podjąć wysiłek opracowania dowodu koncepcji. Ale „starszy” programista nie chce, być może dlatego, że obecny proces czyni go bardziej wartościowym.

Jak poradzić sobie z tą sytuacją bez rozwijania tarcia w zespole?


2
Myślę, że musisz poszerzyć swoje pytanie o kilka konkretnych przykładów. W przeciwnym razie „uderz ich w głowę kijem”, „wyjdź”, „napisz oficjalne dokumenty, wykresy i prezentacje PowerPoint, aby przekazać swoje pomysły” - to jedyne odpowiedzi, jakich możesz się spodziewać ...
Dean Harding

„będą nieugięci w przyjmowaniu sugestii na pokład” - masz na myśli „przeciw przyjmowaniu sugestii na pokładzie?”
ozz

Dzięki za wyjaśnienie sprawia, że ​​pytanie jest o wiele bardziej wartościowe i użyteczne, IMO. +1!
Dean Harding

2
Często myślałem, że programowanie wystarczająco długo doprowadziłoby ostatecznie do umieszczenia w szpitalu psychiatrycznym.
Marcie

5
@ Marci-Zawsze wierzyłem, że dziedzina rozwoju oprogramowania pozwoliła procentowi populacji uniknąć szpitali zdrowia psychicznego. Nie dlatego, że nie powinny być zinstytucjonalizowane, ale że mogą się ukryć w niektórych zespołach programistów.
Jim Rush

Odpowiedzi:


21

Jesteś nowym członkiem zespołu i chcesz zmienić niektóre podstawowe aspekty działania zespołu. Powodzenia, wyczuwam szczęśliwy zespół w twojej przyszłości.

Ok, kilka praktycznych porad:

Udowodnij się zespołowi. Musisz to zrobić z technicznego i niezawodnego punktu widzenia. Jeśli chcesz, aby ludzie cię śledzili, musisz podać im powód.

Poznaj historię metodologii. Dlaczego to istnieje? Jaki problem wtedy rozwiązywał? Upewnij się, że twoje rozwiązanie jest naprawdę korzystne dla zespołu. Być może twoje zmiany są lepsze, ale mogą nie rozwiązać problemu, który ma zespół.

Poznaj swoje przeszkody. Znajdź powody ich odporności i pracuj nad tymi przedmiotami.

Jeśli chcesz być agentem zmian, dowiedz się, jak odnieść sukces jako agent zmian . Dziesiątki dostępnych książek i innych źródeł dostarczają znacznie więcej informacji niż tutaj.

I tak, życzę powodzenia. Ale proszę, ze względu na twoje szczęście i szczęście twojego zespołu, bądź mądry. Twoje pragnienie zmiany procesu bez inwestowania energii w tworzenie właściwej ścieżki może przynieść znacznie więcej szkody niż pożytku.


+1 za zrozumienie historii metodologii. W wielu przypadkach istnieją rzeczy, które wydają się irracjonalne, które mają wysoce racjonalne podstawy. Często problemem nie jest to, że proces jest niewłaściwy, ale to, że i powody tego zostały źle wyjaśnione, ponieważ jest to druga natura dla istniejącego zespołu, który w rezultacie nie rozumie tego, co należy wyjaśnić nowicjuszowi .
Jon Hopkins

1
@Jon Hopkins: Alternatywnie proces jest zły, ale powstał w źle pomyślanej reakcji na prawdziwe problemy. W obu przypadkach propozycje nowego przybysza zostaną odrzucone z całkowicie uzasadnionego powodu, że nie rozumie prawdziwych problemów, a jedyną nadzieją nowego przybysza jest zrozumienie historii i problemów, które doprowadziły do ​​obecnego procesu.
David Thornley,

@David - Z pewnością jest to możliwe, ale myślę, że to samo dotyczy - nie zakładaj, nie próbuj zrozumieć szczegółów i historii, a następnie zadzwoń.
Jon Hopkins

2
Nie widziałem jeszcze zespołu, który „robi to źle” z jakiegokolwiek innego powodu niż ignorancja techniczna. Wydaje się to kolejnym przypadkiem, w którym „nowy facet” wie lepiej niż wszyscy inni, ale nie zostanie wysłuchany z powodu tego problemu „wiarygodności”, więc wszyscy będą nadal robić rzeczy niepoprawne, nawet nie zdając sobie z tego sprawy.
Wayne Molina,

@Wayne: gdyby była to tylko ignorancja techniczna, wystarczy wskazać luki w wiedzy. Biorąc pod uwagę, że tak nie jest, chodzi o coś więcej niż ignorancję. Wiele osób ze swej natury i sytuacji jest odpornych na zmiany. Co do powodów, wiele. Proste wyszukiwanie „dlaczego ludzie są odporni na zmiany” przyniesie wiele użytecznych wyników.
Jim Rush

7

Byłem w pozycji, o której wspomniałeś. Spędziłem lata jako programista Java i ostatecznie podjąłem pracę, w której wszyscy używali Smalltalk. Moją pierwszą reakcją było „OMG, używają tej przestarzałej technologii” i zacząłem próbować rozwiązywać specyficzne problemy Smalltalk z rozwiązaniami Java. Mogę sobie tylko wyobrazić, jak bolał mnie głowa innych programistów, którzy nienawidzili Javy z pasją.

Dopiero, gdy dostałem średni projekt do pracy, podczas gdy pod kierunkiem dwóch starszych programistów w ciągu kilku miesięcy zacząłem rozumieć język Smalltalk i nauczyć się go lubić. Od czasu odejścia z tej pracy i powrotu do programowania Java, czuję się bardziej elastyczny, ponieważ mogę podjąć projekt i wdrożyć go w dowolnym języku używanym przez firmę. Najważniejsze, aby ci ludzie zrozumieli, że język to nic innego jak medium. Poświęciłem też czas na naukę siebie Lisp i Erlang, ale to może nie działać u wszystkich.

Jako strategię budowania zespołu polecam osobom, z którymi masz problemy, siedem języków w siedmiu tygodniach .

Myślę, że sprowadza się to również do tego, ile czasu ci ludzie są skłonni zainwestować w zwiększenie elastyczności. Problem z większością uniwersytetów (przynajmniej tych, które widziałem) polega na tym, że są one stronnicze w stosunku do określonego języka, a jego studenci stają się „zinstytucjonalizowani”, jak wspomniałeś. Myślę, że częścią twojej strategii powinno być kultywowanie elastyczności w swoim zespole. Można to uzupełnić opracowaniem opartym na domenach .

(1) Modeluj domenę (Prostą) (2) Zaimplementuj ją, używając dwóch różnych języków (tj. Java i Lisp)

Ponownie, przy założeniu, że są oni zmotywowani do zrobienia powyższego i są gotowi poświęcić swój czas, aby to osiągnąć.

Mam nadzieję że to pomoże


1
Proszę użyć tytułu książki w linku zamiast „tej książki”. To jeden krok mniej dla tych, którzy czytelnicy decydują, czy kliknąć, czy nie. Zwłaszcza ci, którzy go wcześniej czytali.
Huperniketes

Dzięki za heads-up Huperniketes, byłem bardzo podekscytowany, kiedy to napisałem i nie wróciłem do poczytalności, żeby sprawdzić, co napisałem.
Desolate Planet,

4

Mógłbym tu być całkowicie niewłaściwy, ale wydaje mi się, że te same problemy są powszechne na szerszą skalę i dotyczą ludzkiego konserwatyzmu. Ludzie często odmawiają zmiany znanych wzorców zachowań z powodów, które są zbyt liczne, by je wymienić.

Będąc rosyjskim deweloperem (i dlatego widząc mniej racjonalnego zachodniego pragmatyzmu), widzę praktyczne rozumowanie jako o wiele mniej przekonujące niż próba chodzenia w czyichś butach.

Innymi słowy, wspomniałeś, że starszy programista ceni sobie własne stanowisko związane z bieżącym schematem pracy. Być może powinieneś go przekonać, że nowy sposób robienia rzeczy sprawi, że jego pozycja będzie jeszcze bardziej cenna i istnieje wiele sposobów, aby to zrobić. Na przykład możesz poprosić go, aby faktycznie wypowiedział twój pomysł i zdobył uznanie, lub możesz znaleźć konkretne miejsce w procesie, który może kontrolować wyłącznie itp.

Wierzę, że elastyczność poza pozornymi zaletami twojego pomysłu może być twoim magicznym zaklęciem tutaj.


Kredyt powinien być udzielany tam, gdzie jest on należny. Starszy facet nadal mógł przejąć inicjatywę w zakresie wdrażania systemu, ale nadal powinien przyznać się do tego, który dał sugestię i opracował większość szczegółów wdrożenia. To tylko sprawiedliwe.
Htbaa

To jest etyka, którą zawsze należy brać pod uwagę. Ale ponieważ jest to bardzo strategiczny zestaw zasad, etyka niekoniecznie gra dobrze dla natychmiastowego wyniku.
etranger

2
@Htbaa - wykonanie pracy jest prawdopodobnie ważniejsze, aby upewnić się, że wszyscy otrzymają należny kredyt. Spójrzmy prawdzie w oczy: życie nie jest sprawiedliwe.
Stephen C

Chyba masz rację Stephen C
Htbaa

3

Udało mi się przekonać innych i jestem gotów podjąć wysiłek opracowania dowodu koncepcji. Ale „starszy” programista nie chce, być może dlatego, że obecny proces czyni go bardziej wartościowym.

Zamiast rzucać wścibstwa na postać starszego programisty (zły ruch), być może powinieneś spróbować zrozumieć, dlaczego nie jest entuzjastyczny:

  • Może myśli, że jesteś jedną z tych osób, które przeceniają swoje pomysły. Może wątpi w to, że możesz je dostarczyć.

  • Może myśli, że przesadzasz z problemami. (Nie mogą być aż tak źli ...)

  • Może myśli, że nie do końca rozumiesz ryzyko techniczne.

  • Może myśli (wie), że są teraz ważniejsze rzeczy do zrobienia.

  • Może po prostu pocierasz go w niewłaściwy sposób.

Moja rada byłaby dla niego udowodnieniem. Na przykład realizując projekty, które faktycznie otrzymałeś. Kiedy bardziej ufa twojej zdolności i osądowi, powróć do tego problemu.

Jeśli chcesz teraz realizować linię „usprawnienia procesu”, radzę robić to powoli, małymi krokami.

Należy pamiętać, że niewątpliwie istnieje ryzyko, że proponowane zmiany będą miały ogromny wpływ na produktywność grupy, a nawet na zdolność do utrzymania istniejącego oprogramowania. Jeśli tak się stanie, osoba odpowiedzialna prawdopodobnie uzyska najwięcej obrażeń od kierownictwa wyższego szczebla.


2

Zinstytucjonalizowany o czym konkretnie? Technologie, wzorce, praktyki?

Jeśli są w organizacji / projekcie od dłuższego czasu, są szanse, że są starszymi programistami i mają odpowiedzialność / doświadczenie, aby wykonywać te połączenia, i mieli doświadczenie w projekcie, a nie tylko warunkowane jak eksperyment z 5 małpami .

Rozwiązanie ich przekonujących zależeć będzie od tego, jaki jest temat, ponieważ jeśli wzór / technologia jest już wybrana, będzie dobry powód i będzie musiał być lepszy powód do zmiany, aby uzasadnić rzucenie pracy i zapoznanie się itp. ., jeśli tak, rozwiązaniem jest zorganizowanie spotkania przez architekta / starszego programistę w celu demokratycznego wyboru najlepszego rozwiązania.


1

Jeśli zespół naprawdę MASUJE niepotrzebne blokady dróg, to prawdopodobnie będzie bardzo szczęśliwy, że pomożesz im je naprawić. Zauważ jednak, że może istnieć bardzo dobry powód, dla którego tam są, i będziesz wyglądać głupio, jeśli będziesz musiał powiedzieć „och, cóż, mój fantastyczny pomysł nie działa wtedy” po tym, jak sprzedał go wszystkim przez długi czas.

Najpierw zbadaj, a następnie wystąp. Zauważ też, że możliwość POKAŻENIA, w jaki sposób sugerujesz poprawę, jest znacznie lepsza niż falowanie ręczne.


1

Skłaniam się do stwierdzenia, że ​​to ty jesteś „nieelastycznym programistą”. Jesteś nowy w tym projekcie, ale nalegasz, aby Twój pomysł był najlepszy, a facet, który prowadzi projekt, który był ich dłużej i wie, że system wewnątrz i na zewnątrz jest tuż za nim.

Jestem dość doświadczony i bardzo dobrze oceniany i często przydzielam się do naprawy trudnych projektów jako członek zespołu tygrysów. Nawet wtedy wciąż poświęcam czas na naukę howsa, dlaczego, dynamiki zespołu, projektu i ich praktyk, a nie szalonego wchodzenia i mówienia im, jak to jest złe. W rzeczywistości nigdy nie mówię, że to, co robią, jest złe, ponieważ nie otrzymuję pożądanej odpowiedzi, a zazwyczaj to, co robią, nie jest złe, po prostu wymaga drobnych poprawek.

Każdy projekt jest wyjątkowy. Każda drużyna jest wyjątkowa. Twoje rozwiązanie może być lepsze dla Ciebie i programistów, ale może nie być lepsze dla lidera, klienta, firmy lub projektu, ale ponieważ nie masz doświadczenia z projektem, aby wiedzieć lepiej, nie wiedziałbyś odpowiedź na to.


0

Najlepszym sposobem, aby zachęcić ludzi do robienia tego, co chcesz, jest przekonanie ich, że wszystko jest ich pomysłem. Zamiast bezpośrednio sugerować, przedstaw opcje. Jeśli twoje pomysły są wyraźnie lepsze niż alternatywy, daj starszemu deweloperowi możliwość ich wybrania i uczynienia ich własnymi. Nie martw się o uzyskanie kredytu. Ludzie, którzy mają znaczenie, będą wiedzieć, co się dzieje.

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.