En sak som irriterar mig med programvaruprojekt är när saker som fungerat i en viss version helt plötsligt slutar fungera. I bästa fall finns det tydligt dokumenterat hur man uppdaterar sina filer och inställningsfiler för att det ska fungera med en senare version. I vissa fall finns det åtminstone antytt vad som behöver ändras och i resterande fall är man utlämnad till att på egen hand försöka sig fram och googla fram svar på Stack Overflow, Github-issues eller forumtrådar med andra som haft liknande problem.
Vill man undvika framtida problem och välja projekt som tar hänsyn till uppgradering behöver man antagligen en tidsmaskin. Någon tydlig indikator på om det kommer vara smärtfritt att uppgradera i framtiden finns inte riktigt.
Samtidigt så handlar det om att kunna lämna tidigare designval som visat sig dåliga bakom sig. I programspråk som Perl och Python har övergången mellan versioner varit problematiskt. Övergången från Perl 5 till Perl 6 har tagit riktigt lång tid på sig. Steget visade sig vara jättestort och mycket behövde göras för att implementera i språket. I fallet med övergången till Python 3 från 2 kan det från utsidan kännas som en balkanisering. Dispyter om det är rätt att hålla sig kvar vid version 2 när det finns klara fördelar med Python 3 ses i tweets och blogginlägg då och då.
När Ruby-skaparen Matz talat om kommande Ruby 3 har just kämpandet för Perl och Python nämnts som avskräckande exempel och motivering till att göra övergången mer gradvis.
Gradvisa övergångar behöver nödvändigtvis inte vara självklara heller. I fallet med den här bloggen och Jekyll så är det möjligt att övergången skett gradvis men eftersom jag inte följt utvecklingen sedan november 2014 och tar steget på en gång. Har man sedan varit inne och gjort egna modifieringar eller använt obskyra plugins är det något man får sota för och man är helt ensam.