it-swarm-eu.dev

Je normální, že programátor pracuje na více projektech současně

Na současné práci mám dva projekty, na kterých bych pracoval. První je velmi obrovský systém a druhý je menší, ale také velký (první projekt se vyvíjí na 12 let, druhý na 4 roky).

Nejprve jsem pracoval jen na prvním projektu a snažil jsem se na to zvyknout. Poté jsem byl přesunut do druhého projektu a vyzkoušen tam, takže moje znalosti o prvním projektu byly nejasné. Nyní musím pracovat na obou projektech současně.

Je to pro mě velmi těžké, protože navzdory tomu, že oba používají Javu, používají různé rámce a množství kódu a obchodní logiky je pro pochopení velmi velké, takže opravdu nemůžu držet oba tyto projekty v mé hlavě.

Je to normální a já bych si na to měl zvyknout, i když se moje odbornost stala velmi skličující, co se nestane, pokud budu pracovat pouze na jednom projektu? Nebo bych měl upozornit nebo možná změnit zaměstnavatele?

40
user1449

Úplně nesouhlasím, když lidé řeknou „ano, multi-tasking je normální“

Není to normální normální! Vůbec ne, pro vývojáře je velmi nepřirozené více úkolů v několika projektech (podrobněji vysvětlím později). Na druhé straně je více úkolů mezi vývojáři velmi běžné . To je určitě něco, na co byste si měli zvyknout. Skutečnou odpovědí na vaši otázku tedy je: jak více úkolů?

Nejprve byste neměli jednoduše přijmout svůj osud, protože „jste tak skvělý zaměstnanec“, což znamená, že musíte vzít více úkolů, než zvládnete. Vůbec ne. Lidé někdy dostávají více úkolů, protože nikdo jiný není. Někdy manažeři nemohou zvládnout svou práci, takže delegují a vynucují multi-tasking ve svém týmu, protože nemohou správně zpracovat svůj harmonogram projektu. Takže byste se určitě měli pokusit zjistit, zda jste vyzváni k více úkolům, protože je to součást vaší práce nebo protože ostatní lidé jsou nekompetentní. Ať tak či onak, můžete se sami přesvědčit, zda je to přijatelné nebo ne. Pokud se vám nedaří [s vaší prací], můžete najít práci i na jiných místech. [Vy, vývojář, jste komodita. Zaměstnavatelé to vědí a modlí se, abyste si to nikdy neuvědomili.]

Nyní, pokud jde o více úkolů, 100% nesouhlasím, když lidé řeknou „ano, stačí přepínat sem a tam a ujistit se, že na každém projektu děláte stejnou částku“. Je nám líto, ale to je velmi špatná rada.

Nejprve si musíte uvědomit, jak váš mozek pracuje, když vyvíjíte software (vím, že jsou zahrnuty i další úkoly, ale zaměřme se na ten jeden). Nejprve se musíte „zapojit“, což znamená, že se musíte hodně soustředit a dostat svou mysl do pozice, kde máte vše namapováno v hlavě. Všechny názvy proměnných a metod, pracovní postup vašeho kódu, objektový model, vlákna probíhající vedle sebe, všechno. Obvykle mi trvá 15 až 20 minut, než se dostanu „do zóny“.

Když se dostanete do tohoto stavu, opravdu létáte a píšete kód, jako byste jezdili na kole. Ve chvíli, kdy vás přeruší, můžete všechno ztratit. Pokud je přerušení dostatečně dlouhé (5, 10, možná 30 minut), ztratíte tento stav mysli a budete muset začít znovu.

Takže multi-tasking je hrozný, protože vás nutí opustit „zónu“ a přejít k něčemu jinému. Pokud neustále přecházíte, znamená to, že nejste produktivní, protože pokaždé, když se změníte na nový úkol/projekt, musíte ztratit těch 15–20 minut, abyste se dostali znovu do zóny (nemluvě o tom, že se váš mozek pomalu roztaví).

Je to jako vícevláknové zpracování: v určitém okamžiku jsou náklady na přepínání kontextu podprocesu každých pár cyklů příliš vysoké, takže CPU nakonec stráví více času přepínáním kontextu než prováděním skutečných úkolů.

Velmi doporučuji přečíst si článek od Joela Spolského o této záležitosti:

http://www.joelonsoftware.com/articles/fog0000000022.html

Moje rada je tedy: zkuste se naučit, jak (ne) více úkolů, protože je to skutečně běžné. Ale také se ujistěte, že to děláte pohodlně. Někteří lidé se mohou soustředit více času a budou trpět více než jiní, když budou mít více úkolů; a to je také v pořádku. Není to proto, že by se mělo považovat za normální.

Joel to řekl dobře, když řekl:

Skutečnou lekcí ze všeho toho je, že byste nikdy neměli dovolit lidem pracovat na více než jedné věci najednou. Ujistěte se, že vědí, co to je. Dobří manažeři považují svou odpovědnost za odstraňování překážek, aby se lidé mohli soustředit na jednu věc a opravdu ji zvládnout.

54
Alex

Ano, to se dá očekávat. A přivítal.

Existuje několik způsobů, jak se na to podívat:

  1. Očekává se, že budete mít více úkolů a je téměř nemožné se soustředit. To vede k suboptimálním inženýrským procesům, občasným zmatkům při přechodu sem a tam, pocitu vykořisťování, frustrace, stresu atd. To je samozřejmě negativní; nicméně,

  2. Důvěřujete mnoha projektům, což dobře odráží výsledky, kterých dosáhnete, a důvěru, kterou má váš zaměstnavatel ve vaše schopnosti. Je to příležitost, jak jim ukázat důvěru, která je zaručena.

Moje rada je vyvinout střízlivý úsudek, které úkoly vyžadují vaši okamžitou pozornost a které mohou čekat. Odpověď zní někdy, že ani jeden nemůže čekat a je třeba zaujmout kreativní přístup k poskytování výsledků (trochu pro projekt A, pak trochu pro projekt B, poté opláchněte a opakujte). Kultivujte dovednosti, aby se v této situaci dařilo.

Normálně (i když ne vždy), bude to odměněno větší odpovědností, více projektů k žonglování a více očekáváními. V určitém okamžiku budete moci a očekávali, že budete tuto práci delegovat. Je to míra úspěchu.

Takže i když vaše rostoucí žonglérské dovednosti využívá pouze vaše současná společnost, jedná se o dobré dovednosti, které vám budou dobře sloužit ve vaší kariéře.

Za to, co stojí za to, obvykle pracuji na velkém projektu, menším, údržbě a podpoře starých projektů a řízením alespoň jednoho dalšího. Je to frustrující, matoucí, únavné a jsem velmi vděčný.

33
b w

Ano! To je úplně „normální“/obvyklé, když pracujete na servisní společnosti xD

Také pokud spolupracujete s projekty s otevřeným zdrojovým kódem, to je pravidlo

Možná není a není to ideální stav, ale je to chléb každodenního života.

15
yeradis

Je to běžné. Ale není to dobré, z důvodů, které jste nastínili. Přepínání kontextu vyžaduje produktivitu, takže pokud je to možné, zkuste pracovat na jednom projektu po dlouhou dobu, např. den.

12
Anthony

Každý den aktivně pracuji na 2 až 3 různých projektech. A udržujte několik desítek dalších. Několik týdnů je to trochu ohromující. Některé projekty jsou obrovské, některé jsou tak malé, že byly kódovány během několika dní a jen zřídka potřebují změny. Liší se, ale stále mě vystavuje různým způsobům myšlení a řešení problémů, různým technologiím a oblastem podnikání. Užívám si to.

Takže, odpovědět na vaši otázku, ano, je to velmi běžné.

9
CaffGeek

Podívejte se na článek s názvem Multitasking vás tam dostane později . Tento graf vypráví příběh:

enter image description here

Jinými slovy, společnost ztrácí čas tím, že jejich programátoři pracují na více než jednom projektu najednou. S pouhými třemi projekty je ztráta 40%! Zbytek času je rozdělen na tři projekty.

Důvod multitaskingu je často uváděn jako „dostat více věcí“. Ale to je chybné odůvodnění. Multitasking má za následek pouze zpoždění všech vydání. Tento obrázek ukazuje účinek dvojího úkolu vs. dokončení jednoho projektu najednou:

enter image description here

(Obrázek zcela ignoruje režii. Ve skutečnosti by promarněný čas způsobil, že by oba projekty byly o 20% později.)

8
Martin Wickman

Ano, podle mých zkušeností je to normální (i když některé z „projektů“ jsou velmi podobné, např. Projekt údržby a funkce stejného produktu). Abyste se vyhnuli konfliktům a nereálným očekáváním, dohodněte se s vedoucími projektů a se svým vedoucím, že každému projektu přidělíte určité části svého času (např. Tři dny v projektu X, dva v projektu Y týdně). Za normálních okolností pak můžete tyto alokace rozdělit, jak se vám líbí, např. Po-St na X, Čt-Pá na Y.

Občas se stane, že jeden projekt „vyvolá výjimku“ a je třeba na něm nyní pracovat . Zde je třeba udělat dvě věci:

  1. ujistěte se, že je to skutečně výjimka, nejen nájemný projektový manažer: V druhém případě zatlačte zpět.
  2. zaměňte své přidělování času, abyste na každém projektu stále pracovali se stejným zlomkem.
4
user4051

Záleží na společnosti. IMO je žádoucí pracovat většinou jen na jednom projektu, ale to často není možné, zejména u malých společností.

Opravy chyb atd. Se samozřejmě mohou stát u každého projektu.

4
user281377

Pokud je pro vás těžké přejít zpět na rychlost pomocí rámce projektu nebo obchodní logiky, když se přepnete zpět na něj, měli byste využít příležitosti k napsání co největší dokumentace, jak můžete, zatímco na tom pracujete. Pokud podrobně uvedete, jak složitý systém funguje, podle vašich slov, bude mnohem snazší vrátit se k projektu později. Navíc, tato dokumentace může být pro vaše spolupracovníky užitečná, pokud budou někdy potřebovat pomoc.

Pokud již projekt dobře pokrývá technickou dokumentaci, může být užitečné zapsat si své myšlenky, když pracujete na komplikovaných oblastech. Tímto způsobem si můžete při dalším přepnutí vyzvednout myšlenkový proces.

3
Matt G

Nemělo by to být normální, ale mám mnoho projektů na svých bedrech u svého současného zaměstnavatele. Připouštím, že si to trochu zvykne. Nejdůležitější tip, který bych mohl dát, je vždy upřednostnit vaši práci. Přinutte svého šéfa, aby vám sdělil, co je prioritním úkolem, a na tom pracujte. Nevyvíjejte tlak od toho, kdo si stěžuje na vaše další projekty. Nemusíte nutně aktualizovat svůj životopis ještě, ale ujistěte se, že zatížení není eskalovat za něco, co můžete rozumně zvládnout.

2
ChaosPandion

Myslím, že je to normální. Způsob, jakým moje práce funguje právě teď (jsem ve společnosti s asi 40 vývojáři, celková velikost společnosti přibližně 700). A obvykle mám jeden „dlouhodobější“ projekt s mnoha malými lístky/vadami, které přicházejí, takže obvykle končí 50% malých vstupenek a 50% pracuje na dlouhodobém projektu. Může být obtížné, že trvalé přerušení může zpomalit a vykolejit dlouhodobější projekt.

0
Bmw

Myslím, že je normální pracovat na více projektech. Klíčem je uznat, že budete zpočátku čelit nejednoznačnosti, pokud jde o celkový obraz systému.

Pokud se snažíte získat větší obrázek, získáte srozumitelnost a budete moci na pohyblivých/pevných částech v systému zjistit, jak vaše změny ovlivňují systém.

V průběhu času se naučíte najít společné vzorce v různých systémech, na kterých pracujete. Ty se můžete obrátit na své další projekty, které sníží množství podrobných informací, které musíte mít ve své hlavě najednou.

0
Pradeep

V jakémkoli netriviálním projektu je přidělena více než jedna osoba. To znamená, že musíte spolupracovat s ostatními a čekat, až budou dělat svou práci, a také na vás musí čekat.

Místo toho, aby lidé nečinně seděli, je běžné mít aktivních více projektů, takže v případě potřeby vždy existuje otevřený úkol.

Na každém projektu byste však měli stále pracovat ve značných částech, abyste se mohli dostat do „zóny“ a být produktivní.

0
user1249