C'è uno strano fenomeno che si è verificato tra gli editori di software. Sembra esserci una tendenza da parte delle persone a invertire la loro comprensione di ciò che rende migliore un prodotto di qualità, o almeno questo è vero quando si tratta di coloro che si occupano di marketing.
È qualcosa del tipo: “Il loro prodotto ha un milione di righe di codice, ma il nostro ne ha due milioni, quindi il nostro prodotto deve essere migliore”.
Nessuno sa da dove provenga questo modo di pensare “più è più”, quando in passato tutti lavoravano così duramente per creare una filosofia “meno è più”.
Probabilmente è iniziato con il giornalismo di consumo, perché molti scrittori cercano di impressionare il pubblico citando grandi numeri. Per la maggior parte delle cose funziona: questa piccola unità flash contiene 200 terabyte di dati, la CPU può elaborare 48 miliardi di istruzioni al secondo e gli scrittori non sono sempre abbastanza esperti dal punto di vista tecnologico da capire che lo stesso non si applica al codice sorgente.
Ma l'efficienza nella codifica non riguarda solo la creazione di algoritmi rigorosi. Si tratta anche di essere in grado di ridurre gli sprechi. Ciò significa spreco in termini di tempo trascorso a risolvere problemi, sprechi in termini di consumo di troppe risorse informatiche e persino sprechi in termini di numero di scatole per pizza che la tua squadra ha accumulato in ufficio per la fine della settimana. Idealmente, vuoi ridurre tutte queste cose.
Come migliorare l'efficienza della codifica in 8 semplici passaggi
Quindi quello che daremo un'occhiata in questo articolo saranno le cose che potresti fare per migliorare l'efficienza e aumentare la produttività.
1. Costruisci un ambiente di lavoro favorevole
Ogni coder lavora in circostanze uniche e i nostri lettori sono un gruppo molto vario, quindi per alcuni di voi sarà più semplice implementare questi suggerimenti rispetto ad altri.
Se sei un freelance, congratulazioni, perché sei già padrone del tuo ambiente di lavoro. Ovviamente questo cambierà quando andrete a visitare un cliente e dovrete lavorare sul posto, ma è comunque una posizione gradevole essere presenti se riuscite a farcela.
Se sei il manager di un team di sviluppo, questi suggerimenti possono anche aiutare a rendere la tua squadra al massimo dell'efficienza. Oppure, se sei un lavoratore di un team di sviluppo, puoi suggerire alcune di queste idee al tuo manager o almeno inviarlo un link a questa pagina e sperare per il meglio.
Considera di consentire ai membri del team di telelavorare
La programmazione è in parte un esercizio di logica, ma è ancor più una sfida creativa. I migliori programmatori possono impiegare entrambi gli emisferi del cervello in egual misura per qualsiasi compito.
La scienza ha da tempo riconosciuto che le persone creative danno il meglio di sé di notte, ed è qualcosa che tutti abbiamo sperimentato. Allora perché la maggior parte dei manager insiste su una tradizionale routine dalle 9 alle 5?
In realtà, sappiamo già la risposta a questo. Si tratta in parte di controllo e in parte si tratta di rendere le cose più convenienti da un punto di vista del business (o almeno da un punto di vista gestionale). Ma questa insistenza sulla routine e sulla posizione sta danneggiando l'efficienza e la produttività della squadra.
Quello che devi capire è che i tuoi programmatori probabilmente sono rimasti svegli tutta la notte a provare l'ultimo gioco, o forse sono andati a festeggiare, o semplicemente hanno dovuto socializzare con la famiglia.
Significa che quando si presentano al lavoro il lunedì mattina, non solo non li stai portando al massimo livello di produttività, ma sono già prosciugati di energia e stanchissimi.
Dare ai lavoratori la possibilità di scegliere quando lavorare - e idealmente anche dove - è un modo eccellente per migliorare la produttività e il morale. Finché ottengono il lavoro e si ottengono risultati eccellenti, non ci si deve preoccupare di quando, dove o come lo realizzano.
L'eccezione è quando è necessaria una stretta collaborazione, ma in verità la maggior parte dei programmatori fa meglio se lasciata a fare le cose a modo proprio, e la necessità di una stretta collaborazione è rara.
L'opzione di entrare in ufficio dovrebbe essere ancora disponibile, ma non c'è alcuna ragione realistica per cui dovrebbe essere richiesta, a meno che non si stia lavorando su progetti militari top secret.
Come libero professionista puoi anche vedere che il punto chiave qui è che se fai la maggior parte del tuo lavoro di codifica reale di notte, è probabile che tu possa fare di più. Ci sono meno distrazioni a tarda notte, è più tranquillo e ti sentirai più creativo.
Evita la musica
Abbiamo visto tutti quegli stereotipi di film pazzi in cui alcuni super-grungy überhacker si mettono le cuffie e le marmellate sul death-metal mentre sfornano senza sforzo schermi di codice senza nemmeno fermarsi a respirare. E tutti quelli che realmente codificano nel mondo reale sanno quanto sia ridicola quell'immagine.
Ma se ascolti musica mentre lavori, fai attenzione. È abbastanza facile ritrovarti a pensare alla musica invece che al tuo lavoro, e alcuni tipi di musica possono avere un effetto soporifero.
Quando vai ad allenarti in palestra, il giusto tipo di musica potrebbe ispirarti a fare quelle ripetizioni in più. Ma nessuno è mai riuscito a creare musica che ti ispiri a trovare la linea con il punto e virgola mancante, o a fare la scelta corretta tra l'utilizzo di un ciclo for o di un ciclo while. La cosa più vicina a questo è Electric Dreams.
Cerca di essere in ordine
Il disordine può essere stranamente confortante, ma può anche rallentarti. Puoi facilmente perdere 20 minuti alla ricerca di qualcosa che è stato perso nel caos, e poi dimenticare perché lo volevi in primo luogo.
Quindi, nonostante tutti gli inconvenienti che provoca, perché noi, almeno alcuni di noi, siamo così dipendenti dal disordine? L'esperta organizzativa e autrice, Julie Morgenstern, afferma che è perché queste cose ci collegano al nostro passato e svolgono un ruolo nella definizione della nostra identità.
Marcus Geduld, insegnante e regista teatrale di New York City, suggerisce che ciò accada perché il disordine è preferibile a un ambiente "sterile" e paragona il caos del disordine a un'affermazione di libertà e creatività.
Non c’è dubbio, tuttavia, che ridurre il disordine ti aiuterà a evitare distrazioni e disorganizzazione. In quanto tale, è un obiettivo degno di essere raggiunto.
In ogni caso, tieni a portata di mano alcuni oggetti sacri che ti fanno sentire meglio e meno stressato, ma non esagerare. Per la maggior parte delle persone, il decluttering è una delle cose più difficili da fare, e non sono solo i nostri desktop fisici ad aver bisogno di essere declutterati, ma spesso anche i desktop dei nostri computer.
Se davvero hai difficoltà con questo, potresti provare a utilizzare un DTE minimalista come Fluxbox, che non ti consente di avere alcun disordine.
Ma nel bel mezzo di tutto questo riordino, non esagerare. C'è un sacco di buone scienze che suggeriscono che un po 'di caos nell'ambiente può effettivamente essere favorevole alla creatività. Uno dei più frequentemente citati elementi di ricerca in questo è una voce di giornale in Psychological Science di Vohs, Redden & Rahinel per l'Università del Minnesota, dal titolo L'ordine fisico produce sane scelte, generosità e convenzionalità, mentre il disordine produce creatività. Probabilmente il motivo per cui questo è il giornale a cui si aggrappano i giornalisti è che conclude chiaramente che: "... i partecipanti in una stanza disordinata erano più creativi dei partecipanti in una stanza ordinata".
Molto meno popolari sono le opinioni dissenzienti, come ad esempio Il disordine ambientale conduce al fallimento autoregolatorio (Chaye & Zhu, 2014), pubblicato sul Journal of Consumer Research. Questo studio ha rilevato che le persone che lavorano in ambienti disordinati sono compromesse nella loro capacità di svolgere compiti.
Allora, dove ti lascia? Dovresti lavorare nel caos o nella sterilità? La risposta sembra essere quella di trovare un equilibrio in cui è solo abbastanza caotico per farti ispirare, ma non così tanto da essere distratto o avere difficoltà a trovare le cose.
Lascia un po 'di spazio dietro di te per stimolare i tuoi pensieri
È una buona idea avere un sacco di spazio per vagabondare quando si sta deliberando. Molti dei migliori ammiragli e generali della storia erano famosi per il lungo periodo trascorso a passeggiare sul ponte mentre progettavano strategie di battaglia.
Non solo i combattenti seguono questa pratica. Molti monaci buddisti sostengono anche la "meditazione camminata" e credono che aiuti a promuovere la chiarezza della mente. Ogni volta che hai un problema di programmazione particolarmente intricato da risolvere, potresti trovare utile allungare un po 'le gambe con una passeggiata meditativa sul ponte. Ovviamente anche qui la mancanza di disordine ti aiuterà a farlo senza finire in ospedale.
Come capo, segui un approccio prudente alla critica degli sforzi creativi
Non c'è nulla di sbagliato nelle critiche costruttive, ma devi scegliere il momento giusto e affrontarlo nel modo giusto, oppure può ritorcersi contro rendendo il tuo personale meno produttivo in futuro. Piuttosto che ispirarli e fornire intuizioni, potresti addirittura renderli timorosi di rischiare, il che è un buon modo per eliminare la creatività. Marieke Roskes, in Vincoli che aiutano o ostacolano le prestazioni creative: un approccio motivazionale, fornisce un quadro su come gestire la motivazione dei lavoratori creativi e, in particolare, su come evitare di demotivarli involontariamente (Gestione della creatività e dell'innovazione, Vol 24, Iss 2, 2015).
2. Stabilire un buon SOP
Ci sono molte tendenze allettanti nella gestione aziendale e nelle procedure di programmazione che in teoria sembrano molto più sensate di quanto non risultino nella pratica. Se un particolare approccio funziona per te o no dipende dal tuo obiettivo e da ciò che consideri personalmente un risultato positivo.
Un esempio di metodologia che un'azienda per cui ho lavorato ha provato, e altrettanto rapidamente abbandonato, è la programmazione in coppia (da non confondere con la programmazione PEAR).
Anche se alcune persone ammirano davvero questa metodologia di lavoro e lodano il suo posto nel paradigma dello sviluppo agile, noi abbiamo scoperto che era terribilmente inefficiente.
Per cominciare, erano necessari due programmatori per ogni workstation, quindi pagavi il doppio per un lavoro di sviluppo meno effettivo. Abbiamo anche scoperto che lavorare in questo modo era molto più lento a causa del frequente flusso di arresti/avvii e della tendenza a dialoghi non necessari.
I vantaggi della programmazione di coppia erano che ciò comportava una documentazione più naturale e una documentazione più severa. Permetteva anche di individuare i bug più facilmente e di suggerire suggerimenti su come stringere un algoritmo. Allo stesso tempo, tuttavia, gli stessi vantaggi hanno creato problemi perché a volte le modifiche e gli aggiustamenti non erano realmente necessari.
Un altro rischio con questo approccio è che è possibile ottenere l'effetto identificato da Roskes, in cui i programmatori potrebbero essere riluttanti a provare le cose perché non vogliono essere corretti. Potresti trovare scontri di personalità che si accendono quando uno sviluppatore è molto pedante e tradizionale, ma l'altro è più creativo e spontaneo.
I programmatori affermano spesso che preferiscono la programmazione della coppia. È possibile che questo sia dovuto al fatto che godono dell'interazione sociale che offre, ma questo non contribuisce all'efficienza della produzione, se non forse come stimolo morale.
Quindi ciò che è necessario stabilire è ciò che effettivamente funziona per i tuoi sviluppatori e cosa no. Per le cose che non funzionano, è meglio scartarle, anche se sono una pratica di tendenza. Qualunque cosa aiuti la squadra a fare progressi velocemente è una buona cosa. Ma se sono appesantiti da una metodologia che non si adatta al loro stile, alla fine porterà a problemi.
3. Incoraggiare la documentazione dettagliata
Sebbene possa sembrare che la verbosità aumenti l'inefficienza, la piccola quantità di tempo necessaria per dare più dettagli e precisione nei commenti può far risparmiare molti problemi mentre il progetto va avanti o subisce delle revisioni.
4. Scoraggiare la documentazione non necessaria
Il codice ben scritto è spesso auto-documentante. Se è perfettamente ovvio ciò che una funzione fa dal nome che gli dai (che dovrebbe quasi sempre essere il caso), aggiungere ulteriori descrizioni è superfluo. Lo stesso vale per i nomi delle variabili e i valori di ritorno. Dovrebbe essere chiaro dal nome cosa fanno, e in quei casi in cui non è possibile farlo, dovresti includere una descrizione di essi nei commenti.
5. Lo spazio bianco è tuo amico
L'utilizzo appropriato dello spazio bianco nel codice è utile per semplificare la lettura, la revisione e la comprensione del codice. Va di pari passo con una buona documentazione e scrittura di codice auto-documentante. Dovrebbe essere possibile per qualsiasi programmatore esperto, o forse anche un non programmatore, prendere una copia del codice sorgente e capire immediatamente qual è lo scopo di ciascuna funzione e come funziona. Idealmente, qualcuno dovrebbe essere in grado di imparare a programmare da nient'altro che studiare il tuo codice ben scritto.
6. Preferisci la semplicità alla complessità
Più complesso fai il tuo codice, più difficile sarà districarlo. Ironia della sorte, questo si applica alle scorciatoie di programmazione, come l'uso di condizionali di stenografia invece di scriverle per intero. Si risparmia tempo nella scrittura, ma un programmatore meno esperto che viene a rivedere il tuo codice in un secondo momento potrebbe non capire le tue intenzioni.
7. Test esaustivo
Il codice dovrebbe essere testato in modo incrementale e spesso. Prima di distribuire qualsiasi cosa, dovresti condurre quanti più test interni possibile, anche se il tuo primo rilascio sarà designato Alpha.
8. Usa il controllo della versione
Dovresti essere pazzo a non usare il controllo di versione su un grande progetto. Senza di esso, non sei protetto dai tuoi stessi errori minori, ed è anche facile per un altro membro del team sabotare il tuo codice accidentalmente (o intenzionalmente) sovrascrivendolo con qualcosa che non ti soddisfa.
Conclusione
Prendendo in considerazione questi otto suggerimenti chiave, sarai in grado di sviluppare la tua strategia per ottenere la massima efficienza per te e per tutti i membri del team con cui lavori.
Non devi necessariamente applicarli tutti, e certamente alcuni potrebbero anche non essere pratici per te, ma qualsiasi combinazione di essi probabilmente ti permetterà di portare a termine il tuo lavoro con meno problemi. Un flusso di lavoro più produttivo si ripagherà nel tempo, anche solo in termini di riduzione dello stress e di maggiore tempo per te stesso. Questo è un obiettivo su cui vale la pena lavorare.
Commenti Risposte 0