Come programmare su un programma molto stretto?


40

Sto lavorando a un progetto che ha un programma molto stretto. Non ho molto tempo per programmare e testare (anche se lavoro più di 12 ore ogni giorno, è ancora in ritardo) e il risultato è molto fragile. Il suo codice è anche molto dilemma.

Questo programma è utilizzato da tutti gli uffici dell'azienda dei nostri clienti, che si trova in molti paesi. A mezzanotte ricevo regolarmente telefonate per errori dal nostro utente / tester o per loro che non sanno come usare alcune funzionalità.

Dopo tre anni in questo progetto, mi sento molto stressato e non riesco a dormire bene perché sono molto preoccupato per errori e telefonate.

Ho alcune domande:

  1. Per tre anni, tutto il codice che ho scritto è semplicemente il codice dello scenario di utilizzo perfetto (quindi si rompe facilmente). È mal progettato e non ha alcun test unitario. Ho molti problemi a causa di questo fatto. Pertanto, voglio sapere se è possibile scrivere codice che funzioni quando il progetto ha un programma molto stretto?
  2. Come posso scrivere codice migliore nello stesso lasso di tempo?
  3. Come posso liberare la mente e non preoccuparmi del lavoro quando vado a dormire?

9
Suggerimento? Il più ovvio e tu lo sai !!!
Aditya P,

25
Spegni il telefono di notte. Stabilisci dei limiti e rispettali. Hai due problemi distinti qui, il primo è che la tua azienda non rispetta il fatto che anche i dipendenti abbiano una vita da vivere.
Tim Post

34
abbandona il lavoro, prendine uno nuovo. inoltre, impara come eseguire i test unitari
mauris,

18
Le scadenze sono un problema di gestione. Se le scadenze sono sempre così strette, allora devono lavorare per fornire stime migliori - non lavorare come un cane per rispettare ciò che pensavano ci sarebbe voluto.
Steven Evers,

4
Sono sicuro che se i giochi EA assumessero SnOrfus, lo farebbe.
Berin Loritsch,

Risposte:


30

Divieto di telefonate

Se i tuoi utenti sono in tutto il mondo, sicuramente non possono aspettarsi che tu prenda un telefono quando sono le 4 del mattino e sei a letto. Vorrei vietare le telefonate e passare ad altri mezzi di comunicazione che possono servire meglio questo scenario (e-mail o qualche DB di tracciamento dei problemi). Ma anche in ufficio fai un programma di accessibilità telefonico programmato. Altrimenti non puoi fare nulla durante il periodo in cui sei in ufficio.

Questo ti farà dormire e riposare.

Programma stretto

Se questo progetto è stato programmato per tre anni, qualcuno deve aver sospettato qualcosa che le cose non stiano davvero funzionando. Forse è giunto il momento che qualcuno dica qualcosa ai pianificatori e in particolare ai tuoi utenti / clienti e ai tuoi manager che questo è un progetto della marcia della morte. È in sviluppo da tre anni, è in ritardo ed è pieno di bug. Il piano dovrebbe essere completamente rivalutato, il codice esistente dovrebbe essere sottoposto a refactoring e le nuove funzionalità non dovrebbero essere sviluppate fino alla risoluzione di numerosi problemi.

Ordine dal caos

Stabilire una metodologia di sviluppo che renderà le cose prevedibili e sopportabili per te. Se sei uno sviluppatore, servire le telefonate quando arrivano non ti consente di fare alcun lavoro. Ogni interruzione richiede 15 minuti per tornare al punto in cui era stata interrotta. Le telefonate dovrebbero essere disattivate . Almeno sulla tua scrivania perché sei uno sviluppatore. Se riesci a reindirizzare le telefonate a qualcun altro che non ti disturberà dopo ogni chiamata di quello.

Stabilire una sorta di database di incidenti / bug. Prenditi del tempo ogni mattina quando vai al lavoro e dai la priorità ai nuovi incidenti (te stesso, il tuo team o con il tuo cliente / manager). Prova a risolverli in questo ordine di priorità dopo le parole e non provare nemmeno a pensare alle telefonate.

Cosa succede se

Cosa succede se non riesci a spegnere il telefono e non puoi dire ai tuoi utenti che non possono chiamarti quando vogliono? Se hai il numero di telefono del tuo utente ti suggerisco di fare il contrario: quando ti chiamano, fai un avviso e informali che li richiamerai quando sarà risolto. Quindi richiamali quando dormono. Se ti dicono che stanno dormendo, ricorda la loro risposta e usala quando ti chiamano nel cuore della notte la prossima volta. Le persone di solito comprendono meglio la propria lingua.

Se usano il telefono dell'ufficio e si utilizza un telefono cellulare in modo da non poterli chiamare al di fuori dell'orario di lavoro e possono farlo, quindi iniziare a spegnere il cellulare dopo aver lasciato l'ufficio. Sei stato lì per 12 ore e meriti di essere senza lavoro. Se il cellulare è personale, la tua azienda dovrebbe procurartene uno nuovo e informarne i tuoi utenti / clienti. Se in seguito iniziano a chiamarti sul tuo personale (perché non riescono a contattarti sul tuo business neanche tu:

  1. non rispondere
  2. hai risposto da un tuo amico informandoli del numero sbagliato o che l'utente originale di questo numero non lo utilizza più.

La cosa più importante

Non sviluppare nuove funzionalità fino a quando non risolvi i problemi esistenti. Almeno quelli con priorità alta e media.


6
Non diventare passivamente aggressivo con gli utenti. Se la società non si aspetta che tu risponda al tuo telefono a ore non, non farlo. Deve esserci un altro numero per qualcuno che è in servizio.
JeffO

@Jeff O: sono totalmente d'accordo. Ma dal momento che ciò accade da 3 anni, sembra che dovrebbe rispondere alle chiamate in quelle ore disumane.
Robert Koritnik,

1
Suggerirei di dirglielo in anticipo invece di istigare. Non sarebbe così tanto che le persone capiscano meglio la propria lingua in quanto non vogliono parlarti perché ti trovano spiacevole.
Rei Miyasaka,

3
"richiamali quando dormono" "La gente di solito capisce meglio la propria lingua" buona;)
Achu

2
Onestamente, se arriva fino allo scenario "What if", l'opzione migliore è solo trovare un altro posto dove lavorare. È dannoso (per la maggior parte) lavorare ininterrottamente per 12 ore al giorno, ed è anche peggio quando si è di guardia. Certamente, dovrebbe fare tutto il possibile per risolvere il problema, ma se tutto il resto fallisce, smetti. Questa situazione non è sostenibile.
Dan Lyons,

14

A meno che tu non sia l'unica persona della squadra - nel qual caso, probabilmente sei più che a metà strada verso il burnout - a turno con "il cercapersone". Questo dovrebbe alleggerire il carico per ora.

Quindi devi far capire al management che devono programmare una fase per ripagare il debito tecnico - ciò significa test, pulizia del codice, refactoring. E deve essere programmato presto. In genere, ciò significa che per un certo periodo non esiste un nuovo codice che non sia un refactoring o un test. Altrimenti, peggiorerà.

Una volta in quella fase, scegli le sezioni più problematiche della base di codice, la rifattori, la pulisci e scrivi dei test per testarne la merda. Una volta che le chiamate si interrompono o possono essere gestite senza che gli sviluppatori impazziscano, allora sei pronto per un'altra fase delle funzionalità (se è quello che vogliono). A questo punto, scrivi i test con un nuovo codice e continui a eseguire le regressioni. In questo momento, il software sembra essere sulla strada per una riscrittura.

Punti di vendita per la tua conversazione con il tuo capo:

  • I test automatizzati possono arrestare o ridurre significativamente le regressioni
  • Concentrarsi sulla stabilità significa che gli utenti avranno meno ritardi / interruzioni del lavoro
  • Niente più chiamate di mezzanotte significa che non pagano gli straordinari
  • Niente più chiamate di mezzanotte significa che gli sviluppatori non si esauriranno velocemente

Siamo onesti però. Fino a questo punto, la tua azienda non ha pensato che questo fosse un problema abbastanza grande per fare qualcosa; ti brucerai. Sembra che nessuno nel management abbia una vera esperienza di sviluppo. Inizia a cercare.


Meglio ancora, dai il cercapersone al manager che ti ha messo in questo pasticcio ... o lascialo cadere accidentalmente in un secchio di acqua salata.
Stephen C

2
Se questo progetto è andato avanti caoticamente per tre anni, suppongo che la fase del reparto tecnico durerà alcuni mesi. Dovrebbero prima smettere di sviluppare nuove funzionalità per risolvere il 20% della maggior parte dei problemi (perché l'80% si spera raramente si scontrino) e quindi iniziare con il refactoring. Al termine, puoi iniziare a toccare un altro 80%. Ma non iniziare a sviluppare nuove funzionalità fino a quando non hai risolto tutti i problemi attuali. Perché? Prima risolvi un bug, più economico è risolvere. Anche se nel tuo caso nulla sembra più economico.
Robert Koritnik,

@Robert Koritnik: Assolutamente. +1
Steven Evers,

13

Mentre potrebbero esserci alcune tecniche che ti permetteranno di ottenere piccoli guadagni in termini di produttività, un aumento del 5% della produzione lavorativa è peggio che inutile per te in questo momento. La vera abilità che ti manca qui è semplice e fondamentale:

Scopri come dire di no

Di 'di no a tutte le aspettative irragionevoli che già sai che dovresti rifiutare. Sai quello che sono. Questo è ovvio. Se non puoi dire di no ora, trova un lavoro dove puoi. I datori di lavoro intelligenti troveranno questa abilità desiderabile.


1
Più di ogni altra cosa, questa è l'abilità richiesta. Bella risposta!
Joe Z

8

Inizia capendo che il tuo progetto fallirà se nulla cambia. Questo è il passo più importante per fare ciò che devi fare. Uno sviluppatore non può sostenere 12 ore al giorno di sforzi ed essere in grado di produrre codice utile. Arriverete al punto in cui creerete errori stupidi e in realtà perderete progressi perché dovete iniziare ogni giorno a sistemare ciò che avete fatto il giorno prima. Sembra che tu sia già lì.

Esistono due problemi principali che devono essere risolti prima di poter avere di nuovo sanità mentale:

  • La direzione deve sapere che ciò che stanno facendo non funziona . Continuare a ripetere gli stessi errori produrrà gli stessi risultati. Qualcosa deve cambiare.
  • Hai bisogno di tempo per sistemare quello che hai già. Ciò significa che hai bisogno di tempo per pianificare il tuo attacco e hai bisogno di tempo per lavorarci su usando 8 giorni lavorativi di lavoro.
  • Devi cambiare il modo in cui lavori. Comprendi che più stress hai, più visione a tunnel hai. Non puoi pensare a modi creativi per affrontare i problemi o persino pensare a cosa succede se c'è un problema quando sei stressato in questo modo. Per non parlare del fatto che hai maggiori possibilità di gravi complicazioni per la salute. Trova modi per liberare lo stress e trova modi per ridurlo.

Per risolvere la tua situazione è necessario un buy-in di gestione. Il problema è che non sentono il dolore e non vuoi finire in ospedale con un ictus per attirare la loro attenzione. Il primo passo è spiegare alla tua direzione dove ti trovi e la pressione che stai subendo. Se non lo capiscono, passa a un altro livello di gestione. O eventualmente descrivere le condizioni di lavoro al dipartimento Risorse umane. Richiedere di lavorare più di 8 ore al giorno per lunghi periodi di tempo può costituire una violazione della legge e il dipartimento Risorse umane lo saprà per certo.

Supponendo che la direzione ascolti il ​​tuo appello, vuoi intraprendere le seguenti azioni:

  • Ferma l'emorragia. Nessuna nuova funzionalità e qualcun altro gestisce le chiamate di servizio. Devi concentrarti sul compito da svolgere.
  • Identifica i bug più gravi che devono essere corretti e prova a capire quanto tempo ci vorrà per risolverli. Questa è una stima approssimativa ed è meglio avere numeri più grandi rispetto ai numeri più bassi. Per tenere conto delle riunioni e delle interruzioni durante il giorno, la direzione ha bisogno del preventivo basato sul lavoro su di esso per 5 ore al giorno. Questo lascia 3 ore per riunioni e interruzioni.
  • Chiedi al management di accettare il programma rivisto per questi bug critici.
  • Chiedi al management di accettare che qualcun altro faccia il test per te. Questo non significa ammettere che non puoi fare il tuo lavoro. Questo sta semplicemente fornendo una garanzia di qualità in modo che ogni versione sia migliore della precedente.
  • Ora li aggiusti. Scrivi unit test per riprodurre il problema, in modo da sapere quando hai funzionato. Ancora più importante, saprai se qualcosa che hai fatto in un altro posto l'ha rotto di nuovo. Refactor per far funzionare meglio il codice.

Una volta terminata la versione di correzione dei bug critici, è il momento di pianificare il prossimo. Tutte le funzionalità e le correzioni di bug devono essere prioritarie e le versioni devono essere pianificate attorno a un sottoinsieme del carico di lavoro in sospeso. Scoprirai che manterrai un po 'di buon senso nella tua vita lavorativa, i tuoi livelli di stress diminuiranno, la tua qualità aumenterà e sarai complessivamente più efficiente.


6

Sembra che tu stia soffrendo di quello che considero un caso di False Economy , e più a lungo aderisci a quelle cose che non funzionano, più il tuo problema peggiorerà.

Alcuni indicatori chiave:

  • Quello che sembra essere un programma non realistico.
    • Presumo una scarsa comprensione delle solide pratiche di sviluppo da parte della direzione.
    • Presumo una mancanza di comprensione o supporto da parte della direzione.
  • Lavorare 12 ore al giorno.
  • Alti livelli di stress.
  • Mancanza di sonno.
  • Ansia.
  • Scarsa attenzione al design e alla qualità del codice.
  • Mancanza di un'unità che collauda la rete di sicurezza.

Voglio sapere se è possibile scrivere codice che funzioni quando il progetto ha un programma molto stretto?

La risposta breve è sì. La lunga risposta è complessa e richiederà un enorme cambiamento nelle percezioni da parte della direzione e possibilmente anche del cliente, e uno sforzo erculeo da parte tua ... ma tornerò su tutto questo tra un momento.

Come posso scrivere codice migliore nello stesso lasso di tempo?

Realisticamente, non puoi se il tuo presupposto è che puoi fare qualsiasi cosa che ti farà risparmiare tempo e ottenere comunque un risultato perfetto. Devi applicare tecniche che aumenteranno il tempo necessario per implementare il tuo codice perché dovrai dedicare del tempo a concentrarti sull'ottenimento dei dettagli corretti. Questo richiede tempo ed è qui che le tue false economie ti fanno più male. Tuttavia, facendo le cose in modo migliore, si migliora la qualità del codice e ciò a sua volta si tradurrà in una riduzione della fragilità del sistema. Ancora una volta, lo spiegherò più in basso.

Come posso liberare la mente e non preoccuparmi del lavoro quando vado a dormire?

L'ansia provoca una mancanza di sonno e perdere il sonno crea ansia. Questo è un circolo vizioso, se mai ce n'è uno, e se lasciato incontrollato probabilmente porterà al gemello malvagio dell'ansia, la Depressione . La perdita cronica di sonno, che presumo sia probabilmente associata a una mancanza di esercizio fisico e anche a cattive abitudini alimentari, è probabile che si traduca in affaticamento cronico . Tutto ciò è sintomatico di tutti i problemi che si incontrano sul posto di lavoro e dei conseguenti problemi che probabilmente si troveranno ad affrontare nella vita domestica. È qui che risiede la più grande prova di false economie ed è probabilmente il problema più grave che devi affrontare per primo.

Accolgo anche con favore eventuali suggerimenti.

Dovrei innanzitutto affermare che non sono un medico, e dovresti davvero chiedere consiglio al tuo medico prima di agire su qualsiasi cosa. Noterò tuttavia che ho vissuto le esperienze che hai descritto nel tuo post e so quanto sia difficile affrontarle e quanto sia importante fare qualcosa al riguardo. Ho vissuto depressione, ansia, affaticamento cronico, stress e tutte le altre piccole cose che li accompagnano, quindi ti offrirò alcuni consigli basati su queste esperienze:

  • Vai dal tuo medico e discuti dei tuoi sintomi. Informi il medico se sei stanco, se ti senti depresso o preoccupato per la maggior parte del tempo, se hai spesso raffreddori e influenza e come ti sei sentito fisicamente. Se il medico è autorizzato, è probabile che ti vengano offerti farmaci anti-ansia o persino anti-depressione. Anche se ti senti riluttante, lascia l'orgoglio alla porta e prendili come prescritto. Aiutano davvero e ti consentono di trovare la forza per affrontare tutto ciò che deve venire.
  • Cerca un bravo psicologo per discutere del tuo problema come lo conosci e chi può aiutarti ad esplorare come ti senti su tutto ciò, e per aiutarti a sviluppare strategie per affrontare il problema. Parte di ciò che ti viene chiesto può sembrare inutile o un po 'ambiguo. Fallo comunque, perché, di nuovo, aiuta davvero, in particolare insegnandoti specificamente come liberare la mente.
  • Evita i sonniferi a meno che tu non ne abbia davvero bisogno, in quanto puoi diventare dipendente da essi e peggiorare i problemi del sonno. Personalmente li prendo solo quando non riesco a dormire di cui ho bisogno dopo un fine settimana, e di solito è quando ho trascorso un fine settimana pigro e insoddisfatto.
  • Cerca di cambiare la tua dieta. Tagliare seriamente la caffeina in quanto contribuisce solo a un livello elevato di ansia. Riduci i tuoi carboidrati e bilancia la tua dieta, e con questo intendo mangiare più frutta e verdura naturali, ridurre la quantità di carne rossa che consumi e ridurre grassi e oli. Taglia le bevande analcoliche e limitati a una singola tazza di caffè al giorno se trovi impossibile rinunciare. La dieta è fondamentale per aiutarti a combattere la fatica. Inoltre, mangia il tuo ultimo pasto prima in modo da non andare a letto a stomaco pieno.
  • Esercitarsi ogni giorno. Fai un allenamento intenso almeno una volta alla settimana e cammina o pedala per almeno 30 minuti ogni giorno fino a allenarti almeno con un leggero sudore. Ciò contribuirà a stancarti fisicamente, aiutandoti con il sonno e la fatica.
  • Cambia le tue abitudini di sonno. Cerca di svegliarti presto per lavoro, quindi devi andare a letto prima di quanto potresti sentire di volere. Se non riesci a dormire, riposa in una stanza scarsamente illuminata e leggi qualcosa di noioso, e non preoccuparti se non riesci ad addormentarti subito.

Ora che ho esaminato tutto ciò che riguarda la medicina, diamo un'occhiata a cosa puoi fare per il tuo lavoro:

  • Qualcuno ha suggerito di usare la tecnica Pomadoro. Questo è anche noto come time-boxing e penso che sia una buona idea. Fondamentalmente ti concentri intensamente per 20-25 minuti, quindi fai una piccola pausa. Ti suggerisco di alzarti e muoverti per circa 3-5 minuti e guardare in lontananza per riposare gli occhi. Cerca di non pensare alle tue attività durante quel periodo. Prendi un drink, passeggia in bagno o semplicemente spostati nel tuo ufficio per un breve periodo.
  • A seconda della tua relazione con il tuo capo, trova un modo per incontrare e discutere le tue preoccupazioni che il programma di lavoro sta influenzando la tua salute. Dagli che non vuoi rischiare di deludere il cliente dell'azienda e che vorresti provare a sviluppare una strategia che ti assicuri di poter continuare a svolgere il tuo lavoro, ma ciò significa che hai bisogno per trovare il tempo di affrontare anche i problemi di salute. Usalo come ultima risorsa, tuttavia, poiché sarebbe meglio spiegare le false economie che sono al lavoro qui, come:
    • I lavoratori affaticati finiscono con un'efficienza notevolmente ridotta, mentre i lavoratori non affaticati hanno la capacità di fare di più in un arco di tempo più breve, e proverei a cercare alcune cifre e studi che è possibile utilizzare per sostenerti. Con un buon capo, non dovresti nemmeno aver bisogno di questo. I seguenti articoli potrebbero esserti utili: articolo 1 , articolo 2 , articolo 3
    • Saltare i test e l'attenzione ad alcuni dei piccoli dettagli ti costerà in seguito. Esamina il concetto di debito tecnico come punto di partenza.
  • Cerca di ridurre le ore di lavoro da 8 a 9 ore al giorno.
  • Prenota un periodo di vacanza e scappa per un po 'in un posto tranquillo. Anche se tutto ciò che fai è guidare la tua auto nel bosco e accamparti per una settimana. Scherzi a parte, non fare nulla per un po 'al fine di ricaricare le batterie.

In termini di cose relative alla programmazione reale:

  • Leggi i libri Clean Code e Refactoring e prenditi il ​​tempo necessario per applicare le tecniche all'interno. Questi ti aiuteranno ad affrontare il problema della qualità del codice. Come accennato in precedenza, sembrerà che le cose impieghino più tempo a fare, tuttavia passerai meno tempo a gestire disordine e problemi derivanti da come potresti aver lavorato in precedenza.
  • Trova gli strumenti che puoi integrare nel tuo ambiente di sviluppo per aiutarti nei tuoi sforzi per migliorare la qualità del codice. Ad esempio, se stai sviluppando in Visual Studio, l'utilizzo di una combinazione di strumenti come Resharper e NCrunch può contribuire ad aumentare enormemente la tua efficienza complessiva se li usi religiosamente e se stai già applicando buone tecniche come descritto nei libri che ho citato .
  • Scrivi unit test e usa un approccio test-first. Questo sembrerà rallentarti di più, tuttavia accelererai lo sviluppo complessivo quando avrai dei test, poiché possono contribuire a ridurre i tempi di debug e darti la sicurezza di cambiare il codice testato. Scrivi i tuoi test per soddisfare i requisiti e non per soddisfare il codice. Ciò focalizzerà i tuoi sforzi di test in modo costruttivo, il che dovrebbe ridurre al minimo il tempo impiegato per i test.

Soprattutto, è necessario gestire le aspettative, a partire dal proprio. Sei solo umano e puoi fare così tanto in un dato momento. Devi gestire le aspettative del tuo capo e far sì che il tuo capo o te stesso direttamente gestisca le aspettative dei tuoi clienti. Ciò significa dare la massima priorità al lavoro svolto. Concedi il tempo per le nuove funzionalità e il tempo per i bug e presumi che le tue scadenze scivolino. Quando si ha a che fare con la possibilità di ignorare le date di consegna, promettere solo di fornire una serie di funzioni essenziali e lasciare il resto delle caratteristiche come "belle da avere se possibile". Alla data di consegna successiva, si esegue nuovamente questo processo, aumentando le priorità del "bello da avere" della consegna precedente e così via. Integralo nella tua metodologia di sviluppo come punto di partenza minimo, e poi riesaminare dopo un paio di consegne per vedere dove è possibile ottimizzare i processi per migliorare l'efficienza. Le maggiori efficienze verranno dai tuoi cambiamenti nello stile di vita, tuttavia ci sono sempre piccole cose che puoi fare per semplificare il tuo lavoro, come ridurre le spese generali relative alla documentazione e alla comunicazione tra te e gli utenti finali.

Sii proattivo in tutto questo. Mostra al tuo capo che entrambi potete lavorare insieme per migliorare davvero le cose, il che alla fine si rifletterà bene su entrambi e sulla società in generale.

Inoltre, non prendere decisioni drastiche ora. Attendi che ti occupi della tua salute e del tuo carico di lavoro, e vedi come procedi per un po '. Quando la tua mente diventa più chiara e quando ti senti in un posto migliore, allora sarà il momento di decidere se vale la pena restare o se è il momento di andare avanti. Quello che sto sostanzialmente dicendo è di affrontare un problema alla volta e lasciare il resto a stufare un po 'fino a quando non avranno bisogno della tua attenzione.


4

Se il tuo programma è stretto, devi essere compulsivo riguardo a Non ripetere te stesso . Identificare i metodi più utilizzati e assicurarsi che vengano riutilizzati pesantemente.

Pianifica ciò su cui lavorerai oggi, scrivilo e seguilo. Cerca di limitare ciò che devi ricordare in qualsiasi momento a sette o meno articoli.

Vorrei fare un altro passo ed evitare di ripetere il lavoro degli altri. Usa le librerie della lingua ogni volta che è possibile. Utilizzare librerie di terze parti, se possibile.

Può sembrare che ci voglia più tempo per scrivere ma mirare a metodi che fanno solo una cosa. Limito un metodo per prendere decisioni o fare cose. La coesione del codice dovrebbe aumentare mentre diminuisce l'accoppiamento. Dovresti trovare che i test sono più facili. Questo si presta bene alla decomposizione progressiva.

Semplifica il più possibile. Usa modelli, liste di controllo e qualsiasi tecnica ti consenta di evitare di pensare a banalità.

Dovrai evitare interruzioni. Ogni interruzione ti costerà circa 15 minuti sul programma. Proteggi il tuo tempo.

Se questo è a lungo termine, vai a casa quando scopri che la tua performance inizia a rallentare. Se lavori costantemente 12 ore al giorno, la tua performance è probabilmente su cosa faresti lavorare 8 giorni al giorno. Potresti non notare quanto la tua performance sia degradata. Prenditi le quattro ore extra per allenarti e riposare. Vedi se riesci a fare un pisolino a mezzogiorno o prendersi qualche ora libera dopo pranzo.


4

Se fossi in te, parlerei con il mio manager e spiegherei loro che le scadenze che stanno fissando non sono realistiche. Se continui a lavorare in questo modo, penseranno che tutto vada bene, non saranno consapevoli dei problemi che stai riscontrando e finirai per aggiungere ogni giorno sempre più codice scritto male al tuo sistema, che complicherà ulteriormente il tuo lavoro.

In alternativa, potresti sempre passare a qualche altro lavoro :-)


2

Tieni traccia di tutto ciò che fai

Prenditi il ​​tempo necessario per tenere traccia di tutto ciò che fai e di quanto tempo tu e il tuo team vi dedicate. Questo finirà per essere ciò che porti al management per mostrare loro che devi fare le cose in modo diverso. Se non hai i fatti duri e freddi su ciò che stai facendo e quanto tempo stai spendendo per risolvere i problemi segnalati da altri, sarà molto più difficile convincerli che è necessario apportare modifiche. Ogni ora deve essere tracciata da tutti affinché questo sia accurato. Questo serve per dire che hai passato 80 ore nelle ultime 3 settimane a riparare un sistema che avrebbe potuto essere ricostruito da zero nello stesso lasso di tempo.

Prova a cambiare le cose

Usa il tracciamento che hai raccolto e i grandi suggerimenti che altri hanno fatto per mettere insieme un piano per migliorare il software. Scegli le parti del software che causano il maggior numero di problemi. Metti insieme il piano che pensi porti le cose a un ritmo gestibile normale. Dagli il tempo di lavorare.

Preparati al fatto che potrebbe essere il momento di partire

Se il management non è disposto a cambiare le cose e a lavorare con te, potrebbe essere il momento di pensare di andare avanti. Concordo con gli altri sul fatto che stai bruciando. Inizia a preparare il tuo curriculum e portfolio. Le cose potrebbero migliorare e non dovrai andare avanti, ma se la direzione non si accontenta di apportare modifiche, vai avanti. La tua salute mentale e fisica è più importante che rimanere in un lavoro che ti toglie così tanto da te.


Non sono d'accordo con la parte "traccia tutto" perché se questi dati vengono consegnati alla direzione, potrebbero benissimo essere critici nei confronti della minima imperfezione nel modo in cui il dipendente gestisce il tempo. Ciò aggraverà lo stress del dipendente.
Acumenus,

2

Per amore di Dio, dov'è il tuo project manager?

Se non hai un project manager per aiutarti a stabilire il tempo produttivo, ne hai bisogno. Hai bisogno di una persona dedicata a restare fedele al tuo tempo di sviluppo, limitare lo scorrimento dell'ambito, gestire le aspettative, ecc ...

Fai un lavoro creativo per vivere. Se non hai una barriera tra i tuoi clienti / utenti e te, come puoi concentrarti efficacemente sul tuo sviluppo?

Un buon PM può essere buono per molte cose ...

1. Per giocare la carta "Potenza superiore":

I tuoi utenti ti stanno cacciando per nuove funzionalità, ma hai davvero bisogno di un po 'di tempo per concentrarti su una versione di correzione di bug. Chi ha detto che devi parlare con gli utenti? È tua responsabilità scrivere i contratti? Il tuo compito è gestire le aspettative dei clienti? Hai il potere decisionale finale per dettare i termini del contratto?

No? Allora perché sei l'unico responsabile per l'interazione con il cliente? Lo sviluppo è difficile e richiede molta concentrazione. Hai bisogno della capacità di recuperare i tempi di sviluppo e puoi farlo con un buon PM e una buona scusa.

Indipendentemente da ciò che il tuo PM fa rispetto a te, se i clienti iniziano a preoccuparti delle modifiche al di fuori delle specifiche, basta dire.

"Negoziare modifiche al di fuori delle specifiche è al di sopra del mio grado di retribuzione ..."

È un modo educato per dire, non do come ***.

Seguitelo facendo ammalare il 'Scope Creep Dog' su di loro.

"Se vuoi apportare modifiche alle specifiche dovrai contattare il mio PM"

Adesso lasciami in pace. La capacità di un utente di interagire direttamente con gli sviluppatori è consentita come un privilegio che può essere rimosso. In caso contrario, la tua direzione ti sta fallendo.

2. Gestire le aspettative 101

Chi nella loro mente giusta pensa che tu possa lavorare in un programma così folle e gestire il supporto tecnico 24/7. Hai bisogno di qualcuno che ti difenda perché il tuo tempo è prezioso e dovrebbe essere dedicato al tuo mestiere.

Questo vale sia per i clienti che per l'azienda per cui lavori. Per i clienti, se stanno eccedendo, puoi sempre chiedere ...

"Questo servizio è scritto nel contratto?"

In caso contrario, hai il diritto di rifiutare le richieste allora. Non fraintendetemi, è bello andare al di là e rendere felici i vostri clienti, ma è altrettanto importante far loro conoscere la differenza tra ciò che ci si aspetta e ciò che si sta dando loro come favore.

Per l'azienda per cui lavori, hai bisogno di qualcuno che porti il ​​messaggio ...

"Il lavoro che mi viene chiesto di fare è uguale al mio grado di remunerazione?"

Vale a dire, ti stanno pagando 60.000 all'anno per spendere il 50% del tuo tempo facendo assistenza tecnica telefonica che è una posizione di pagamento molto più bassa. Questo è un argomento pericoloso da affrontare, quindi hai bisogno di un PM di cui ti puoi fidare per fare un buon caso per te. L'argomento che dovresti fargli è ...

"Vengo pagato 60.000 all'anno, ma metà della mia potenziale produttività viene sprecata in lavori umili".

Oppure, voi ragazzi mi avete assunto e perdete volentieri soldi su quell'investimento facendomi passare metà del mio tempo a ricoprire una posizione di basso livello. Che ci crediate o no, massimizzando il vostro potenziale possono fare più soldi a lungo termine.

Quando si tratta di affari, è molto più facile indurre l'azienda a cambiare posizione se è possibile presentare una situazione vantaggiosa per tutti. Non devi essere un maestro della negoziazione perché questo si attacchi. Ovviamente, se le risorse dell'azienda sono limitate, ciò potrebbe ritorcersi contro di voi.

3. Qualcuno potrebbe usare una cheerleader a volte

Un buon PM sarà naturalmente una persona-persona. Il nucleo di ciò che fanno sono le relazioni con le persone. Un buon PM avrà la possibilità di dire ai tuoi clienti ciò che non vogliono sentire e farli comunque andare via felici.

Possono anche essere una grande fonte di supporto morale quando i tempi si fanno difficili. Una semplice spinta morale non dovrebbe essere troppo per un buon PM da gestire se lo chiedi. Hai bisogno di qualcuno dalla tua parte, altrimenti il ​​tuo morale cala e il lavoro sembra travolgente.


Se non hai qualcuno più in alto nell'organizzazione che è responsabile della gestione delle aspettative, la tua gestione sta fallendo e i superiori probabilmente non sono nemmeno consapevoli di quanto il progetto stia andando male.

Questa è la ragione principale per cui evito di lavorare per aziende come la peste. Sono stato abbastanza fortunato da lavorare per aziende più piccole in cui ho qualcuno più in alto, posso onestamente discutere dei problemi con chi terrà in confidenza ciò che ho da dire e agire se necessario.

Hai bisogno di qualcuno dalla tua parte per aiutarti a rimanere in linea con le esigenze aziendali e gestire le distrazioni. Se non lo hai e non c'è speranza di trovarlo in futuro, buona fortuna ...


1

Wow wow wow ! Tieni il tuo cavallo da cowboy !. Sembra che tu abbia uno sviluppo tutto sbagliato lì. Qui manchi alcuni concetti fondamentali del software durante la codifica. Sì rispolverare le tue basi ... la vita sarà molto più semplice.

Torna a scuola ora

  1. Programmi rapidi di sviluppo del software per domare *
  2. Mitico mese-uomo *

*Devi leggere


2
domanda successiva - come programmare e riuscire a leggere alcuni libri in un programma serrato :-D
Ventsyslav Raikov,

1
@Bond - amico, avremmo già dovuto leggere quel libro prima di iniziare il progetto. In caso contrario, dobbiamo renderci conto che l'apprendimento continuo fa parte dello sviluppo del nostro software. Non dovremmo pensare di leggere come parte del nostro lavoro quotidiano. Avremmo già dovuto leggere per un po 'di tempo ogni giorno. Penso che sia il diritto di uno sviluppatore di software di dedicare un po 'del suo tempo a leggere anche durante le ore d'ufficio. Personalmente ho visto che persino leggere solo 5 pagine al giorno ha un enorme impatto. Iniziare a leggere ora ti aiuterà a risparmiare tempo nel tuo prossimo progetto.
Imran Omar Bukhsh,

assolutamente d'accordo con te amico, leggo ogni giorno. Ma non lavoro (che presumo significhi codice nella domanda sopra) 12 ore al giorno. Se lo facessi, sicuramente non leggerei alcun libro. C'è di più nella vita oltre al lavoro.
Ventsyslav Raikov,

@Bond - vero, ma non rimarrebbe molta vita se non lavoriamo nel modo giusto. Nella mia azienda lavoro 5 ore al giorno. Abbiamo realizzato un motore strisciante in circa 1,5 anni. Abbiamo più di 1 milione di visitatori al mese.
Imran Omar Bukhsh,

1

Mi piace fare un elenco TODO, ordinarlo in ordine di necessità e attenermi a quell'ordine incondizionatamente - anche se ho voglia di procrastinare alcuni compiti.

Saresti sorpreso di quanto tempo puoi risparmiare semplicemente riducendo il tempo che passi a chiederti su cosa lavorare dopo.


1

In questo momento quello che puoi fare è farlo

  • Abbinalo a un collega
  • Tutto il codice che scrivi o cambi, devi essere d'accordo di essere abbastanza bravo. Preferibilmente come programmazione di coppia, eseguire la revisione tra pari solo se non è possibile associare il programma.
  • non deviare da questo!

Ciò significa che almeno quello che fai da ora in poi è stato approvato da DUE persone che speriamo migliorino quei frammenti di codice.

Cos'altro si può fare dipende dalla gestione. Potresti voler mostrare loro questa domanda con le risposte!


Devo dissentire fortemente dalla programmazione delle coppie. Non è come funzionano i pensatori indipendenti o le menti creative. Inoltre, non è mai un sostituto per una revisione tra pari del team.
Acumenus,

1

Vietare le telefonate e implementare una rigorosa regola "SOLO i bug vanno al bug tracker". Quindi la tua prima mossa della giornata è valutare i nuovi bug inseriti, ripulire i duplicati, stabilire le priorità e iniziare a correggere i bug PRIMA. E assicurati che le correzioni dei bug risolvano effettivamente il bug e non introducano nuovi bug.

Come si fa l'ultima parte? Adattando a posteriori i casi di test sul codice esistente. Se hai funzioni, verifica che immettano e producano ciò che ti aspetti e che falliscono bene se dai loro spazzatura. Utilizzare una sorta di test automatico dell'interfaccia utente per testare l'integrazione e le prestazioni front-to-back.

In realtà non ti alzi dal letto alle 3 del mattino per risolvere i problemi di codice, vero? Se è così, ti meriti tutto ciò che ottieni.



0

Tu e gli sviluppatori come te, siete l'unica ragione a cui posso pensare per aver richiesto una licenza di sviluppo software, come medici e avvocati. In questo modo la licenza può essere revocata per non aver seguito le buone pratiche minime di programmazione di base. Non solo proteggerebbe il settore dagli incompetenti, ma proteggerà anche quei programmatori competenti dai manager che insistono sul fatto che i loro programmatori non seguano le buone pratiche.

Cordiali saluti, praticamente tutti lavorano a una scadenza serrata. Tuttavia, quegli sviluppatori che sanno cosa stanno facendo seguono le migliori pratiche perché a lungo termine il lavoro viene svolto più rapidamente. Quindi non devono lavorare 12 ore al giorno per 3 anni consecutivi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.