Tarina veitsitaitojen kehittämisestä
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.
Olemme kaikki melkoinen joukko tekniikka- ja työkalunörttejä. Nautimme kekseliään ratkaisun rakentelusta. Juuri oikeiden komentojen ja valitsimien löytämisestä käsillä olevan haasteen ratkaisemiseksi. Joskus innostumme hieman liikaakin. Monien kehittäjien mielestä Git ei ole asia, jonka kanssa pitäisi puuhastella. Mutta onpas!
Hämmästynyt opettaja
Olen opettanut Gitiä monesti hyvin erilaisille ihmisille. Yleensä olen tilanteen tasalla ja vastaukset valmiina. Mutta eräänä päivänä yksi kysymys sai minut hämilleni: ”Miksi minun pitäisi opetella Git? Olen vain ohjelmistokehittäjä.” Kyseisen kehittäjän silmissä olin jonkinlainen harvinainen tapaus – sellainen, joka nauttii työkaluista. Vaikka se pitääkin paikkansa, uskon silti, että Gitin (tai minkä tahansa tällä hetkellä käyttämäsi heikomman SCM-järjestelmän) sujuva hallinta on olennainen osa taitavana kehittäjänä olemista.
Pidin itsestään selvänä, että kaikkien pitäisi tietysti opetella Git, mutta nyt oletukseni kyseenalaistettiin. Kysymykseen vastaaminen oli minulle ilahduttava ja hyödyllinen harjoitus.
Taitava kehittäjä
Meillä kaikilla on odotuksia ohjelmistokehittäjistä, niin itsestämme kuin muistakin. Taitavan kehittäjän tulisi hallita tiettyjä taitoja, ymmärtää tiettyjä asioita ja omata tiettyjä kyvykkyyksiä. Tässä muutamia yleisiä esimerkkejä.
Alusta
Mielestäni tämä on vähiten kiistanalainen ”osaamisen kulmakivistä”. Odotan taitavan kehittäjän tietävän jotain niistä asioista, joita hän rakentaa. Sulautettujen järjestelmien kehittäjälle tämä voi tarkoittaa laitteiston kanssa toimimisen haasteita, työskentelyä aidossa reaaliaikajärjestelmässä tai rajallisten resurssien kanssa. Windows-sovelluksia kehitettäessä on kohtuullista odottaa kykyä hyödyntää Windowsin keskeisiä ominaisuuksia. Näitä asioita ei välttämättä osaa aloittaessaan uudessa tehtävässä, vaan ne ovat taitoja, joita hiotaan ajan myötä. Ne erottavat aloittelijat taitavista kehittäjistä.
IDE
IDE on todennäköisesti paikka, jossa vietät suurimman osan ajastasi ohjelmistoja kehittäessäsi. (Osanottoni, jos se onkin oikeasti PowerPoint tai SharePoint.) Tehokas työskentely edellyttää siis sujuvaa toimintaa tässä ympäristössä. Tee yhdellä näppäinyhdistelmällä se, minkä aloittelijat tekevät useiden sekavien valikoiden ja harhaanjohtavien pudotusvalikoiden kautta. Osaa säätää asetukset työnkulkuusi ja toimialueeseesi sopiviksi.
Ohjelmointikieli
Taitavan kehittäjän tulisi hallita käyttämänsä ohjelmointikieli. Hän ymmärtää kielen idiomit, ominaisuudet ja rajoitukset sekä tuntee standardikirjastot. Jos kirjoitan Javaa kaikkialle, teen sen väärin.
Ympäristö ja olosuhteet
Sekalaiset-kategoriaan mahtuu paljon asioita. Me Praqmalla tuomme usein esiin tämän alueen monia hämärään jääviä kohtia. Odotan, että taitava kehittäjä osaa buildata ja julkaista oman ohjelmistonsa. Monessa paikassa kuitenkin ”Steven on ainoa, joka pystyy tekemään releasen – se toimii hänen koneellaan”, joten saatan olla tässä asiassa hyvin naiivi. Mutta jos et pysty julkaisemaan omaa ohjelmistoasi, miten voit tuottaa arvoa liiketoiminnalle?
Monille kehittäjille annetaan työkalukokonaisuus, johon he sitten tyytyvät. ”Työkalutiimi hoitaa sen.” Sinun on kuitenkin pystyttävä työskentelemään tehokkaasti, eikä riippuvuus erillisestä tiimistä edistä sitä.
Miksi ei sitten Git?
Miksi kaikkien näiden kohtien jälkeen emme odota ohjelmistokehittäjiemme hallitsevan Gitiä? Kun aloitin Gitin käytön, osasin commit-, pull- ja push-komennot. Merge conflictit saivat kämmeneni hikoilemaan, ja päädyin usein poistamaan repositorion ja kloonaamaan sen uudelleen. Minulla oli myös tapana säilyttää useita versioita Ohjelmistosta. The_Software_02-05-17, The_Software_02-05-17-going-home. On selvää, että vaikka käytin Gitiä, en osannut Gitiä.
Gitin hallitsemisesta on monia hyötyjä. Tässä muutamia:
Edullinen kokeilu
Kun Gitin kevyen branch-mallin käyttö tuntuu luontevalta, sivupoluille lähteminen on vaivatonta. Kokeilut pysyvät erillään, mutta ne on silti helppo integroida.
Gitin koko voima. Offline.
Ohjelmistokehitys on hauskinta yhteistyössä. Mutta mahdollisuus hyödyntää Gitin koko voimaa ilman verkkoyhteyttä on erittäin vahva etu. Voit edelleen tehdä useita tarkistuspisteitä historiaasi ja palata aiempiin versioihin. Monille tämä yksinään riittää syyksi käyttää Gitiä.
Mahdollista Continuous Delivery
Git-branchit on tehty Continuous Integrationia ja automaatiota varten, joten ne tukevat kaikkia automaatiopyrkimyksiäsi. Branchia voi käyttää merkkinä, ja sillä voi varmistaa, että automaatiotyö pysyy erillään eikä edes monista dataa.
Rakenna oma työnkulkusi
Git ei määrää organisaatiosi työnkulusta. Voit valita sen itse. Tämä on kaksiteräinen miekka ja vaatii alussa jonkin verran panostusta, mutta antaa sinulle myös enemmän mahdollisuuksia. Sen sijaan, että mukauttaisit työnkulkusi työkaluketjuun sopivaksi, voit määrittää työnkulun itse ja räätälöidä Gitin helposti tarpeisiisi.
Kyllä! Minä! Haluan oppia Gitin!
Järjestämme Praqmassa paljon Git-koulutuksia. Olemme järjestäneet opiskelijoille jopa maksuttomia Git-koulutuksia ja Continuous Delivery Academyja. Koulutamme myös ammattilaisia – tutustu Mastering Git -kurssiimme. Jos haluat opiskella itsenäisesti, tutustu erinomaisiin Git Katas -harjoituksiimme.
- DevOps
- CI/CD
Subscribe to our newsletter
Related blogs