Mood da startup? Seriamente?

Un hackernews-er ha riportato uno studio sulle cause di insoddisfazione degli sviluppatori. Riporto qui sotto le 10 maggiori cause

1. Being stuck in problem solving
2. Time pressure
3. Bad code quality and coding practice
4. Under-performing colleague
5. Feel inadequate with work
6. Mundane or repetitive task
7. Unexplained broken code
8. Bad decision making
9. Imposed limitation on development
10. Personal issues – not work related

Oh, guarda, ha scoperto l'acqua calda, dirà qualcuno. Il fatto che sia, ecco, normale è a dir poco preoccupante.

Tutte queste cause sono in realtà collegate: avere delle scadenze impossibili porta a codice write-only, tale da spaventare altri sviluppatori e rendere magari un'altra parte dell'applicazione ingestibile. E nella furia di fare presto si perde più tempo: non c'è mai tempo di organizzare automatismi per testare il codice, semplificare il deploy, scrivere tool per aiutarsi nel debug o fare delle sane code review. E una volta che si è consegnato -magari facendo dello straordinario?- chissenefrega di riorganizzare e sistemare, abbiamo un'altra scadenza da rispettare. “Cosa? Due ambienti, uno di sviluppo e l'altro di produzione? Sarebbe bello, ma ci pensiamo dopo la scadenza”. E così il disagio aumenta, ma tutti sono troppo impegnati per risolverlo.

Volete un esempio? Per un mese, in un progetto gestito in maniera cosidetta “Agile”, abbiamo dovuto fare rilasci giornalieri dell'applicazione, con feature complesse raffazzonate in 5 ore. Ovviamente il lavorare sui bugfix non dispensava dallo sviluppo dele feature del giorno seguente. Il codice è quindi diventato un ammasso di hack non documentati, e nessuno l'ha più toccato, “tanto funziona, non si lamenta nessuno”.

Stasera leggo Cari manager, il sacrificio non è un valore, e la pressione sale, molto. La ditta ti sfrutta quando gli servi, poi ti lascia a fare il “panchinaro” fino al prossimo progetto che è in ritardo già dal primo giorno (e anche questo, per qualcuno, potrebbe essere normale). Puoi aver fatto tesi innovative, puoi essere un esperto della tua materia, alla ditta serve solo carne da macello, possibilmente da pagare meno. E ti chiede di fare un sacrificio per l'azienda. ma vaff*, se c'è un problema di tempistiche è di solito colpa tua caro il mio commerciale/manager.

Ripenso al “discorso” fatto da un mio superiore: “avere il mood da startup, se non ti diverti è già finita”. Bisogna essere seriamente masochista per divertirsi in queste condizioni. Queste non sono condizioni per divertirsi, queste sono le condizioni ideali per far demotivare le persone e ridurre la loro produttività al minimo. Chissà poi perché serve sempre più tempo a fare modifiche banali, o perché i lavoratori non sono proattivi.

Vogliamo davvero offrire un ambiente perlomeno decente agli sviluppatori? Allora cominciamo dall'avere processi seguiti correttamente e che siano rispettati dal cliente e dagli sviluppatori allo stesso momento. Il cliente non ha sempre ragione.

Questo è il minimo necessario: altre idee sono ad esempio dare postazioni a norma (no, il portatile da solo non è a norma), a pagare tool/sottoscrizioni (indovina chi ha pagato la licenza di WebStorm che sto usando per lavorare?), a permettere di contribuire a progetti open source, integrare le code review nel processo di sviluppo del software, mandare i propri sviluppatori a corsi di formazione e conferenze.

Ma questo ovviamente non si fa perché costa, porta via tempo, si è sempre fatto così. E vabbè.