tisdag 24 november 2015

Att älska koden

Förra veckan tillbringade jag några dagar på annan ort för att ta del av vision för vår avdelning de närmaste fem åren. När jag kom hem satte jag mig och uppdaterade min LinkedIn-profil och funderade över hur man kan älska kod.

Lite bakgrund: för fem år sedan bytte jag arbete från konsult till fast anställd. Den uttalade målsättningen, både inom mig och mot presumtiva arbetsgivare, var att få arbeta så länge med samma kod så att jag skulle uppnå en naturlig ”senior”-position. Inte vara ”senior” i termer av ålder, anställningstid eller examen, utan i kraft av min kunskap om den aktuella koden. Att ha en så intim kunskap om kodbasen att jag både har en åsikt i de flesta frågor och att det finns god anledning för andra att lyssna på den åsikten. Idag när jag uppnått den positionen tvingas jag konstatera att koden har svikit mig. Det team vi ägnade ett år åt att bygga upp är idag skingrat för vinden efter de fleråriga förseningar i kontraktsskrivande som är så typiska för min bransch. Och inte blir det bättre.

I den femåriga vision som presenterades fanns det ingen plats för vår kod. Det tolereras att den finns men den anses inte ha något av värde att tillföra den plattform som nu ska byggas. Den kommer aldrig bli föremål för några satsningar utan all eventuell utveckling kommer behöva vara direkt betald av kund. Detta har fått mig att reflektera över den känsla av bitterhet jag känner. I ett försök att formulera känslan konstaterar jag att jag idag om jag fick kännedom om en potentiell affär inte skulle berätta det för min närmaste chef eftersom jag vet att det bara skulle leda till att de stjäl affären och att min kod blir lämnade utanför. Så hur kan man hamna i en situation där man är mer lojal mot två miljoner rader kod än mot sina medarbetare?

Till viss del handlar det naturligtvis om hotet mot den naturliga senioritet som beskrevs ovan. Även om vare sig min anställning eller formella position på något sätt är i fara skulle jag naturligtvis inte ha samma självklara auktoritet i en annan kodbas. Men jag tror att det finns djupare skäl för mina känslor. En stor faktor är tid. Att man ägnat mycket tid åt något föder en lojalitet. Kanske speciellt om det finns ett drag av hatkärlek i relation till detta något. Gudarna ska veta att den kod vi pratar om inte är perfekt. Även om mycket är välfungerande och vackert, så är mycket annat dumt, irriterande eller obegripligt. Delar av arkitekturen har valts för att fungera tillsammans med en tredjepartsprogramvara som slutade användas för sju år sedan. Andra designval har påverkats av krav i ett projekt som avslutade för mer än tio år sedan.

Det är inte heller bara en fråga om min tid. Generationer av tidigare programmerare har investerat så mycket i denna kod. Känslan av att vara den senaste (siste?) i en lång rad är ibland påtaglig, till exempel när man får en personlig relation till personer man aldrig träffat utan bara känner via svn::blame, change sets eller incheckningskommentarer. Den starkaste känslan är dock upprördhet över det orättvisa i hur min kod behandlats. Människor som inte ens försökt sätta sig in i hur den fungerar, och som troligen inte skulle klara av att göra det, har satt sig till doms över koden. Utan att inse vad koden kan och vad den skulle kunna har de istället avfärdat den som gammal och oanvändbar.

Några dagar efter att detta inlägg påbörjats kom nästa oundvikliga steg på fördömelsens väg.
PMG har beslutat att placera koden i PD5.
Så kan också en dödsdom förmedlas. Min kod är "planerad för utfasning". Trots den vanvettiga optimismen hos vår säljare så verkar detta ändå vara slutet.
 

1 kommentar: