Słuchałem podcastu Scotta Hanselmana i Roba Conery'ego, This Developer's Life .
W najnowszym odcinku omawiają cechy osobowości:
1.0.4 - Być wrednym.
Co ludzie oznaczają w naszej branży? A co z agresywnością? Pewni? Co za różnica? Wolałbyś mieć sierżanta wiertarskiego dla szefa lub mistrza zen? Rozmawiamy z Cyrą Richardson i Gilesem Bowkettem.
Zastanawiałem się, jakie cechy łączyły najlepszych menedżerów , dla których pracowałeś?
EDYCJA: Aby wyjaśnić, ponieważ było kilka bliskich głosów, interesuje mnie, czy istnieją cechy wspólne menedżerom programistów, które niekoniecznie są cechami wymaganymi przez kierownika innego zawodu.
Jeśli chodzi o to, czy jest to związane z programowaniem, czy nie, cóż, nie chcę zadawać tego pytania na stronie, która nie dotyczy programowania, ponieważ szczerze mówiąc, nie interesuje mnie to, co ludzie, którzy zarabiają na życie z puszkami zupy chcą od swoich menedżerów, ponieważ jestem zainteresowany tym, czego programiści chcą od swoich menedżerów.
źródło
Odpowiedzi:
Z mojego doświadczenia wynika, że była to kombinacja następujących elementów:
źródło
Joel Spolsky nazywa to „ warstwą abstrakcji ”. Rób, co trzeba, aby programować. Daj mi znać, co się dzieje w firmie, ale trzymaj się z dala od polityki. Mimo że wciąż muszę to zrobić, przynajmniej przyznaję, że prośba to bzdura!
źródło
Ktoś, kto będzie walczył za mnie w bitwach politycznych i usunie przeszkody, które uniemożliwiają mi załatwienie sprawy.
Kropka.
źródło
Chęć słuchania ludzi, którzy dla nich pracują.
Miałem bardzo skłonnych technicznie menedżerów i miałem takich, którzy nawet nie wiedzieli o wielozadaniowości („och wow! Skąd nauczyłeś się sztuczki Alt-Tab?”), Ale to, że wszyscy Naprawdę podobała mi się wspólna praca, ponieważ wiedzieli, że nie wiedzą wszystkiego i byli gotowi słuchać, kiedy ci z nas, którzy faktycznie wykonali pracę, którą mieli zarządzać, przedstawili pomysły, problemy lub sugestie dotyczące tej pracy.
źródło
On / on chroni swój zespół i przyjmuje na siebie odpowiedzialność
Jeden z twojego zespołu zawiesił serwer z danymi produkcyjnymi. Twój menedżer weźmie pełną odpowiedzialność. W końcu odmówi powiedzenia swojemu kierownikowi, który popełnił błąd, i stanie przed swoimi ludźmi.
źródło
Zarządzają w oparciu o cele, a nie czas i przede wszystkim troszczą się o to, że je osiągam
Zamiast martwić się, jak długo siedzę przy biurku, martwią się tym, co potrzebuję do wykonania danego zadania. Jeśli oznacza to usunięcie przeszkód lub przeszkód lub pozwolenie mi na pracę przez długie godziny / weekendy, są skłonni poświęcić czas. Jeśli dostanę pracę przed terminem i potrzebuję trochę czasu na wizyty u lekarza lub zajęcia rodzinne, są elastyczni i wyrozumiali.
Z pewnością chcę być pociągnięty do odpowiedzialności w pracy, ale tak powinno być za to, co osiągam, a nie za to, ile czasu spędzam przy biurku.
źródło
Trzymaj mnie z dala od spotkań, w których nie muszę brać udziału. Gdyby menedżerom udało się to zrobić, byliby o wiele bardziej wartościowi.
źródło
Uznanie, że jestem zatrudniony i wynagradzany za podejmowanie decyzji.
źródło
Wspierają cię, gdy mówisz NIE
Jedną z najbardziej demotywujących cech menedżera jest brak odwagi, aby stanąć w obronie swojego ludu i zawsze kłaniać się przed własnym szefem, nawet jeśli oznacza to wpływ na produkt lub zespół.
źródło
proszę nie krzyczeć ... po prostu nie rób tego. (bez względu na to, jak bardzo stresujesz się wielkim terminem, głupimi testerami itp.)
źródło
Ktoś, kto pozwala mi tylko wykonywać swoją pracę.
źródło
Zrozumienie, z czego składa się programowanie. Zdziwiłbyś się, ilu menedżerów nic nie wie na ten temat.
źródło
Uznanie, że jestem zatrudniony i wynagradzany za podejmowanie decyzji.
Nie jestem pracownikiem gastronomicznym za 7 USD / godzinę. Jestem tutaj, aby podejmować decyzje. Jeśli powiedzą mi każdy szczegół, co robić, równie dobrze mógłbym zostać maszynistką.
źródło
(Głęboka) umiejętność empatii .
źródło
Muszę do tego podchodzić z perspektywy najgorszych bossów, dla których pracowałem - dobry NIE miałby tych cech:
Niemożność podjęcia decyzji - najgorsza rzecz, z jaką się kiedykolwiek spotkałem, to szef, który zmieniał zdanie za każdym razem, gdy ktoś z nim rozmawiał. Zmienialiśmy kierunek 4-5 razy dziennie w trzyletnim projekcie.
Kradnie uznanie za działania członków zespołu. Kiedyś mój szef otrzymał ogromną nagrodę, którą rozdali publicznie. Wszystko, o czym wspominali, że to zrobił, tak naprawdę zrobiłem. Nie trzeba dodawać, że skrajnie demotywuje.
Panika, gdy wszystko idzie nie tak. Jeszcze gorzej, gdy panikowanie powoduje, że staje się paskudny. To naprawdę nie pomaga w załatwianiu spraw.
Pchnięcie nożem własnego narodu. Dostaje uznanie, my obwiniamy. I nie wspiera nas w łańcuchu dowodzenia, kiedy powinien.
Nie rozumie procesu tworzenia oprogramowania i nawet nie chce się uczyć na tyle, by wiedzieć, że używamy C # (lub innego wybranego języka). Uważa, że wszystko można zrobić w krótkim czasie i że prosta zmiana na zewnątrz strony User_interface oznacza, że wdrożenie nie potrwa długo. Osoba, która siedzi na zmianie aż do dnia poprzedzającego termin, a potem mówi: „Och, tak przy okazji, musimy to zrobić…” i zawsze prosi o coś, co zmienia podstawową architekturę.
Micromanages lub wcale nie zarządza. Oba są równie złe. Miałem zbyt wielu szefów, którzy nie wiedzieli, że był problem z jednym pracownikiem aż do późna i wszyscy inni musieli zapłacić cenę, aby naprawić bałagan. Miałem też szefów, że musiałem im mówić, żeby przestali mi przeszkadzać co pięć minut, bo inaczej nigdy się nie uda.
Jest politycznie naiwny. Jeśli twój szef nie radzi sobie dobrze politycznie z ludźmi nad nim, będziesz miał problemy z pozyskaniem ludzi, których potrzebujesz, będziesz mieć najgorsze miejsca i jesteś w grupie, która najprawdopodobniej straci pracę w trakcie zwolnienia lub z powodu łatwy sposób na pozbycie się go. Szefowie muszą być dobrzy w polityce biurowej.
Ktoś, kto myśli, że może skrócić godziny projektu o połowę (ponieważ klientowi nie spodoba się ta liczba), a my będziemy w stanie to zrobić w takim czasie bez odpowiedniej zmiany wymagań.
źródło
Kredyt, w którym należny kredyt i wystarczająca wiedza, aby móc go przypisać
Dodałbym dobrze słuchanie, ale zamiast tego głosowałem za tym.
źródło
Ufają swojemu ludowi, że wykonają pracę i nie próbują „hodować kotów”.
Daj swoim ludziom miejsce na popełnianie błędów (oczywiście nie wielkich) i ucz się od nich.
źródło
Ktoś, kto dobrze słucha
i
Ktoś, kto chce rozmawiać ze mną co najmniej raz w tygodniu
źródło
Miałem dobrych menedżerów i źle. Oto niektóre cechy, które zauważyłem u złych menedżerów:
Odsuń się, abyś mógł wykonywać swoją pracę
Dobry menedżer dopilnuje, abyś miał odpowiedni sprzęt do pisania kodu.
Mikro zarządza niewłaściwymi szczegółami
Ten rodzaj menedżera będzie cię gryźć za to, że nie dołączasz podpisu do e-maila, ignorując dodatkową pracę wykonaną przed tym e-mailem.
Nie jest zainteresowany procesem rozwoju
To naprawdę zły znak dla menedżera odpowiedzialnego za programistów. Nie zależy mu na badaniu innych podejść programistycznych, nie będzie wiedział, jaki powinien być numer nowej wersji oprogramowania, nie będzie czytać blogów takich jak Joel on Software lub czegokolwiek związanego z zarządzaniem programistami, np. Peopleware.
Myśli, że jest tam dla mnie, żeby się zgłosić
Ten rodzaj menedżera zaczyna się od tego, że ludzie zgłaszają mu wszystko.
Źle przydziela czas
Biorąc pod uwagę miesiąc dostarczenia projektu programistycznego od początku do końca, ten menedżer przeznaczy 3/4 miesiąca na zespół ds. Projektowania i wymagań, aby wygenerować 1000 słów wiersza i oczekuje od zespołu programistów wdrożenia go w ciągu tygodnia. Będzie także powtarzał wymagania, aż będą „idealne”, dodając mnóstwo szczegółów, aż dokument stanie się bezużyteczny. Ale później w procesie projektowania znajdziesz błędy w dokumentacji projektu i wymagań i zdajesz sobie sprawę, że nacisk na próbę napisania idealnego dokumentu był błędem.
źródło
Myślę, że dwie najważniejsze cechy to podstawowe zrozumienie zasad zarządzania i bycie „jednym z nas”. Niestety, ta dwójka nie zdarza się zbyt często razem, ale kiedy to robią, znajdziesz dobrą osobę do pracy.
Tam, gdzie pracuję, nasz kierownik projektu jest byłym programistą. Jest dobry w ustalaniu priorytetów i kierowaniu pracą - rzeczy, które musi wiedzieć menedżer - ale ma też całkiem niezły pomysł, co się dzieje, gdy muszę zadać pytanie, jak wdrożyć coś, co wymaga od niego zarówno wizji na poziomie zarządzania i wkład techniczny ode mnie.
Boss ma również oba te zestawy umiejętności. W rzeczywistości jest aktualnym programistą, który czasami pracuje nad bazą kodu i dokonuje zmian, gdy inne obowiązki go nie odciągają. Upewnia się, że mamy dobre środowisko pracy, ponieważ intuicyjnie wie, jakie jest dla nas dobre środowisko pracy: w takich warunkach chciałby pracować!
źródło
Walczy o mnie. Nie powinienem się w to angażować dzięki IT. Daje mi potrzebne narzędzia. Komunikuje zasady firmy w dół. Podejmuje decyzje, gdy jest o to poproszony, i pozostaje poza domem, gdy nie jest.
Oświadczenie: Wcześniej pełniłem role kierownicze, ale obecnie nie. Z tego mogę z całą pewnością powiedzieć, że po drugiej stronie stołu może być dość ciężko.
źródło
Ktoś, kto ma jasność co do tego, co należy zrobić, pozwala mi opracować szczegóły techniczne, zapewnia kontekst w razie potrzeby i nie zmienia wymagań, gdy jestem w połowie ukończony.
źródło
Dwie rzeczy:
Punkt 1 daje Ci, jako programistom, menedżer, który naprawdę rozumie, czym jest twoja praca i z czego się składa, i rozumie, czego potrzebujesz (a także nie potrzebujesz), aby wykonywać swoją pracę najlepiej jak potrafisz . Jeśli nie są teraz programistami (a tak naprawdę nie powinni być teraz programistami praktycznymi, ponieważ są menedżerami - i to jest praca na pełny etat), powinni mieć wcześniejsze doświadczenie programistyczne, ale powinno to być dość ostatnio (tj. w ciągu ostatnich kilku lat), aby przynajmniej znali nowoczesne języki programowania, narzędzia, metody i techniki.
Punkt 2 daje menedżerowi, który przyjmuje na siebie obowiązki, chroni swój zespół przed polityką biurową i niepotrzebnymi rozproszeniami i walkami, aby jego zespół otrzymał rzeczy, których potrzebują (umożliwiając w ten sposób punkt 1) i może zarządzać oczekiwaniami ze strony biznesu i tych nad nim (jest to jeszcze ważniejsze w dużej korporacji, w której istnieje wiele poziomów i poziomów zarządzania między tobą (programistą) a osobami podejmującymi decyzje biznesowe (kierownictwo wyższego szczebla)).
W skrócie, posiadanie cechy (1) daje menedżerowi, który rozumie, czego potrzebujesz, aby wykonać swoją pracę, a posiadanie cechy (2) daje menedżerowi, który zapewni ci to, czego potrzebujesz.
Rozmowa Joela Spolsky'ego na Yale (oraz powiązany artykuł „ Command and Conquer and the Herd Of Coconuts ”) przedstawiają to bardzo zwięźle:
Mówiąc o (złym) zarządzaniu w Juno:
Mówiąc o (ogólnie dobrym) zarządzaniu w Microsoft:
źródło
Chcę kogoś, kto jest w stanie (i ma odwagę) rozpoznać i pozbyć się martwego drewna. Ci ludzie szkodzą produktowi i spowalniają jego ukończenie, zejdź mi z drogi! Zbyt wielu menedżerów albo nie może rozpoznać, kto jest złym programistą (albo myśleć, że ten z brudnym biurkiem jest zły lub facet, który wydaje się zaczynać dużo w kosmos, nawet jeśli może być najmądrzejszym lub najbardziej produktywnym twórcą) lub nie chcę być tym, który mówi komuś, że są wypuszczani, więc niech martwe drewno pozostanie rok po roku, powodując krzywdę i niezadowolenie wśród kompetentnych.
Nie chcę być zawstydzony przez menedżera, który nawet nie wie, jakich języków lub zaplecza bazy danych lub innych krytycznych narzędzi używamy. Miałem jedno pytanie (przed klientem) w jakim języku zaprogramowaliśmy po 3 latach zaangażowania w projekt! Nie oczekuję, że ludzie, którzy byli w zarządzaniu od dłuższego czasu, nadal będą na bieżąco z tematami wszystkiego, ale powinni przynajmniej wiedzieć, z czego korzystamy. I powinni być wystarczająco bystrzy, aby nie zadawać takich rzeczy przed innymi, jeśli tego nie zrobią.
Chcę menedżera, który ma odwagę. Nie akceptuj tego nierealistycznego terminu bez cofania się, nie pozwól, by ludzie znęcali się nad twoimi pracownikami ani nie pozwalali deweloperom rouge podążać swoją cichą drogą, nie będąc wychowywanym krótko. Nie zapomnij mi powiedzieć, że robię coś źle, ponieważ boisz się, że mogę się zdenerwować. Menedżerowie istnieją po to, by radzić sobie ze złymi wiadomościami. Chcę kogoś, kto może.
Chcę menedżera, który rozumie, że mam życie domowe, który rozumie, że wyczerpani twórcy popełniają błędy, a realizacja projektu zajmuje 60 godzin tygodniowo niż 40.
Przede wszystkim chcę menedżera, który docenia dobrą pracę i docenia mnie werbalnie zarówno osobiście, jak i do swoich szefów. Chociaż naprawdę tego nienawidzę, kiedy myślą, że zła praca jest dobrą pracą i nagradzają niewłaściwych ludzi!
źródło
Życzliwość byłaby czymś, co tam postawiłbym. Nie lubię mieć lęku, jeśli mój szef za każdym razem decyduje się odwiedzić moją kabinę . Moje wyniki mogą być trochę lepsze, jeśli czuję, że pomagam przyjacielowi, który czasami prosi o przysługę tu i tam, np. Aby zrealizować projekt w terminie, być może będę musiał zostać w biurze przez pewną liczbę godziny, których inaczej nie chciałbym robić.
Kompetencja w zarządzaniu wieloma rzeczami byłaby kolejnym aspektem, którego bym szukał, chociaż do pewnego stopnia może to być postrzegane jako oczywista cecha. Umiejętność rozwiązywania konfliktów i uzgadniania byłaby również czymś, co chciałbym wiedzieć, że mój menedżer może sobie z tym poradzić, ponieważ może się zdarzyć, że będzie to albo programista przeciwko programistom, albo programista przeciwko analitykowi pod względem problemów, które wymagają od kogoś racji, co może nie być w niektórych przypadkach, ponieważ niektóre aspekty pracy mogą mieć wiele interpretacji.
źródło
Ktoś, kto rozumie, że rozwój nie jest pracą fabryczną. Wprowadzenie większej liczby godzin dziennie raczej nie zapewni znacznie wyższej wydajności. Programiści muszą dość często podnosić nos z kamienia szlifierskiego i po prostu nie myśleć o tym, nad czym pracują, aby rozwiązać problem i załatwić sprawę.
źródło
Dobry menedżer chce mi powiedzieć „nie” . Zdają sobie sprawę, że tworzenie oprogramowania jest złym problemem . Tak więc, nawet jeśli menedżer jest bardziej kompetentny niż ja technicznie, zdają sobie sprawę, że mógłbym lepiej poznać problem po prostu dlatego, że to ja wdrażam to rozwiązanie. Jednocześnie informują mnie, gdy brakuje mi kontekstu. Wiele razy menedżerowie mogą podejmować decyzje na podstawie rzeczy, o których wiedzą, że ja nie. Jeśli tak jest, to należy je wypełniać mnie w sprawie szczegółów lub przynajmniej daj mi znać , że wiedzą coś, czego nie robić.
źródło
Pracowałem teraz w kilku miejscach, w których zarządzanie było wyraźnie nietechniczne. Mój obecny pracodawca ma zasadę, że kierownik podejmujący decyzję techniczną jest podstawą do usunięcia. (To nie jest mała firma, o której nigdy nie słyszałeś, mniej więcej jedna trzecia z nas korzysta z naszego produktu). Częściowo w wyniku tej polityki, przynajmniej moim zdaniem, menedżerowie tutaj są znacznie „silniejsi” niż u innych pracodawców. Ponieważ nie są oni zaangażowani w podejmowanie decyzji technicznych, zarząd nie podejmuje stałego ciągu decyzji „od lekko do bardzo złych”, a oni podejmują tylko duże decyzje „na poziomie linii produktowej”.
Najlepsi menedżerowie, których miałem, to ci, którzy „ingerują” w programistów. Dobry menedżer może odróżnić „obowiązkowe spotkanie” od obowiązkowego spotkania i da ci znać.
Podstawową umiejętnością zarządzania jest sprawienie, by programiści czuli kontrolę nad swoim otoczeniem, w zależności od firmy może to być przypomnienie lub złudzenie, ale jest to niezwykle ważna umiejętność.
źródło