Agila utvecklare måste även skriva sin kod på ett agilt sätt för att vara helt agila

Agila team som jobbar enligt t.ex. scrum jobbar agilt avseende planering, kravhantering och arbetsgång, men det är bara ena sidan av det agila myntet.

Det många utvecklare missat är att agil utveckling även innebär att man skriver sin kod och lösning på ett agilt sätt, och inte gör överarbetade och överkomplicerade perfekta lösningar som tar hänsyn till allt som kan behövas nu och i framtiden.

En agil utvecklare ska följa KISS och YAGNI principerna och inte göra mer än vad som behövs för att lösa problemet just nu med hänsyn tagen till förvaltningsbarhet, utökningsbarhet och återanvändbarhet, men tillkommer nya saker i framtiden så löser man dem då.

En utvecklare ska inte heller sub-optimera sin kod in i absurdum och försöka göra bästa möjliga tekniska lösning för alla tänkbara framtida scenarion eller ens osannolika scenario med liten risk att inträffa, utan låta tiden utvisa om det verkligen behövs och ta tag i det då.

Nedan artikel tycker jag på ett väldigt bra sätt summerar hur man kan tänka och jobba som agil utvecklare, för det är lika viktigt som att produktägaren jobbar agilt med kraven och den andra sidan av det agila myntet.

5 Principles for (Agile) Software Development that improve Agility (and make you a better developer)

För att skriva enklast möjliga kod som löser problemet och blir lätt att även förvalta och underhålla kan man t.ex. följa Separation Of Concerns principen och OO generellt, men kanske inte alltid alla SOLID principerna fullt ut då det enligt nedan artikel tenderar att skapa ett system som innehåller väldigt många små delar som kan bli svåra att överblicka och hantera.

Man ska alltså vara pragmatisk och inte dogmatiskt när det gäller SOLID principerna.

Do SOLID design principles make code slow?

Tycker själv the zen of pythons 20 regler ger en bra bild av hur man ska skriva enkel kod på ett bra sätt på lägsta nivån och ser dem som ett komplement.

What do different aphorisms in The Zen of Python mean?

When programming in Python, you should…

PEP 20 (The Zen of Python) by example