Sono uno sviluppatore web e faccio parte di un piccolo team che lavora su un'abbondanza di progetti. Questa è la mia prima vera "vera" società dopo la laurea in informatica e ho circa 2 anni di esperienza in Asp, SQL ecc.
Cercherò di arrivare direttamente al punto qui. Prima di un paio di cose:
1) Non abbiamo MAI commentato il codice. "Il codice di commento è per i deboli" sono le parole esatte, e possiamo piuttosto usare quel tempo che avremmo speso per inserire commenti qua e là per sfornare altro codice.
2) Non facciamo documentazione. "We it IT guys" e non abbiamo bisogno di documentare, lo ricordiamo automaticamente .. (Non le mie parole)
3) NON ABBIAMO MAI avuto recensioni o riunioni di codice. Quindi chiunque può inviare qualcosa al repository SVN. Abbiamo un sacco di progetti, le probabilità che un altro sviluppatore vedrà il tuo codice altamente improbabile.
4) Non eseguiamo test unitari di alcun tipo. Abbiamo "tester" che non sono tester dedicati, dipartimento piuttosto ambiguo responsabile della gestione dei progetti, ecc. Conosce bene il sistema in modo che possano eseguire test front-end (in genere eseguiti rapidamente).
5) Abbiamo un "Se costruisce la nave con la mentalità". Mi viene il brivido ogni volta che qualcuno lo menziona. (Fondamentalmente non ci interessa la qualità del codice).
6) Scoraggiato dal chiedere aiuto agli sviluppatori senior, nessuna guida di mentore. Lavoriamo come macchine. Finché continui a sfornare codice, stai bene.
7) Alcuni rendono il codice dinamico al punto che nessuno può mantenerlo. No davvero .. Dynamic SQL all'interno di SQL dinamico all'interno ... 5000 query SQL linea. Si arriva letteralmente al punto in cui nessuno, tranne il "genio" che lo ha scritto, può o vuole mantenerlo. Certo, vuoi rendere il codice il più dinamico possibile, ma dovrebbe essere comunque mantenibile? O ho sbagliato qui?
8) Non ci sono specifiche. Ma quando ti viene chiesto di prevedere e fare una stima di quanto tempo ci vorrà per correggere un "bug" o fare qualcosa su un pezzo di codice che non hai mai visto prima, ci si aspetta di fare una stima "lì e poi " sul posto. 2 settimane, 1 giorno e 3 ore e mezza ... Bello ... Finalmente finisce per essere totalmente scorretto, tutti mancano le loro scadenze quindi l'affare è infelice.
Siamo così frettolosi da fare errori su carta, che ci affrettiamo, commettiamo codice cattivo non testato, facciamo le cose male e scaviamo un buco per la prossima povera anima che deve mantenerla.
es. Ho fatto un miglioramento in una coppia in cui ho aggiunto i diritti per una funzione utente. Un paio di mesi lungo la linea, in arrivo un altro miglioramento assegnato a qualcun altro. Ha visto che l'ho già fatto e ha costruito un'altra funzione che ha "attivato" il mio codice. Quindi avevamo 2 funzioni completamente identiche con una diversa formulazione. Il bug per risolverlo è venuto da me, e ho dovuto risolvere il codice.
Un altro scenario. Abbiamo avviato una ripetizione di un progetto in MVC. Invece di ricercare e prendere tempo per conoscere MVC, lo sviluppatore ha fatto il salto e ha iniziato a programmare con SESSIONI e controlli codificati ecc. Invece di utilizzare gli helper HTML. Le pagine di layout, BundleConfigs e tutte le altre parti essenziali e di base sono state trascurate. Perché non abbiamo fatto le cose correttamente?
La mia domanda:
Questo standard del settore è quello di affrettare le cose? Anche se ciò significa creare un numero maggiore di bug e problemi che in futuro richiederanno più tempo per risolverli? Invece di passare inizialmente un'ora o due in più e fare qualcosa in modo corretto, dobbiamo tornare a bug dopo bug, alla fine ci costa 10 ore di lavoro. (Certo, ci saranno sempre bug), ma sembra che i ragazzi ricevano lodi sono quelli che commettono codice orribile e creano mal di testa per tutti. Sembra che ci sia poco spazio per qualcuno che prende le cose un po 'più lentamente e appoggia una solida base.
Inoltre, è standard del settore non eseguire test, codice di commenti, creare documentazione ecc.?
Sono un po 'frustrato a questo punto, non so dove guardare ...
Gradirei qualsiasi commento o opinione.
Modifica
Credo che la mia domanda abbia avuto una risposta indiretta. Sono curioso riguardo all'industria generale e ad altre società? Tutte le aziende sono orientate in questo modo? C'è luce nel tunnel, se dici che vai a lavorare per un grande giocatore come Microsoft o Google? Qualche azienda là fuori si preoccupa ancora di test delle unità, revisioni del codice, altre revisioni delle prestazioni o pratiche di qualità del codice? Sembra che la risposta dagli altri articoli sia purtroppo no. Quindi, come voglio distinguere la mia domanda dalle altre domande esistenti, voglio sapere che aspetto ha l'erba dall'altra parte? Altre società?