Radzenie sobie z podstawową wadą projektową, gdy jesteś nowy w projekcie [zamknięte]


13

Właśnie zacząłem pracować nad projektem typu open source z około 30 programistami. Pracuję nad naprawieniem niektórych błędów, aby dostać się do „pętli” i zostać stałym uczestnikiem projektu. Problem polega na tym, że odkryłem podstawową wadę projektową, która powoduje jeden z błędów, nad którymi pracuję. Ale czuję, że jeśli wysadzę to na liście mailingowej, wyjdę jako arogancki, a niektóre dyskusje na ten temat toczą się z niektórymi ludźmi. Jak mam to zrobić?

Odpowiedzi:


20

Nawet jeśli jesteś pewien, że jest to „podstawowa wada projektowa”, pamiętaj, że jesteś osobą z zewnątrz. Może być tam z dobrego powodu. Lub, w zależności od tego, ile lat ma ten projekt, mógł zostać tam umieszczony z dobrego powodu, a teraz jest nadal dostępny z powodów historycznych.

Zamiast „wysadzić to na liście mailingowej”, spróbuj zadać pytanie. Coś jak:

„Hej, właśnie wpadłem na X i to nie ma dla mnie żadnego sensu. Wydaje się, że właściwym sposobem na wdrożenie tego byłoby Y, ale znowu wiem, że jestem tu nowy i nie chcę wyciągnijcie wnioski. Czy to pomyłka w projekcie, czy też czegoś brakuje? Czy ktoś może mnie wypełnić? Dzięki. ”

Inżynieria jest jednym z niewielu miejsc na świecie, w których pokora jest nadal uważana za prawdziwą zaletę, a zadawanie pytań o „oczywiste problemy” w ten sposób jest naprawdę dobrym sposobem na uzyskanie dobrych odpowiedzi i nauczenie się nowych rzeczy.


2
Jest to zdecydowanie właściwy kierunek. Chcę to po prostu zrobić w sposób, który nie wyjdzie jako „Wiem, że się mylisz i mam rację” i nadal coś z tego wyciągnę.
Matt Phillips

@Matt: Następnie sformułuj to jako „Nie wiem, że mam rację” i postaraj się, aby to nie było sarkastyczne lub oskarżycielskie.
Mason Wheeler

Użyłbym czegoś takiego: „Nie rozumiem, dlaczego tak się dzieje. Czy nie byłoby lepiej / łatwiej / fajniej zrobić to w inny sposób? Myślę, że pomogłoby to również w przypadku błędu XX”
Javier

2
Myślę, że możesz nieco pograć ze sformułowaniami zamiast bezpośrednio powiedzieć „właściwym sposobem na wdrożenie tego byłoby Y”. Przekształcenie go w czyste pytanie „czy jest jakikolwiek powód, dla którego Y nie jest używany”, ma ten sam punkt, nie obniżając stopy. Każdy będzie miał delikatne ego, gdy zostanie zapytany o swój własny kod i odwołując się do swojej wiedzy (dlaczego wybrałeś X zamiast Y) zamiast go kwestionować (Y jest / wydaje się / czuje się lepiej / fajniej / łatwiej niż X) może wywołać bardziej przychylną reakcję.
Steven

6

Jedno z 48 praw władzy :

Wygrywaj poprzez swoje akcje, nigdy przez argument

Jakikolwiek chwilowy triumf, który twoim zdaniem osiągnięty został przez argument, jest tak naprawdę zwycięstwem Pyrrhica: uraza i zła pobudzenie jest silniejsza i trwa dłużej niż jakakolwiek chwilowa zmiana zdania. Jest o wiele potężniejsze, aby inni zgodzili się z tobą poprzez twoje działania, bez słowa. Zademonstruj, nie wyjaśniaj.

Tego nauczyłem się po wielu bezsensownych argumentach.

W tym konkretnym przypadku radziłbym wymyślić bardzo prosty i konkretny fragment kodu, który powinien działać, ale nie działa z powodu tej wady projektowej. Jak mówi stare powiedzenie: „Nie można kłócić się z kompilatorem / tłumaczem”.

Drugą rzeczą jest to, że aby mieć wpływ na grupę, musisz być postrzegany jako członek grupy . Mimo że dołączyłeś do firmy, ludzie nie postrzegają cię jeszcze jako członka grupy. Dlatego może być lepiej iść z ustaloną grupą, dopóki nie nauczą się postrzegać cię jako jednego z nich.


5

Czy możesz zapytać, dlaczego użyto konkretnego projektu? W ten sposób możesz uzyskać więcej historii, ponieważ mogą istnieć dobre powody, dla których wybrano coś, czego nie znasz. Podejdę do wniosku, że nie jesteś ekspertem, który potrafi rozdzielić projekt, ale zapytanie może być sposobem na zdobycie dodatkowych informacji, aby w końcu móc zapytać o znalezioną wadę, aby wiadomość nie była widoczna jako przynęta na płomień lub trolling.


4

Prawdopodobnie nie spodoba ci się to ... ale tutaj ...

Pracuję nad naprawieniem niektórych błędów, aby dostać się do „pętli” i zostać stałym uczestnikiem projektu. Problem polega na tym, że odkryłem podstawową wadę projektową, która powoduje jeden z błędów, nad którymi pracuję.

Nie, nie zrobiłeś. Gdybyś to zrobił, nie wahałbyś się przed tym. Fakt, że sam nie jesteś pewien „fundamentalnej wady projektowej”, oznacza, że ​​jej nie odkryłeś. Próbując wskazać czyjąś pomyłkę, nie kupujesz żadnych znajomych do korzystania z superlatywów (takich jak „podstawowe”).

Co może odkryli jest nieco lepsza konstrukcja, do wydania ty masz. Prawdopodobnie powinieneś go jednak dokładnie przetestować - ponieważ jesteś nowy w projekcie, istnieje większa niż nawet szansa, że ​​nie masz pojęcia, o czym mówisz.

Ale czuję, że jeśli wysadzę to na liście mailingowej, wyjdę jako arogancki

Nazwanie go „podstawową wadą projektową” z pewnością okaże się aroganckie. W tym przypadku nawet wskazanie, że może to być błąd, nie jest najlepszym pomysłem. Jeśli nie wiesz na pewno (i możesz to potwierdzić), że jest to problem, musisz z pokorą zadawać pytania i badać, aż całkowicie go zrozumiesz . Lepsze niż ktokolwiek, kogo próbujesz przekonać.

... a niektóre dyskusje na ten temat toczą się z niektórymi ludźmi. Jak mam to zrobić?

Zatrzymać. To nie jest kwestia moralna i nikogo nie zabija (zakładam). Jeśli zamierzasz być długoterminowym członkiem projektu, musisz najpierw zdobyć zaufanie, zanim je przesłuchasz. Napraw błędy, zrób to niesamowicie (według dowolnych wskaźników wartości grupy), zaprojektuj kilka funkcji i zdobądź miejsce przy stole.

Następnie, nie wskazując palcami ani nie nazywając niczego połamanym, pokornie przywołaj sugestię, aby ulepszyć projekt grupy. I lepiej zastanów się nad wszystkimi konsekwencjami i ich rozwiązaniami, bo inaczej zostaniesz zestrzelony za bycie „naiwnym”. Przygotuj się na spór o to, dlaczego Twój projekt jest lepszy. Przygotuj się na przegraną i graj z wdziękiem.

Jeśli twój pomysł naprawdę jest lepszy, albo zostanie ostatecznie zaakceptowany przez grupę (choć być może nie przez oryginalnego projektanta), grupy to nie obchodzi, lub grupa jest głupia. W każdym z tych ostatnich przypadków, dlaczego w ogóle chcesz być częścią grupy?

...

Jeśli jesteś w stanie, alternatywą jest po prostu zakodowanie tego cholerstwa tak cholernie genialnie, że drżą ze zdumienia o twoją umiejętność kodowania i nie mają innego wyboru, jak zaakceptować elegancką prostotę i wieczną prawdę twojego projektu. Deweloperzy zrobić kompetencje szacunkiem, ale trzeba być ostrożnym - kary za niekompetencję (lub nieuzasadnionej arogancji) jest dość ciężka. Ponieważ jednak zadajesz to pytanie, domyślam się, że genialna i nieskrępowana droga arogancji nie jest tak naprawdę opcją. ;)


2
„Cześć dzięki za powitanie mnie w twoim domu. Gdy wchodzę przez drzwi, chcę, aby wszyscy w rodzinie wiedzieli, że ich dziecko jest brzydkie, a ktoś ubrał go śmiesznie.”

Błąd jest błędem i można go tak nazwać. Mówiąc, że jest to spowodowane „wadą projektową”, wskazuje palcem faceta przed tobą (najbardziej podobnego do „tatusia”) i mówi mu, że jest idiotą.

Niepotrzebne i nieproduktywne. Sugeruję:

„Jeśli chodzi o problem #blah, myślę, że mogę to naprawić, wykonując XY i Z, ale nie jestem pewien, jak wpłynie to na resztę projektu. Czy to byłoby w porządku?”

Gdzie XY i Z rozwiązują problem. Niech ci powiedzą, że to wada projektowa; może być alternatywne rozwiązanie. Albo założenia „wady” mogą przebiegać tak głęboko w całym projekcie, że zmiana go naprawi błąd, ale złamie wszystko inne!

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.