De beschrijving van de situatie in het OP is waarschijnlijk eenzijdig. Dat is ok.
Ik ben een ouder wordende ontwikkelaar (~54 yo) die in een bedrijf wordt gebracht om niet te regeren, maar om wat ervaring op te doen. (De IT baas zei eigenlijk “grijze haren”, hé.) Het dev personeel was far bedrevener, op de balans, dan elk team waar ik eerder mee had gewerkt. Ze leerden me veel, vooral over nederigheid! Maar we vonden plaatsen waar hun technologische tovenarij de problemen niet oploste en in sommige gevallen verborg ze die problemen, waardoor ze uiteindelijk nog erger werden. Dit is waar ik echt een bijdrage heb kunnen leveren.
Uw voorsprong klinkt zwaar autocratisch. Het klinkt alsof hij een mandaat heeft gekregen van de eigenaar. De eigenaar is ontevreden over het personeel en heeft deze “hardnekkige no-nonsense doorzetter” ingeschakeld om de leveringssnelheid te verbeteren.
Kijk eerst eens naar je personeel. Hebben jullie zwakkelingen - ontwikkelaars die niet “de Matrix zien”? Zo ja, vind ze nieuwe functies binnen het bedrijf of geef ze een goede referentie voor een werkgever die hun unieke vaardigheden nodig heeft.
Hij haat IDE’s
Ik ken er een paar die dat wel doen. Het doet me mijn ogen rollen, maar uiteindelijk kan het me niet schelen. Als mensen produceren met behulp van vi
, dan is dat ok. Ik hou van mijn IDE’s.
Hij refactoren de code niet, en geeft niet om de stijl (die inconsistent is over zijn eigen code)
Rode vlag op het eerste deel. Is hij een copy-paster? Ik ben ook schuldig aan het niet geven om stijl, maar dat komt omdat ik mijn IDE gebruik om mijn Python code direct PEP8 compliant te maken. Maar hij gebruikt geen IDE…
Terzijde, stijl werd eerder gecontroleerd door een nachtelijke build, die begon te mislukken sinds de komst van de nieuwe lead.
Hij verwerpt het idee van een nachtelijke build, evenals geautomatiseerde tests. Volgens hem “test elke professionele ontwikkelaar zijn code toch met de hand, dus er is geen reden om tijd te verspillen aan het schrijven van geautomatiseerde tests”. De nachtelijke bouw is volgens hem ook tijdverspilling.
Dit zet ook een rode vlag uit, maar om andere redenen dan je zou verwachten. Hoe vaak is de eigenaar, voordat deze man werd ingehuurd, verteld dat hij geen X kon doen (een demo geven, het systeem gebruiken, enz.) omdat de nachtelijke bouw mislukte? Wat als de eigenaar merkt dat de nachtelijke bouw het probleem is? Wat denk je dat hij de Lead zou vertellen om te doen?
Maar ik maak me zorgen over de houding van de Lead; geautomatiseerde testen zijn verbazingwekkend. De baas begrijpt de waarde van de testen misschien niet, maar hij weet zeker dat Y% van het personeel van de ontwikkelaar er voor betaalt. Toen ik bij mijn huidige bedrijf aankwam, had de “100%-testmaffia” het dev-personeel overgenomen en de kosten waaaay opgebracht. Een slechte appel later en het dev personeel was weer aan het spinnen.
Hij denkt dat versiebeheer meestal nutteloos is…
Dit is een rode vlag van de hoogste orde. Hij heeft het zo fout mogelijk. Hij is onverantwoordelijk met het geld van de eigenaar.
Hij overdrijft het belang van code-optimalisatie.
Vroeger kon code-optimalisatie een verschil maken. Nu zijn machines zo snel dat het minder belangrijk is. In plaats daarvan moeten we ons nu zorgen maken over de prestaties van de database en de doorvoersnelheid van het netwerk. Maar zijn “code optimalisatie” gewoonte is moeilijk te doorbreken, geloof me. Ik moet mezelf niet preoptimaliseren. Zijn gedrag is in dit geval tenminste niet destructief, behalve dan voor de tijd die het kost. (Heb je cijfers voor zijn “de helft van zijn tijd” of is dit een overdrijving?) Als u uw leidinggevende bekritiseert, kan er geen overdrijving worden toegestaan. Je moet pathologisch objectief zijn.)
Hij schrijft alle SQL met de hand, en verwerpt het idee van een ORM.
Schuldig als geladen! Ik begrijp de angst van mensen voor SQL niet. Ik begrijp niet dat het begraven van SQL, dat is drop-dead simple, onder lagen van ORM die verdoezelen. Kan je hier niet helpen :-D Maar alsjeblieft, dump al je SQL op een plaats - verdeel niet alles in je code.
en twee van de vijf ontwikkelaars hebben nog nooit SQL gebruikt.
Dat is onacceptabel. Dit is 2016. Ze moeten zich bekwamen.
Hij verwerpt frames en bibliotheken van derden, gezien het feit dat het veel gemakkelijker is om dingen vanaf nul te schrijven.
Hij kan het niet meer mis hebben. Ik betwijfel of uw bedrijf zo speciaal is dat uw hulpprogramma’s intern moeten worden geschreven. We hadden een paar ontwikkelaars die 3rd party tools zouden omarmen - totdat ze iets deden op een manier die de dev niet leuk vond. Het was een excuus om de tool weg te gooien en hun eigen te schrijven. Dit draagt alleen maar bij aan de belasting van het personeel van de ontwikkelaar, waardoor ze verder worden vertraagd. Deze nutteloze code is duur om te schrijven, te testen, te debuggen en te onderhouden. We hebben zoveel geld uitgegeven voor -nul-voordeel. Deze ontwikkelaars zijn nu weg.
Hij besloot alle JavaScript bibliotheken en frameworks te laten vallen, behalve jQuery, omdat hij beweerde dat toen hij vijftien jaar geleden begon te programmeren in JavaScript, er geen frameworks waren, en het leven veel gemakkelijker was.
Deze is niet zo duidelijk gesneden. De reden is dat het leven 15 jaar geleden veel gemakkelijker was, is dat de zakelijke vraag was veel eenvoudiger. Dat is waar het probleem vandaan komt. Het web is uitgevonden als een batchsysteem (vul een formulier in, verstuur het, krijg een reactie, herhaal) en nu proberen we web apps te schrijven die zich gedragen als desktop apps. Zijn observatie is juist, de dingen zijn nu moeilijk. Maar hij beseft niet waarom. De complexiteit van de tools is een antwoord op een meer gecompliceerde zakelijke vraag. Dus hij maakt slechte keuzes.
We gebruiken AngularJS en het lijkt fatsoenlijk te zijn. Zoals alle krachtige tools kan het gebruikt worden voor goed of kwaad.
Hij denkt dat mobiele apparaten (inclusief tablets) slechts een hype zijn, dus er is geen reden om kostbare tijd te verspillen om de compatibiliteit van de site met die apparaten te garanderen en om een responsief ontwerp te maken. Het product is een publieke webapplicatie die naar verwachting niet veel gebruikt zal worden vanaf mobiele apparaten.
Hij heeft het weer mis. Ze zijn geen hype. Ze zijn hier om te blijven omdat ze nuttig zijn. Maar het bedrijf heeft het niet nodig. Ontwikkel geen dingen die je niet nodig hebt. Het is duur.
Responsive design, echter, kan zeer interessant zijn om te hebben voor deze app,…
Is het zo interessant dat je persoonlijk zou betalen voor de ontwikkeling? Als dit een goed idee is, zou je het idee aan de eigenaar moeten kunnen verkopen. Geef er anders geen cent aan uit.
Hij vraagt het team om te stoppen met het gebruik van internet (vooral StackOverflow) en te vertrouwen op hun hersenen, de offline documentatie (ik wist niet eens dat Microsoft nog steeds MSDN CD’s verkoopt!) en de boeken.
Hij heeft het mis. Het internet is hier geweldig voor. Als de medewerkers van de ontwikkelaars Stackoverflow kopiëren zonder te begrijpen hoe de code werkt, dan hebben ze het ook mis. Is er tijd voor training en persoonlijke verbetering in het ontwikkelingsschema? Het is moeilijk om niet robotisch te copy-pasten als je altijd onder het pistool zit.
Hoewel ik beperkte informatie heb, zijn er hier veel problemen. Het klinkt alsof de eigenaar niet zo snel de code heeft gekregen waar hij voor betaalt als hij verwacht. Het klinkt alsof hij veel excuses heeft gehoord over dingen waar hij niets om geeft; hij is gefocust op het resultaat. Als ik gelijk heb, heb je een zelf toegebrachte wond en heb je die meer dan eens heropend. Deze Lead is de oplossing van de eigenaar voor het probleem dat het personeel van de dev heeft gesteld, en gezien zijn beperkte informatie, is het begrijpelijk.
Ik wed ook dat je een non-agile shop runt en een slechte definitie van de eisen hebt die verandert als de wind waait. Er is geen laagje isolatie tussen het personeel en de eigenaar. Behalve deze Lead.
Nu, wat kun je doen?
1) Train de leiding dat het gebruik van geautomatiseerde testen en code management de manier is om te gaan. Het kan tijd kosten om geloofwaardig over te komen bij hem - de eigenaar heeft hem waarschijnlijk verteld dat het personeel gebrekkig is. Kijk of je kunt voorkomen dat hij vegen mandaten maakt zoals “verwijder al dat nutteloze testgedoe en herbruik de SVN-server”. Dit geeft je de tijd om de waarde te tonen.
2) Ga door met het gebruik van codebeheer op een persoonlijk niveau. Dan kunt u in ieder geval herstellen van uw eigen fouten. Vertel hem niet dat je dit doet, maar lieg ook niet tegen hem.
3) Ga door met geautomatiseerd testen (unit tests, als het niet anders kan) op persoonlijk niveau. Vermeld het niet zoals voorheen, maar verberg het niet.
4) Werk samen met de Lead om te bepalen wat de werkelijke gepercipieerde problemen zijn. Wees open minded; ik durf te wedden dat er echte problemen zijn met het personeel. Werk met de Lead om de problemen aan te pakken, niet de symptomen.
5) Bespreek met de Lead verschillende ontwikkelingsonderwerpen, zoals de voordelen van waterval en agile. Geen van beide is perfect. Stel hem vragen als: “Onder welke omstandigheden zou geautomatiseerd testen de moeite waard zijn”? Als hij een dubieus antwoord geeft, vraag hem dan hoe succesvol bedrijven als Google desondanks hebben kunnen gedijen.
Dus je kunt zien dat ik er alles aan doe om de Lead te engageren en te zien waar zijn hoofd staat. Vertrouwen opbouwen. Overeenkomen over problemen versus symptomen. Dit is niet altijd gemakkelijk, zeker niet als je het gevoel hebt dat hij net als Godzilla is en je werk uit elkaar haalt.
Er is een kans dat hij geen compromissen kan sluiten. Hij zal geautomatiseerde testen verpletteren. Code management is voor onzorgvuldige mensen. My Way of de Highway.
Als het zover is, is het echter tijd om te vertrekken. Werken in een gereedschaploze winkel, en dan bedoel ik software en software engineering tools - bouwt je cv niet op. Je zult op dezelfde manier beginnen te rotten als de Lead heeft gerotzooid. In dat geval, ga verder.