Sono uno sviluppatore junior in una piccola azienda (in un team di 2 sviluppatori). Ogni volta che ci viene chiesto di implementare una nuova funzione:
-
la scadenza è impostata in modo da avere il tempo di fare lo sviluppo: non c'è margine di errore (se qualcosa richiede un po 'più del previsto, siamo in ritardo); quasi nessun tempo per i test (siamo abbastanza sicuri che ci saranno dei bug); non c'è tempo per refactoring
-
ci viene chiesto di avviare lo sviluppo prima che le funzionalità siano completamente specificate, quindi vengono visualizzate nuove cose da fare ma la scadenza rimane invariata
Il risultato è che forniamo software con bug e che il debito tecnico continua a crescere. Utilizziamo la tecnologia che è stata considerata una versione recente nel 2006 o giù di lì.
C'era una versione che ricordo molto bene. Quando abbiamo fatto una dimostrazione al capo, ci ha detto "Cosa? Hai impiegato due settimane per produrlo ?!" e tutto ciò a cui potevamo rispondere era "No, in effetti ci sono volute tre settimane". Ho avuto un incontro con lui e un altro giovane sviluppatore (che ha lasciato la compagnia a causa di questo incontro!), E in pratica ci ha detto che non era contento perché quello che abbiamo pubblicato era una schifezza.
Il debito tecnico e la necessità di refactoring erano così grandi nelle parti che dovevamo modificare (ma ci è stato detto di non refactor perché non abbiamo tempo):
- abbiamo dovuto aggiungere uno strato di codice errato in cima al codice già cattivo;
- abbiamo impiegato molto tempo per cercare di capire il codice completamente incomprensibile.
Non mi sento responsabile di questa brutta versione, penso che sia responsabilità del capo assumere dei buoni sviluppatori che, almeno, comprendono i principi di base dell'OOP. Ma assumere junior è molto meno costoso ...
Sta già dicendo che siamo in ritardo per lo sviluppo su cui sto lavorando al momento. Ha passato più di un anno a "ridisegnare" uno strumento che era già presente nella nostra applicazione, ma ora vuole che lo implementiamo in due settimane. Personalmente penso che se vogliamo farlo correttamente, abbiamo bisogno di almeno un mese, o forse anche di 6 settimane.
Non so cosa fare, perché penso che il capo pensi che siamo solo lenti e inefficaci. Non è il modo in cui otterrò il rilancio che penso di meritare.
Perché è così? Non sembra così difficile capire che se ho bisogno di x giorni per completare un compito, non posso farlo in x / 2 giorni, anche se dici "per favore" e chiedi con un sorriso. Sembra così ovvio che la scadenza verrà ignorata e / o che i requisiti di qualità non saranno soddisfatti.
Non ho bisogno di sapere come posso spiegare al mio capo che lo sviluppo del software è un processo più lungo che fa semplicemente clic su un'icona. Perché spero che lo sappia già.