Qui hai a che fare con più problemi ... Cominciamo con l'ovvio ...
È normale?
Diavolo, no. Ma ... è comune? Sfortunatamente sì.
Riguardo alla frustrazione per la correzione di bug
Anche se questo non scusa il resto del caos che devi affrontare e i molteplici progetti con cui ti sovraccaricano, voglio solo fare una breve nota che l'approccio "bug-fix" si avvicina, mentre è frustrante per te come sviluppatore , può essere un approccio perfettamente sensato per l'azienda e il suo management.
Superficie per più bug e costi
Più codice tocchi, più è probabile che tu introduca dei bug, anche se il tuo intento è di migliorarlo. Ciò significa tempo di sviluppo, tempo di test e costi prolungati. E se passa a una versione di servizio con un difetto medio-alto, è un gran casino per loro.
Rumore / Nebbia nei tuoi registri
Dal punto di vista SCM, ha anche un senso se lavori direttamente dal ramo di una versione del servizio, poiché desideri avere una visione chiara delle modifiche relative alla correzione di bug. Se ci sono 15 commit con migliaia di modifiche che circondano un bugfix che in realtà ha richiesto forse una modifica del codice di 1 riga, è un po 'fastidioso.
Quindi, essendo un nuovo assunto, è ancora più sensato chiederti di astenersi dal refactoring e / o dal potenziamento del software, e nel mio senso è abbastanza OK essere il più "chirurgico" possibile con le tue correzioni. Tiene a bada il mal di testa.
Puoi farci qualcosa?
Ora, ciò NON significa che ci sarebbero modi per raggiungere sia la sanità mentale del codice sia la sanità mentale delle menti delle persone coinvolte. Essendo junior, dovrebbero chiedere a qualcuno di rivedere le modifiche, in particolare correzioni di bug, e assicurarsi che siano approvate prima di apportare alle build di rilascio del servizio. Ciò impedirebbe o limiterebbe i cambiamenti radicali e sarebbe più sicuro.
Il progetto dall'inferno
Codice di schifezza, branco di programmatori, duplicazione, architettura di schifezze
Ancora una volta, il difensore del diavolo qui, ma sta solo dimostrando che la tua richiesta iniziale contiene alcuni bit non consequenziali.
Il mio punto è questo: davvero molto raramente ho acquisito una base di codice che non era in questo stato. E per caso, ho recentemente avviato progetti o prototipi avviati da programmatori piuttosto stellari. Ma la stragrande maggioranza di loro sembrava una merda, e un numero spaventoso di questi era una vera merda. Anche quelli avviati da programmatori bravi o bravi possono finire per essere cazzate, scadenze e altri impegni che aiutano ...
Benvenuti nell'ingegneria del software industriale nella vita reale!
E sai cos'è divertente? Spesso è molto peggio nel mondo dello sviluppo web. Godere! :)
Troppi progetti e richieste, non abbastanza mani e tempo
Il problema risiede probabilmente qui:
- la tua direzione (forse inconsciamente) abusandoti ,
- i tuoi colleghi (forse inconsciamente) ti abusano ,
- il tuo (forse inconsapevolmente) non ti copre il culo e combatti abbastanza le tue battaglie .
I tuoi manager dovrebbero essere consapevoli del fatto che stai lavorando a troppi progetti da gestire. Se non lo sono, assicurati che siano AL PIÙ PRESTO. Assicurati anche che sappiano che non è stato tutto un pick-nick nel parco e che ti sentivi sotto pressione, e che deve smettere.
Cerca di dare un'occhiata in giro e assicurati che i tuoi colleghi non devino più compiti e progetti su di te, direttamente (dicendo davvero "X sarà in grado di occuparsene") o indirettamente ("Non sono la persona giusta per questo, trova qualcun altro "-> finisce per essere te).
Aneddoto personale qui: ho fatto uno stage qualche anno fa, e proprio nel mio ultimo giorno, quando ho ottenuto la mia valutazione, il mio capo mi ha detto, nonostante fosse molto soddisfatto del mio lavoro in generale, che uno dei dirigenti avesse la sensazione che io avevano scaricato alcuni "compiti non così divertenti" su un altro stagista quando si sarebbero aspettati che li prendessi. Ero mortificato dal sentirli delusi , e all'idea che mi sembrasse di rilassarmi, quando il mio intento era esattamente l'opposto: stavo cercando di afferrare i compiti più difficili e fare in modo che l'altro stagista più giovane trattasse meno capelli problemi di elaborazione. Non mi ero reso conto che, se fossi stato nella sua posizione, sarei stato annoiato dalla mancanza di sfida e probabilmente mi sarei sentito così. Il punto è che devi comunicare per assicurarti che nessuno faccia false assunzioni su 3 cose ben distinte:
- cosa si può fare ,
- ciò che si vuole fare ,
- e cosa sei disposto a fare .
Quindi è anche in parte colpa tua per averlo lasciato diventare così. Ma è normale, è una lezione che tutti devono imparare. Si tiene in due lettere: N - O .
Di solito lo usi come prefisso per una risposta più lunga ma non molto più carica: No, non posso farlo. No, non so come farlo. No, non sono sicuro di essere la persona giusta per questo. No, non l'ho mai fatto.
All'inizio, è molto facile sentirsi come se potessi semplicemente dire "sì, lo farò (eventualmente)", e ammucchiare le cose e farle finire, magari dedicando qualche ora in più. È tutto sbagliato. Devi capire che il tuo tempo è, dopo le tue capacità, la risorsa più preziosa per te e per la tua azienda. Se viene utilizzato in modo improprio, influisce su progetti, scadenze e budget . Così semplice.
Inoltre, sembra un po 'preoccupante che tu abbia troppe persone a cui riferire. È OK avere più clienti con cui avere a che fare, e più proprietari di progetti o anche le principali parti interessate con cui comunicare. Ma, nel complesso, soprattutto perché sei un nuovo assunto, dovresti riferire principalmente a pochi manager (e molto probabilmente solo al tuo diretto manager, e possibilmente a uno sviluppatore principale o senior). Come è andata in questo modo? Non lo so. Può essere un problema organizzativo per la tua azienda o può essere il risultato del tuo favore e del fatto di essere contattato direttamente e di non dire "no". Oppure può essere che il tuo manager diretto abbia problemi con le attività di dispacciamento, per quello che ne so (sto davvero indovinando, ma il modello è riconoscibile e ben noto).
Ti consiglierei di fare piuttosto rapidamente: vai a parlare di persona con il tuo manager diretto, spiega che altri manager potrebbero essere un po 'invadenti o (probabilmente meno lamentosi) che hai troppe cose che si accumulano da troppe persone, e che hai bisogno del suo contributo (e forse anche del loro) per sapere a quali priorità assegnare.
Richieste di modifica a 180 gradi
Questi sono un altro grosso problema. Probabilmente non sono colpa tua, ma puoi provare ad aiutarli a risolverlo.
"Richieste di cambiamento a 180 gradi", come le chiamate in modo bello e preciso, sono un chiaro segnale che i requisiti sono confusi fin dall'inizio , e che nessuno si sforza abbastanza per farli scalpellare e chiarire nel tempo.
Di solito succede quando qualcuno ha bisogno di mettersi al telefono (o meglio, in piedi), afferrare le parti interessate per mano e dire loro chiaramente: "Ecco dove siamo, è dove vuoi che andiamo, confermi che siamo andando nella direzione giusta? ". Va bene non ottenere risposte chiare all'inizio, ma più passa il tempo, più devono diventare chiare o questo progetto è un disastro che attende di accadere.
Di solito direi di prendere tutti gli stakeholder a portata di mano, metterli in una stanza, guidarli attraverso questioni litigiose e cercare in modo incrementale di risolverli - e ottenere priorità mentre ci sei. Tuttavia, nel tuo caso, questa potrebbe non essere già la tua chiamata. Ma dici che ti hanno davvero dato la responsabilità dei progetti; quindi se è davvero così, allora prenditi la responsabilità e fallo. E NON rifuggire dal dire "NON POSSIAMO FARE" , o nemmeno "NON FACCIAMO" . È davvero importante limitare la portata di un progetto.
Se non c'è spazio, non ci sono requisiti precisi al termine della discussione.
Sovraccarico e-mail
Le persone tendono a comportarsi diversamente in base al mezzo di comunicazione che usano. Personalmente, anche se sono una persona piuttosto pacata (e ho lavorato principalmente in paesi stranieri, quindi finisco anche per non farmi piacere parlare troppo al telefono), preferirei in ordine di preferenza basato sulla produttività:
- parlare con le persone faccia a faccia ,
- parlare con le persone al telefono,
- parlare con le persone tramite messaggistica istantanea,
- parlare con le persone via e-mail.
Le e-mail sono utili per il monitoraggio, per ottenere conferme, per l'invio di note.
Per programmare, pianificare e discutere i punti problematici, sono quasi inutili. Bussa alla porta del ragazzo finché non lo apre e siediti con un blocco note e una copia della tua documentazione per chiarire le cose. Al termine, invia un'email e chiedi conferma. Se ritorna con una risposta negativa o un tentativo leggermente nascosto di intrufolare qualcos'altro nella busta, vai di nuovo a prendere d'assedio l'ufficio del tuo interlocutore.
Questa è ingegneria del software. Spesso è più produttivo quando non si digita su una tastiera e può effettivamente ridurre in anticipo le schifezze che dovrai affrontare.
Fare un lavoro di squadra
Stai facendo l'equivalente del lavoro di una squadra? Può essere.
Stai facendo l'equivalente del valore del tuo team di lavoro? Probabilmente no.
Quello che voglio dire è che il tuo team è probabilmente impegnato a lavorare e sei troppo oberato di lavoro. E questo è il problema: sei sovraccarico di cose che dovrebbero essere spinte fuori dalle tempistiche attuali del progetto o date a qualcuno con il tempo a disposizione.
Ero un idiota quando inizialmente mi aspettavo che le cose fossero diverse?
No; appena nuovo alla festa. È come un primo postumo o relazione. Ti passerà.
Immagino che questo post si sia trasformato in un grande rant, ma per favore dimmi che non è lo stesso per tutti gli sviluppatori.
Questo è lo stesso per ogni sviluppatore di organizzazioni caotiche, siano esse startup o giganti affermati, e senza esperienza o fiducia per far muovere le cose un po 'per dare la possibilità di sopravvivere sul lato destro della scala.
PS Il mio stipendio è quasi uguale se non inferiore a quello di un cassiere in un supermercato.
Ho fatto salari decenti per lavori che sembrano scadenti. Non è il numero sull'assegno che conta, è il contesto. Cosa fai, la tua età, dove vivi e lavori, ecc ...
Detto questo, se sei gravemente sottopagato, lavori troppo, e non del tutto junior, vai a chiedere quel rialzo o trova un nuovo lavoro!
È semplice:
- se danno valore a ciò che fai, accetteranno volentieri un rilancio,
- se non lo fanno, il futuro in questa compagnia non sembra molto roseo (almeno per te, che è quello che conta), quindi non sentirti male di andartene.
Tieni presente che chiedere un rilancio è una buona cosa, anche se all'inizio non saresti costretto a pensarlo. Dimostra che tieni traccia di ciò che fai e suggerisce che tieni d'occhio un'altra opzione pur essendo disposto a rimanere a bordo. Ed è una buona cosa abituarsi a richiederli, in quanto sono come colloqui di lavoro o contrattazioni in generale: è qualcosa che richiede pratica e non cadono dal cielo se non li raggiungi da soli. Alcune aziende distribuiranno regolarmente aumenti senza che sia richiesto, ma questo è solo perché sono abbastanza intelligenti da sapere che ti rende mezzo felice e meno disposto a cambiare, e vogliono tagliare l'erba sotto il tuo piede (la maggior parte delle persone si sentirebbe un un po 'a disagio nel sollevare un'offerta di rilancio sono stati offerti direttamente).
Come procedere con questa richiesta è un po 'fuori dallo scopo di QUESTO progetto proprio qui, quindi non entrerò nei dettagli. Ma ti consiglio di preparare un registro dei tuoi ID commit SCM, dei tuoi bug corretti e dei risultati, e di preparare anche rapporti confrontandoli con lo sforzo complessivo del team. Per di qua:
- puoi misurare tu stesso se hai effettivamente fatto molto più dei tuoi coetanei o no,
- puoi resistere se affermano che la tua richiesta non è giustificata.