Jag tror att många utvecklare anser arbetet med utveckling att handla om att utveckla programvara.
Säkert, det handlar om det!
Dock handlar det också om att utveckla utvecklaren.
Bli starkare.
Här är en enkel algoritm som man kan använda för att bli en starkare utvecklare:
-
Förstå problemet fullständigt
-
Designa en abstraktion
-
Implementera abstraktionen
-
Släpp abstraktionen
-
Söka feedback
-
Använd feedback för att bygga förståelse
Det är ganska abstrakt för vissa att förstå, så låt mig ge ett konkret exempel som kontrasterar denna utvecklare
med denna
i utvecklingen av ett program som behöver skapa liksidiga och rätvinkliga trianglar.
Utvecklare ett använder följande process:
-
Dra 'liksidig' kort från brädan. Läs inte 'rätvinklig' kort.
-
Ta exempel på liksidiga trianglar. Skriv kod som kan pålitligt producera just dessa typer av liksidiga trianglar som koden förväntar sig. Eftersom att göra mer är YAGNI, checka in den, se till att CI är grön. Och åk hem.
Utvecklare två gör istället:
-
Granska brädan. Läs nyliga commits. Förstå 10 000 fot roadmap utvecklaren slå ihop 'liksidiga' och 'rätvinkliga' triangelkort till ett enda nytt kort som heter 'bygg en triangeldomänmodell' (förstå problemet)
-
Utvecklaren arbetar på papper, slutligen når (abstraktionen)
-
Utvecklaren implementerar kod som modellerar generiska trianglar med hjälp av teoremet och specialiseringar för var och en av de specifika typerna 'liksidig' och 'rätvinklig' (implementera abstraktionen)
-
Utvecklaren isolerar domänkoden från icke-domänkod och skickar ett bibliotek till github. (publicera abstraktionen och söka feedback)
-
Utvecklaren slår samman pull request för 'dividera-med-noll' bug några dagar senare (använda feedback för att ytterligare förstå)
I slutändan bockar utvecklare ett en ruta och stärker teamets process. Utvecklare två stärker koden, teamet och, främst av allt, sig själv.
Genom att upprepa processen igen och igen kan utvecklare ett förvandla sig till utvecklare två genom upprepad träning för att stärka tekniska och domänmuskler. Omvänt kan utvecklare två sluta träna och bli mjuk som utvecklare ett.
Utvecklares förmåga är precis som muskler: du måste använda den eller förlora den.