Blog

Varför ska jag lära mig Git? Jag är ju bara mjukvaruutvecklare

MAY 2, 2017

Berättelsen om att vässa dina knivkunskaper

Johan Abildskov

Johan has been a Continuous Delivery Consultant with Eficode Praqma since 2015. After achieving his BSc in Computing Science he spent his time teaching, coding, hacking and studying. He is an avid gamer and participates in tournaments whenever he has the time. He also plays the bass.

Vi är alla riktiga teknik- och verktygsnördar. Vi gillar att hacka fram en smart lösning. Att hitta exakt rätt kommandon och flaggor för att lösa utmaningen framför oss. Ibland går vi lite för långt. Många utvecklare tycker inte att Git är något man ska experimentera med. Men det är det!

Den förbryllade läraren

Jag har undervisat i Git många gånger för en mängd olika människor. Vanligtvis har jag full koll och svaren redo. Men en dag fick jag en fråga som jag inte kunde svara på: ”Varför ska jag lära mig Git? Jag är ju bara mjukvaruutvecklare”. För utvecklaren i fråga var jag en särskild sorts människa, en av dem som gillar verktyg. Och även om det stämmer, anser jag fortfarande att goda kunskaper i Git (eller vilket sämre SCM du än använder just nu) är en viktig del av att vara en skicklig utvecklare.

Jag hade tagit för givet att alla självklart borde lära sig Git, men nu utmanades mina antaganden. Vilken härlig och givande övning det var att svara på den frågan.

Den skickliga utvecklaren

Vi har alla förväntningar på mjukvaruutvecklare, både på oss själva och andra. Kunskaper, förståelse och kompetenser som en skicklig utvecklare bör ha. Här är några vanliga exempel.

Plattformen

Jag tycker att detta är den minst kontroversiella av ”kompetenspelarna”. Jag förväntar mig att en skicklig utvecklare kan något om det hen bygger. Om du är embedded-utvecklare kan det handla om utmaningarna med att interagera med hårdvara, arbeta med ett riktigt realtidssystem eller med begränsade resurser. När du utvecklar Windows-applikationer är det rimligt att förvänta sig att du kan interagera med Windows kärnfunktioner. Det här är saker du kanske inte kan när du börjar på en ny tjänst, utan färdigheter som du utvecklar över tid. De skiljer nybörjarna från de skickliga utvecklarna.

IDE:n

Din IDE är sannolikt platsen där du tillbringar mest tid när du utvecklar mjukvara. (Jag beklagar om det i själva verket är PowerPoint eller SharePoint.) För att vara effektiv behöver du alltså kunna arbeta smidigt i den miljön. Gör med en enkel tangenttryckning det som nybörjare gör genom flera röriga menyer och vilseledande rullgardinslistor. Vet hur du justerar konfigurationen så att den passar ditt arbetsflöde och din domän.

Språket

En skicklig utvecklare bör behärska språket hen arbetar i. Hen förstår språkets idiom, funktioner och begränsningar och hittar i standardbiblioteken. Om jag skriver Java överallt gör jag fel.

Miljö och förutsättningar

Det finns mycket som kan hamna i kategorin ”övrigt”. Vi på Praqma brukar belysa många förbisedda områden inom det här fältet. Jag förväntar mig att en skicklig utvecklare vet hur man bygger och releasar sin egen mjukvara. Men på många ställen är det ”Steven som kan göra releasen, det fungerar på hans maskin”, så jag kanske är väldigt naiv på den punkten. Men om du inte kan releasa din mjukvara, hur kan du då skapa värde för verksamheten?

Många utvecklare får en verktygskedja tilldelad och blir bekväma. ”Verktygsteamet har koll på det”. Men du behöver arbeta effektivt, och ett externt beroende av ett separat team underlättar inte det.

Varför inte Git då?

Med allt detta i åtanke, varför förväntar vi oss då inte att våra mjukvaruutvecklare behärskar Git? När jag började använda Git kunde jag committa, pulla och pusha. Merge-konflikter gav mig handsvett och jag raderade ofta ett repository för att sedan clona det igen. Jag brukade också ha flera versioner av mjukvaran liggande. The_Software_02-05-17, The_Software_02-05-17-going-home. Det är tydligt att även om jag använde Git, så kunde jag inte Git.

Det finns många fördelar med att kunna Git. Här är några:

Enkel utforskning

När du är bekväm med Git:s lätta branchmodell blir det enkelt att utforska sidospår, samtidigt som experimenten hålls isolerade men ändå enkelt kan integreras.

Git:s fulla kraft. Offline.

Mjukvaruutveckling är som roligast när du samarbetar. Men möjligheten att använda hela Git:s kraft utan att vara uppkopplad är mycket värdefull. Du kan fortfarande skapa många kontrollpunkter i din historik och gå tillbaka till tidigare versioner. För många är detta skäl nog att använda Git.

Möjliggör Continuous Delivery

Git-brancher är gjorda för Continuous Integration och automatisering, så de möjliggör allt ditt automatiseringsarbete. En branch kan användas som en flagga, den kan se till att allt automatiseringsarbete hålls isolerat och den duplicerar inte ens någon data.

Skapa ditt eget arbetsflöde

Git styr inte vilket arbetsflöde din organisation ska använda. Du kan välja själv. Det är både en styrka och en utmaning och kräver en viss initial investering, men det ger dig rätt förutsättningar. I stället för att kompromissa med ditt flöde för att passa verktygskedjan bestämmer du flödet och kan enkelt anpassa Git efter dina behov.

Ja! Jag! Jag vill lära mig Git!

På Praqma erbjuder vi mycket utbildning i Git. Vi har till och med hållit kostnadsfria Git Training Course och Continuous Delivery Academies för studenter. Vi utbildar även yrkesverksamma – kolla in vår Mastering Git course. Om du vill studera på egen hand kan du ta en titt på våra utmärkta Git Katas.

  • DevOps
  • CI/CD

Subscribe to our newsletter