it-swarm-eu.dev

Jak říct svému šéfovi, že jeho programovací styl je opravdu špatný?

Jsem student a ve svém volném čase pracuji pro velký podnik jako vývojář Java. Java). Práce je dobrá, ale problém je, že můj šéf píše velmi zvláštní kód. Nechci si stěžovat, ale některé problémy jsou podle mého názoru opravdu podivné. Například:

  • nezná žádné booleans. Všechny booleovské podmínky jsou řetězce nazývané „YesOrNo“ a poté ve stavu, který používá, pokud (YesOrNo == „Yes“)

  • v názvech metod a proměnných je mnoho velmi zvláštních znaků jako é õ ô nebo è

  • všechny smyčky jsou nekonečné smyčky ve stylu pro (;;). Poté je na konci smyčky testována podmínka a pokud jsou podmínky splněny, je přerušena; je nazýván.

Nevím, jestli bych mu měl říct, že to není dobrý postup, protože je mým šéfem a rozhoduje, jak a co dělat. Na druhé straně některé z jeho příkladů jsou opravdu velmi podivné.

Nějaké rady, jak se vypořádat? A jsem to jen já, kdo si myslí, že je to špatný styl?

63

Požádejte ho, aby vám vysvětlil svůj kód

Řekněte mu, že jste nikdy předtím X tak naprogramovali, a zeptejte se ho, proč to takto kóduje. Ukažte mu, jak jej kódujete, a řekněte mu, proč to děláte (osvědčené postupy, lepší výkon, menší šance na chyby, snazší číst/udržovat ostatní programátory atd.).

Nezapomeňte si předem připravit všechny své argumenty a zaměřit se na to, proč je vaše metoda nejlepší místo na to, proč je její metoda nejhorší. Poté se ujistěte, zda stále podporuje vaši metodu nad vaší.

Pokud je otevřený zlepšování, pravděpodobně změní svůj způsob kódování. Pokud stále preferuje použití svého stylu kódování před vaším, pravděpodobně jeho názor nezměníte.

78
Rachel

Propagujte použití automatických statických analýz a nástrojů pro kontrolu stylu, jako jsou lintery a vyhledávače chyb (v jakémkoli jazyce, který používáte). Pokud je všichni ve společnosti začnou používat (např. Jsou pověřeni před kontrolou), není vybrán.

Důvod, proč to navrhuji, je ten, že:

1) Lidi obecně berou lépe, když se k automatizaci nástroje nedotknou než k jejich spolupracovníkům nebo podřízeným.

2) Tyto nástroje pokrývají mnoho problémů, které lze považovat za špatný styl.

3) Pravděpodobně byste mohli vylepšit pravidla v zákulisí pro svůj špatný styl nad rámec toho, co je zabudováno do nástroje. Například vynutit určitý styl proměnné.

4) Někteří lidé si uvědomují, že jejich kód není tak dobrý a že začínají věnovat více pozornosti i věcem, na které se nevztahují lintery.

Několik dobře respektovaných společností (jako je můj vlastní zaměstnavatel) si před check-inem vyžádá kontrolu chvění. Podle názoru je špatným stylem technický dluh. Vždy byste mohli použít „No, pokud to X a Y a Z dělají, je to pravděpodobně dobrý nápad“.

39
Uri

Myslím, že byste mu rozhodně neměli říkat nic takového přímo . Taková prohlášení mohou v něm snadno vyvolat obrannou reakci, která téměř jistě uzavře jakoukoli možnost, aby se mohl učit, a může dokonce způsobit problémy pro vás.

Místo toho hledejte (a dokonce se pokuste vytvořit) příležitosti, jak příležitostně diskutovat o problémech se stylem kódování a idiomem a zmínit ho o „osvědčených postupech“ , o kterých víte. Samozřejmě musíte nejprve zajistit, že to, co navrhujete, je skutečně všeobecně známá a akceptovaná nejlepší praxe.

Pokuste se také diskutovat o stejných problémech s ostatními členy týmu. Je důležité porozumět (mluvenému nebo nevyslovenému) „konsensu“ uvnitř týmu ohledně stylu a kvality kódování . (Pokud všichni ostatní píšou čistý a kvalitní kód, máte velmi odlišný případ, než kdyby zbytek skupiny tvořili skuteční programátoři, kteří hrdě píší FORTRAN programy v jakémkoli jazyce.) Mohou také vyprávět více o historickém pozadí projektu a styl kódování vašeho šéfa, který vám pomůže lépe zaměřit vaše úsilí.

Dalším způsobem je požádat ho, aby vám objednal Efektivní Java , protože máte pocit, že se musíte stát lepším programátorem. (Pokud jste to ještě nečetli, skutečně to potřebujete.) Pak s ním můžete mluvit o úžasných řešeních a postupech v této knize.

Pokud je otevřený zlepšování, vyzvedne vaše návrhy (a knihu). Pokud ne, můžete ustoupit, aniž byste ztratili tvář a napínali váš vztah.

24
Péter Török

Pokud je váš šéf skvělý chlap, jednoduše se ho zeptejte: „Kámo, WTF?“

21
gruszczy

Ve všech případech, kdy si myslíte, že „moje je lepší“, nikomu neříkejte, že si to myslíte, ukážte jim to.

Opakuji, SHOW, neříkej.

Vy víte, že rčení o akcích, hlasitější, slova ... je to pravda.

8
Jack Marchetti

Přesně jakou pozici drží váš šéf? Je to vývojář, technický vedoucí? Kolik dalších vývojářů ve společnosti existuje? Má společnost standardy kódování a recenze kódů?

Je nepravděpodobné, že svého šéfa změníte jeho (IMHO) špatné návyky, ale možná budete moci použít skupinu vrstevníků nebo firemní standardy, abyste ho ovlivnili. Pokud jeho kód ano dodržuje standardy a kolegové jsou všichni stejní, pak jsou vaše možnosti omezené.

6
Qwerky

Zde je moje doporučení:

  • Řekněte svůj případ dobře.
  • Pokud váš manažer není k vašemu úhlu pohledu vnímavý a máte pocit, že máte pravdu, hledejte zelenější pastviny a nedělejte žádné omluvy.

Doporučuji hledat zelenější pastviny ze tří důvodů:

  1. Z dlouhodobého hlediska je pro programátorovu kariéru škodlivé udržovat špatné praktiky. Udržování špatných praktik způsobuje špatné návyky.
  2. Programovací obchod, který není vnímavý k alternativním hlediskům, potlačuje představivost.
  3. Když víte, že ty špatné praktiky stále přetrvávají a váš tým není vnímavý k alternativním hlediskům, vaše morálka se musí ponořit, a tím bude váš život mizerný. Takže nechte ASAP.

* Důležitá rozlišovací schopnost: Očekávat, že někdo bude vnímavý k vašemu úhlu pohledu, není totéž, jako očekávat někoho, kdo bude výnos k vašemu úhel pohledu. Vždy si vážím lidí, kteří zvažují můj názor, zatímco já mám jen malou úctu k lidem, kteří jsou měkcí a poddají podle mého názoru bez dostatečného důvodu nebo důkaz k tomu.

6
Jim G.

Akce mluví hlasitěji než slova:

Jiný přístup:

  • Musíte vést příkladem.
  • Ujistěte se, že projekty, které děláte, jsou nejlepší, které můžete udělat.
  • Musíte Excel z hlediska výkonu, méně chyb atd.
  • Jakmile dokážete, že váš přístup a styl je lepší než váš šéf, pokud není velmi arogantní, pak si myslím, že ten člověk přirozeně bude následovat vše, co funguje nejlépe.
6
Darknight

Jen bych mu dal ukazatele v malých dávkách, když vidíte, jak dělá něco „špatného“

"Hmm, podívejte se na tento přístup k tomu {Pointing on his screen}, rád to udělám tímto způsobem kvůli bla bla bla."

Udělejte to Ne více než jednou každý druhý den. To, že váš návrh nepřijme, se o něm už nikdy nezmíní (na několik týdnů). Pár se bude držet. A bude se pomalu zlepšovat.

4
Morons

Požádejte svého šéfa, aby vás přirovnal k jinému způsobu, jakým vás učili. Může mít legitimní důvod. Nebudete to vědět, dokud se nezeptáte. Může existovat nějaký starý kódovací standard, který se snaží udržet, nebo se prostě nemusí starat. Nedávejte žádný náznak, že si myslíte, že šéf je automaticky špatně. Jo, a udělej to soukromě. To je pro vaše vzdělávací účely.

4
JeffO

Záleží. Pokud je kód, který prohlížíte, zbrusu nový kód, požádejte o jeho kontrolu, protože vám pomůže „přiblížit se“ a ukáže se, že máte zájem o učení. Šéf to může považovat za užitečný, protože mu ukáže, že hledáte správnou věc. Pokud se jedná o starý kód, který jste náhodou narazili a jste nuceni jej udržovat, udělejte z něj smysl pro pomalé refaktoringování. Typové prohlášení sem a tam při dokončení úkolu. Nyní je zde problém, že řetězec YesOrNo může nabrat jiné hodnoty, například Maybe, které mohou vést k rozbitému kódu, pokud si nebudete opatrní.

4
Woot4Moo

První věc, kterou bych udělal, je zjistit, jak reaguje na kritiky. Kdybych byl šéfem - dobře bych neudělal nic špatného, ​​že? - Chtěl bych raději, aby mi to bylo řečeno přímo ve tváři, najednou, ale uctivě. V závislosti na temperamentu a kultuře může být váš šéf jiný.

Ale většina z nich potřebuje určitou úctu. Dobrým způsobem, jak ukázat, že ho respektujete, je to, co bylo navrženo dříve: Vysvětlíte, co máte na mysli, ale rozhodnutí nechte na něm: „To je můj důvod, ale možná jsem něco přehlédl. Po mém vysvětlení:“

if (YesOrNo == "Yes")
if (YesOrNo == "yes")
if (YesOrNo == "YES")
if (YesOrNo == "oui")
if (YesOrNo.equals ("Yes"))
if ("Yes".equals (YesOrNo)) // might be null

"co navrhuje vy?"

A můžete požádat o metaquestion dříve: „Pane X, pokud jsem ve vašem kódu našel něco, co se běžně hlásí jako improvizovatelný postup - jak bych vám to měl nahlásit? Všechny najednou nebo krok za krokem? Nebo bych měl vyhnout se zmínění za každou cenu? Ticho vylepšit kód? “

To by záleželo na mém vztahu, jaké formulace bych si vybral a jaký přístup.

4
user unknown

Váš šéf neví, jak programovat, a neměl by to dělat. Moje zkušenost mi řekla, že za předpokladu, že někdo zvaný šéf je také zkušenější nebo lepší než vy, je klam. V jiných věcech může být lepší, ale cílem řízení a hierarchie je přenést věci na nejvhodnější osobu. Šéf je někdo, kdo měl šanci zahájit podnikání nebo se nakonec dostal do manažerské pozice kvůli jeho manažerským dovednostem, ne nutně kvůli jeho programovacím schopnostem.

Jednou jsem měl šéfa, který předstíral, že jsem nainstaloval počítač, když jsem připojený k benzínovému elektrickému generátoru, protože tvrdil, že hackeři mohli vstoupit přes elektrickou síť, zatímco stroj byl stále nechráněný. Okamžitě jsem skončil. Tehdy jsem se naučil hodnotnou lekci: šéf není vždy v pořádku a někdy je jedinou cennou odpovědí ukončení.

Chcete-li se tedy vrátit k vašemu případu, můžete mít případ, kdy nejlepším řešením může být pouze hledání jiného zaměstnání (ano, krize, yadda yadda ... já vím). Neztrácejte drahocenný čas.

4
Stefano Borini

Zkuste mu ukázat krátké ukázky kódu z renomovaných webů/míst/knih atd., Které dokážou podobné věci.

4
chiurox

Žiji v oboru, kde nemůžu najít své chyby šéfa. Takže lépe bych generoval případy, ve kterých se v kódu objeví chyby, a nechám ho, aby chybu viděl, než mu navrhnu požadované změny a možný důvod [ve vašem případě jste si jisti důvodem ..: - D] chyby. Žádný vývojář, ať už dobrý nebo špatný, chybu nepřijme, dokud neuvidí chybu.

3
Chris

Jednou jsem měl velký problém se stylem šéfů.

S tím jsou dva problémy. Zaprvé si nemyslím, že jsem to kdy řekl jeho tváři, ale představuji si, že to věděl. Zůstal profesionál, já ne, IOW.

Za druhé, existovaly důvody, proč to udělal, a trvalo mi jen chvilku, než jsem pochopil, jak komplikovaná a ošklivá jsou moje „správná“ řešení.

Ze tří bodů v otázce, diakritika není pro každého divná, a přestože bych to nepoužíval pro smyčku, podráždí mě rodina C ... zatímco syntaxe a jak to (není) zapadá do můj odsazovací styl, takže možná uvidím, odkud pochází.

I booleovská věc může mít vysvětlení, co se týče zvyků přinesených z jiného jazyka (což samozřejmě není ospravedlnění).

3
Steve314

Myslím, že by to mohlo fungovat -

  1. Požádejte svého manažera, aby zkontroloval váš kód, který neobsahuje žádné chyby, které dělá.
  2. Pak se podívejte, jestli se vás váš manažer zeptá, proč to neudělat „jeho“
  3. Pokud se zeptá na tuto otázku, můžete se ho zeptat, proč by to byl lepší způsob.

Tímto způsobem poznáte, proč si myslí, že jeho cesta je správná.

3
k25

Už jsem tam byl. Byl jsem přímo z Uni a asi po roce práce pro chlapa jsem si uvědomil, že o programování vím mnohem víc než on, ale bylo to jeho podnikání, a on říkal výstřely - a prostě ho nechtěl urazit tak jako tak! Rozhodl jsem se, že nejlepším způsobem, jak to obejít, je diskutovat o výhodách společných konvencí kódování napříč celou společností, které bychom se měli všichni držet, a také vidět, jak reagoval. S překvapením si myslel, že je to skvělý nápad, a požádal mě, abych sestavil seznam norem, které jsme oba společně přezkoumali a finalizovali atd.

Důležité je, že jste jen tak omylní, jaký je, a že jen proto, že některé jeho způsoby jsou liché/špatné, některé z nich budou lepší než vaše vlastní.

Z mé osobní zkušenosti to však nefungovalo. Navzdory tomu, že strávil 2 dny zkoumáním a sestavováním skvělých dokumentů o standardech a konvencích kódování - byl již nastaven svým způsobem, neviděl ve skutečnosti výhody v kódování konvencí nebo psaní kódu, který by na server méně zatěžoval, což dělalo naše práce rychlejší a snadnější a snižuje náklady.

Nakonec jsem odešel, abych našel místo, které vzalo vývoj trochu vážnější. Nebylo to všechno špatné, protože výzkum, který jsem provedl v oblasti kódovacích konvencí, dodnes opravdu pomáhá.

3
user16731