8 enkla knep för att öka kodningseffektiviteten

Om du prenumererar på en tjänst från en länk på den här sidan kan Reeves and Sons Limited tjäna en provision. Se vår etik uttalande.

Det finns ett märkligt fenomen som har uppstått bland programutgivare. Det verkar finnas en tendens för människor att invertera sin förståelse för vad som gör en kvalitetsprodukt bättre, eller åtminstone är det sant när det kommer till dem som gör marknadsföringen. Det går något i stil med: "Deras produkt har en miljon rader kod, men vår har två miljoner, så därför måste vår produkt vara bättre."

Ingen vet var det här "mer är mer"-tänkandet kom ifrån, när alla på den tiden arbetade så hårt för att skapa en "mindre är mer"-filosofi. Förmodligen började det med konsumentklassad journalistik, eftersom många skribenter försöker imponera på publiken genom att citera stora siffror. För det mesta fungerar detta – den här lilla flashenheten rymmer 200 terabyte data, den processorn kan bearbeta 48 miljarder instruktioner per sekund – och skribenter är inte alltid tillräckligt tekniskt kunniga för att förstå att detsamma inte gäller källkoden.

Men effektivitet i kodning handlar inte bara om att skapa snäva algoritmer. Det handlar också om att kunna minska avfallet. Detta innebär slöseri i termer av hur mycket tid du lägger ner på att åtgärda problem, slöseri i termer av att förbruka för många datorresurser, och till och med slöseri i form av hur många pizzakartonger ditt team har staplat runt kontoret i slutet av veckan. Helst vill du skära ner på alla dessa saker.

Så det vi ska ta en titt på i den här artikeln kommer att vara de saker du kan göra för att förbättra effektiviteten och öka produktiviteten.

1. Bygg upp en gynnsam arbetsmiljö

Varje kodare arbetar under unika omständigheter, och våra läsare är ett mycket varierat gäng, så det blir lättare för några av er att implementera dessa förslag än för andra.

Om du är frilansare, grattis, för du är redan herre över din egen arbetsmiljö. Naturligtvis kommer det att förändras när du besöker en kund och måste arbeta på plats, men det är fortfarande en trevlig position att vara i om du kan göra det framgångsrikt.

Om du är chef för ett utvecklingsteam kan dessa förslag också hjälpa till att få ditt team till maximal effektivitet. Eller om du arbetar i ett utvecklingsteam, kanske du vill föreslå några av dessa idéer till din chef eller åtminstone skicka honom eller henne en länk till den här sidan och hoppas på det bästa.

Överväg att låta teammedlemmar telekommunikera

Programmering är delvis en övning i logik, men det är ännu mer en kreativ utmaning. De bästa programmerarna kan använda vardera sidan av sin hjärna i lika stor utsträckning för alla uppgifter. Vetenskapen har länge erkänt att kreativa människor gör sitt bästa på natten, och det är något vi alla har upplevt. Så varför insisterar de flesta chefer på en traditionell 9 till 5 rutin?

Egentligen vet vi redan svaret på det. Det handlar dels om kontroll, och dels om att göra saker bekvämare ur en affärsmässig synvinkel (eller åtminstone en ledningssynpunkt). Men att insistera på rutin och plats skadar teamets effektivitet och produktivitet.

Vad du måste inse är att dina kodare förmodligen var uppe hela natten och testade det senaste spelet, eller så kanske de gick på fest eller var tvungna att umgås med familjen. Det betyder att när de dyker upp på jobbet på måndag morgon, inte bara får du dem inte på sin högsta produktivitet, utan de är redan dränerade på energi och hundtrötta.

Att ge arbetarna ett val när de arbetar – och helst även var – är ett utmärkt sätt att förbättra produktiviteten och moralen. Så länge de får jobbet gjort och ger utmärkta kvalitetsresultat, bör du inte bry dig om när, var eller hur de uppnår det.

Undantaget är när du behöver ett nära samarbete, men i själva verket gör de flesta kodare bättre när de får göra saker på sitt eget sätt, och behovet av nära samarbete är sällsynt. Möjligheten att komma in på kontoret borde fortfarande finnas där, men det finns ingen realistisk anledning till varför det skulle krävas om du inte arbetar med topphemliga militära projekt.

Som frilansare kan du också se nyckeln här är att om du gör det mesta av ditt faktiska kodningsarbete på natten, kommer du sannolikt att få mer gjort. Det finns färre distraktioner sent på kvällen, det är tystare och du kommer att känna dig mer kreativ.

Undvik musik

Vi har alla sett de där galna filmstereotyperna där någon supergrungy überhacker tar på sig hörlurarna och jammar till death-metal samtidigt som de utan ansträngning tar fram skärmfulla kod utan att ens stanna upp för att andas. Och alla vi som verkligen kodar i den verkliga världen vet hur löjlig den bilden är.

Men om du lyssnar på musik medan du arbetar, var försiktig. Det är ganska lätt att tänka på musiken istället för på sitt arbete, och vissa typer av musik kan ha en sövande effekt. När du tränar på gymmet kan rätt sorts musik inspirera dig att ta ut några extra reps. Men ingen har någonsin lyckats skapa musik som kommer att inspirera dig att hitta linjen med det saknade semikolonet, eller att göra rätt val mellan att använda en for-loop eller en while-loop. Det närmaste vi någonsin har kommit det är Electric Dreams.

Försök att hålla ryddig

Skräp kan vara konstigt tröstande, men det kan också sakta ner dig. Du kan lätt förlora 20 minuter på att leta efter något som har gått förlorat i röran, och sedan glömma varför du ville ha det från början.

Så, trots allt besvär det medför, varför är vi – åtminstone vissa av oss – så beroende av röran? Organisationsexpert och författare, Julie Morgenstern, hävdar att det beror på att det här förbinder oss med vårt förflutna och spelar en roll i att definiera vår identitet. Marcus Geduld, lärare och regissör baserad i New York City, menar att det beror på att röran är att föredra framför en "steril" miljö, och liknar kaoset av röran med en affirmfrihet och kreativitet.

Det råder dock ingen tvekan om att en minskning av röran hjälper dig att undvika distraktion och desorganisering. Som sådan är det ett värdigt mål att uppnå. Ha för all del några heliga föremål runt omkring som får dig att känna dig bättre och mindre stressad, men överdriv inte. Att rensa är en av de svåraste sakerna att göra för de flesta, och det är inte bara vår fysiska desktops som behöver decluttering, men ofta vår dator desktops också. Om du verkligen kämpar med det kan du prova att använda en minimalistisk DTE som Fluxbox, som inte riktigt tillåter dig att ha något rörigt.

Men mitt i allt detta städande, gå inte överbord. Det finns gott om bra vetenskap som tyder på att lite kaos i miljön faktiskt kan bidra till kreativiteten. En av de mest citerade bitarna av forskning om detta är en tidskriftspost i Psychological Science av Vohs, Redden & Rahinel för University of Minnesota med titeln Fysisk ordning producerar hälsosamma val, generositet och konventionellitet, medan störning skapar kreativitet. Förmodligen anledningen till att detta är pappersjournalisterna som håller fast vid är att det tydligt drar slutsatsen att: "... deltagare i ett oroligt rum var mer kreativa än deltagare i ett ordnat rum."

Mycket mindre populära är olika åsikter, som Miljöstörning leder till självreglerande misslyckande (Chaye & Zhu, 2014), publicerad i Journal of Consumer Research. Denna studie fann att personer som arbetar i störande miljöer hade nedsatt förmåga att utföra uppgifter.

Så var lämnar detta dig? Ska du arbeta i kaos eller sterilitet? Svaret verkar vara att hitta en balans där det bara är tillräckligt kaotiskt för att hålla dig inspirerad, men inte så mycket att du blir distraherad eller har svårt att hitta saker.

Lämna lite rum bakom dig för att öka dina tankar

Det är en bra idé att ha gott om utrymme för att vandra när du överväger. Många av de bästa amiralerna och generalerna i historien var kända för den långa tid de tillbringade med att gå runt däcket medan de planerade stridsstrategier.

Inte bara stridande män följer denna praxis. Många buddhistmunkar förespråkar också "vandringsmeditation" och tror att det hjälper till att främja sinnets klarhet. När du har ett särskilt knotigt programmeringsproblem att lösa kan det hända att det hjälper att sträcka benen lite med en meditativ promenad runt däck. Uppenbarligen här igen kommer brist på röran att hjälpa dig att göra detta utan att hamna på sjukhuset.

Ta en försiktig inställning till kritik av kreativa insatser

Det är inget fel med konstruktiv kritik, men du måste välja rätt ögonblick och närma dig det på rätt sätt, annars kan det slå tillbaka genom att göra din personal mindre produktiv i framtiden. Istället för att inspirera dem och ge insikt, kan du faktiskt göra dem rädda för att ta risker, vilket är ett bra sätt att döda kreativiteten. Marieke Roskes, in Begränsningar som hjälper eller hindrar kreativ prestanda: en motiverande strategi, ger en ram för hur man ska hantera motivation hos kreativa arbetare, och specifikt också hur man kan undvika oavsiktligt demotivering av dem (Creativity & Innovation Management, Vol 24, Iss 2, 2015).

2. Upprätta en bra SOP

Det finns många medryckande trender inom företagsledning och programmeringsförfarande som låter mycket vettigare i teorin än de visar sig vara i praktiken. Huruvida ett särskilt tillvägagångssätt fungerar för dig eller inte beror på ditt mål och vad du personligen anser vara ett framgångsrikt resultat.

Ett exempel på en metod som ett företag jag arbetade för försökte - och lika snabbt tappade - är programmering av par (inte att förväxla med PEAR-programmering). Medan vissa människor verkligen beundrar denna arbetsmetodik och berömmer sin plats i det smidiga utvecklingsparadigmet, fann vi att det var oerhört ineffektivt. Till att börja med krävde det två programmerare för varje arbetsstation, så du betalade dubbelt så mycket för mindre faktiskt utvecklingsarbete. Vi fann också att det var mycket långsammare att arbeta på detta sätt på grund av det ofta stopp / startflödet och tendensen till onödig dialog.

Fördelarna med parprogrammering var att det resulterade i mer naturlig dokumentation och striktare dokumentation. Det gjorde det också lättare att upptäcka buggar och för att komma med förslag om att skärpa en algoritm. Samtidigt skapade samma fördelar också problem eftersom justeringar och justeringar ibland inte var nödvändiga.

En annan risk med detta tillvägagångssätt är att du kan få effekten identifierad av Roskes, där programmerare kan vara tveksamma till att prova saker eftersom de inte vill bli korrigerade. Du kan hitta personlighetskrockar som blossar upp där en utvecklare är väldigt pedantisk och traditionell, men den andra är mer kreativ och spontan.

Programmerare uppger ofta att de föredrar parprogrammering. Det är möjligt att detta beror på att de njuter av den sociala interaktion som det ger, men detta bidrar ingenting till effektiviteten i produktionen, förutom kanske som en moralhöjare.

Så vad du behöver fastställa är vad som faktiskt fungerar för dina utvecklare och vad som inte gör det. För de saker som inte fungerar är det bättre att kassera dem, även om de är en hett trendande praxis. Vad som än hjälper laget att göra framsteg snabbt är en bra sak. Men om de tyngs av en metodik som inte passar deras stil kommer det så småningom att leda till problem.

3. Uppmuntra ordentlig dokumentation

Det kan tyckas att verbositet skulle öka ineffektiviteten, men den lilla tid det tar att ge mer detaljer och precision i kommentarer kan spara mycket problem när projektet rullar längs eller genomgår revisioner.

4. Avskräcka onödig dokumentation

Välskriven kod är ofta självdokumenterande. Om det är helt uppenbart vad en funktion gör utifrån namnet du ger den (vilket nästan alltid borde vara fallet), är det överflödigt att lägga till mer beskrivning. Detsamma gäller för variabelnamn och returvärden. Det ska framgå av namnet vad de gör, och i de fall det inte går att göra det bör du inkludera en beskrivning av dem i kommentarerna.

5. Vitt utrymme är din vän

Att använda vitt utrymme på lämpligt sätt i din kod är värdefullt för att underlätta koden att läsa, granska och förstå. Det går hand i hand med god dokumentation och skrivande av självdokumenterande kod. Det borde vara möjligt för alla erfarna programmerare - eller kanske till och med en icke-programmerare - att hämta en kopia av din källkod och omedelbart förstå vad syftet med varje funktion är och hur den fungerar. Helst bör någon kunna lära sig att programmera från ingenting annat än att studera din välskrivna kod.

6. Föredrar enkelhet framför komplexitet

Ju mer komplex du gör din kod, desto svårare kan det vara att lossa den. Ironiskt nog gäller detta för programmering av genvägar, som att använda korthårskonditioner i stället för att skriva ut dem i sin helhet. Det sparar tid i skrivandet, men en mindre erfaren programmerare som kommer in för att granska din kod senare kanske inte förstår dina avsikter.

7. Testa uttömmande

Koden bör testas stegvis och ofta. Innan du distribuerar någonting bör du göra så mycket interna tester som möjligt, även om din första utgåva kommer att betecknas Alpha.

8. Använd versionskontroll

Du måste vara galen för att inte använda versionskontroll på ett större projekt. Utan det är du inte skyddad från dina egna mindre misstag, och det är också väldigt lätt för en annan teammedlem att av misstag (eller avsiktligt) sabotera din kod genom att skriva över den med något som inte behagar dig.

Genom att ta hänsyn till dessa åtta nyckelförslag kommer du att kunna utveckla din egen strategi för att få ut mesta möjliga effektivitet för dig och alla teammedlemmar du arbetar med. Du behöver inte nödvändigtvis tillämpa dem alla, och vissa kanske inte ens är praktiska för dig, men varje kombination av dem kommer sannolikt att resultera i att du får ditt arbete gjort med mindre krångel. Ett mer produktivt arbetsflöde kommer att betala sig själv med tiden, även om det bara handlar om att minska stress och ge dig mer tid för dig själv. Det är ett mål värt att arbeta mot.

Bogdan Rancea

Bogdan är en av grundarna i Inspired Mag och har samlat nästan 6 års erfarenhet under denna period. På fritiden gillar han att studera klassisk musik och utforska bildkonst. Han är ganska besatt av fixies också. Han äger redan 5.

Kommentarer 0 Responses

Kommentera uppropet

E-postadressen publiceras inte. Obligatoriska fält är markerade *

Betyg *

Den här sidan använder Akismet för att minska spam. Läs om hur din kommentardata behandlas.