Pari sanaa koodauksen perusperiaatteista
Kysyimme kokeneilta asiantuntijoiltamme heidän näkemyksiään ohjelmistokehityksen perusperiaatteista. Aiheina haastatteluissa oli testaus, ”puhdas koodi” ja tiimityöskentelyn merkitys.
Aslanilla, Tuukalla, Evgenialla, Mingfengilla ja Teemulla on yhteensä 65 vuotta työkokemusta ohjelmistokehityksen parissa, joten nämä ammattilaiset tietävät, mistä puhuvat.
Miksi testaus on tärkeää?
ASLAN, PROJEKTIPÄÄLLIKKÖ
Täydellistä koodia ei ole olemassakaan. Huolellisella suunnittelulla voidaan vähentää mahdollisten virheiden määrää merkittävästi, mutta tästä huolimatta on aina mahdollista, että koodiin päätyy virheitä. Suunnitelma ja määrittely on aina alustava speksaus. Kun koodin kanssa työskennellään, se pitää sovittaa ohjelmistoon tai ympäristöön kiinni.
Kun näitä sovitetaan yhteen, voi tulla uusia dynaamisia tilanteita, mitä suunnitelmissa ei otettu huomioon. Tällaisessa tilanteessa testit nappaavat nämä toivottavasti kiinni ennen kuin koodia on vielä viety tuotantoon.
Asiat, kuten yksikkötestit ja testisuunnitelmat toimivat myös ikään kuin ”ilmaisena” suunnitteludokumenttina. Tulevat kehittäjät voivat lukea nämä läpi ja saada siitä lisäkontekstia ohjelmiston toiminnallisuuksiin.
TUUKKA, SENIOR DEVELOPER
Testaus on tärkeää, sillä sen avulla koodin toimivuus on määritelty. Testien päälle on paljon helpompi tehdä muutoksia niin, että koodi toimii vielä muutosten jälkeenkin. Itse voin myös oppia muiden tekemistä yksikkötesteistä, mitä toteutuksen kuuluisi tehdä – kunhan kyseiset testit on myös hyvin tehty.
MINGFENG, SENIOR SOFTWARE DEVELOPER & GIS MASTER
We are humans and we all make mistakes. Testing is one of the most effective and cheapest ways to help us to avoid most mistakes. It is nearly impossible to know everything or get everything right on day one. Changes to the software are inevitable.
Tests give developers more confidence to make changes. Thus, developers can keep improving the software without worrying about introducing more bugs to software. One of the good practices in software development is to refactor mercilessly, which is only possible with relentless testing and continuous integration.
EVGENIA, SENIOR DEVELOPER
Kehittäjänä testit auttavat minua jokapäiväisessä työssäni. Omasta työstäni tulee vähemmän stressaavaa, jos projektissa on laadukas testaus. Kun testaus on kunnossa, voin rauhallisin mielin luottaa, että tuottamani koodi ei riko olemassa olevia toimintoja. Siten on myös tärkeä kirjoittaa hyviä testejä omille uusille toiminnoille, jolloin myös omat mahdolliset loogiset virheet paljastuvat.
TEEMU, TEST MANAGER
Testauksen tärkein tehtävä on kasvattaa luottamusta. Luottamusta siihen, että olemme toimittamassa liiketoiminnan asettamia tavoitteita, luottamusta järjestelmän vakauteen sekä luottamusta siihen että tämäkin lisäys järjestelmän toimintaan todellakin rokkaa!
Pidä mielessä:
Laadukkaan testauksen avulla koodia uskaltaa tuottaa ilman pelkoa siitä, että koko dominorivi (lue: järjestelmä) kaatuisi. Testaus lisää järjestelmän vakautta ja tukee ohjelmistokehittäjän työtä.
Miksi puhtaan koodin kirjoittaminen on tärkeää?
ASLAN, PROJEKTIPÄÄLLIKKÖ
Selkeästi muotoiltuun koodi on helpompi lukea, jolloin siihen on helpompaa saada useampia silmäpareja tarkastamaan koodia mahdollisten virheiden varalta. Kauniista koodista on myös helpompi löytää virheet itse. Ihmisten on helpompi tehdä yhteistyötä kun koodi on siistiä, ja kun siinä noudatetaan yhteistä tyyliä. Siisti koodi on yleensä myös helpompi uudelleenkäyttää.
TUUKKA, SENIOR DEVELOPER
Koodin ymmärtäminen, muokkaus ja sitä myöten ylläpito on helpompaa.
Pahimmillaan koodista voi tulla sellainen sillisalaatti, että kehittäjä ei itsekään enää parin kuukauden päästä muista, miksi teki kyseisiä asioita – tai mitä yritti tehdä. On hyödyllistä myös jättää kommentti omaan koodiin, että muistaa, mitä sen piti tehdä.
MINGFENG, SENIOR SOFTWARE DEVELOPER & GIS MASTER
It’s very important to understand that code is for humans, but not for computers (the code needs to be compiled to 0s and 1s in order to be understood by the computer). Developers need to express their intentions clearly and understandably to make it possible for other developers (and for themselves) to make changes or fix bugs in it.
This is also an important way to make it easier to change the software. If you cannot understand something, you cannot change it.
EVGENIA, SENIOR DEVELOPER
”Clean code” on helppo lukea, ylläpitää ja on kaunista katseltavaa. Useimmiten kirjoitamme koodia tiettyyn projektiin, jolloin on aika varmaa, ettet ole ensimmäinen etkä viimeinen, joka lukee sitä. Laadukas koodi on myös ammattiylpeyttä ja kunnioitusta projektin tulevia kehittäjiä kohtaan.
TEEMU, TEST MANAGER
Kuten likainen pyykki, myös likainen koodi haisee. Kirjaimellisesti, varsinkin jos hyödynnät Sonarqubea DevOpsin toimintamallin pohjana. Puhdas koodi on ymmärrettävää, virheettömämpää ja helpommin myös toisten sisäistettävissä.
Pidä mielessä:
Kuten siivoaisit vessanpöntöstä käytön jäljet, kunnioitat myös koodatessa toisia käyttäjiä. Koodaus on tiimityöskentelyä ja kuten kirjoittajan itse, myös muiden on syytä saada selvää kädenjäljestä.
Mikä tiimityöskentelyssä on tärkeää?
ASLAN, PROJEKTIPÄÄLLIKKÖ
Harva jaksaa siirtää kokonaisen vuoren yksin, mutta porukassa se voi tuntua jo mahdolliselta. Tiimiltä saa henkisen tuen lisäksi teknistä apua virheiden selvittämisessä. Luovassa työssä, kuten ohjelmoinnissa on hyödyllistä, että saa välillä kommentteja toisesta perspektiivistä. Ongelmiin on usein monia eri ratkaisutapoja ja tiimityössä yleensä näitä pääsee työstämään.
TUUKKA, SENIOR DEVELOPER
Koska kaksi tai useampi silmäpari on parempi kuin yksi.
MINGFENG, SENIOR SOFTWARE DEVELOPER & GIS MASTER
Software development can be difficult sometimes and collaboration within a team helps to solve complex problems. Exchanging ideas between the team members can help come up with more creative ways of doing things. It also brings more opportunities to learn from each other.
Interesting things I would like to focus more on in the future are functional programming and linear optimization.
EVGENIA, SENIOR DEVELOPER
Henkilökohtaisella tasolla tiimi on mahtava paikka kasvaa ihmisenä sekä ammattilaisena. Projektin näkökannalta on selvä, että yksi ihminen ei voi joka paikkaan taipua. Sellainen tiimi, jossa kommunikaatio pelaa, voi saavuttaa hienoja asioita. On myös tärkeää pitää hyvä työasenne ja kunniotus toisia ryhmän jäseniä kohtaan.
TEEMU, TEST MANAGER
Tiimityöskentelyllä on kaksi kriittistä näkökulmaa, sosiaalinen ja ammatillinen. Sosiaalisessa mielessä tiimi tarjoaa mahdollisuuden vaihtaa ajatuksia ja nauruja tiimikavereidesi kanssa. Ammattillisesti tiimikaverit ovat tukemassa jatkuvaa oppimista ja yhdessä tekemistä.
Pidä mielessä:
Koodaaminen on luovaa ajatustyötä ja silloin tällöin silmäpari jos toinenkin tuo hyödyllistä perspektiiviä. Vahva tiimi tukee toisiaan ja täydentävät niin toistensa heikkouksia kuin vahvuuksia. Rehellinen ja reilu viestintä on arvoa luovan tiimin a ja o.
Lisätietoja
Tagit
Liiketoimintaprosessi
Asiakaspalvelu |
Erikoisosaaminen
Käyttöliittymäsuunnittelu |
Toimialakokemus
Asiantuntijapalvelut |
Teknologia
Open source |
Tarjonnan tyyppi
Konsultointi | |
Toteutustyö |
Anders Innovations - Asiantuntijat ja yhteyshenkilöt
Anders Innovations - Muita referenssejä
Anders Innovations - Muita bloggauksia
It- ja ohjelmistoalan työpaikat
- Laura - Tietoturva- ja teknologia-asiantuntija
- Laura - ICT – ja digijohtaja: Pohjois-Karjalan hyvinvointialue (id9091)
- Laura - Tiedonhallinnan asiantuntijan toimi
- Efima Oyj - Senior Sales Manager
- Red & Blue Oy - WordPress-kehittäjä tuki- ja pienkehitystiimiin
- Laura - Senior Game Artist (Game Studio)
- Frends iPaaS - Senior Product Marketing Manager (SaaS)
Premium-asiakkaiden viimeisimmät referenssit
- Red & Blue Oy - Mannerheimin Lastensuojeluliiton nettikirjepalvelu uudistui
- Ceili Oy - Norlandian varhaiskasvatuksen prosesseihin yhdenmukaisuutta Salesforcella
- Innofactor Oyj - Pohjantähden moderni intranet pitää työntekijät ajan tasalla
- Innofactor Oyj - Visiona moderni, looginen ja yksiselitteinen intranet
- TNNet Oy - Hotelli Alba – TNNetiltä riennetään apuun vaikka vettä pitkin
- TNNet Oy - Intrum sai TNNetistä luotettavan kumppanin sähköpostinvälitykseen
- TNNet Oy - TNNet on huomaamaton taustavoima JYP:in takana
Tapahtumat & webinaarit
- 08.10.2024 - ESG and HR – Creating a culture promoting sustainability
- 10.10.2024 - Palvelumuotoilu johtamisessa ja transformaatiossa
- 10.10.2024 - Miten tekoäly mullistaa digitaalisen asiakaskokemuksen?
- 10.10.2024 - Kestävän koodauksen käytänteet ja koodin mittaaminen -työpaja 10.10.
- 21.10.2024 - EDI-asiantuntijaksi -koulutus
- 30.10.2024 - Nordic NetSuite Summit 2024
- 30.10.2024 - Webinaari: Hakukoneoptimointi on strateginen valinta
Premium-asiakkaiden viimeisimmät bloggaukset
- Rakettitiede Oy - Omistajan elkein – moni rakettitieteilijä on myös osakas
- Rakettitiede Oy - Konsultin arki – mikä kaikki muuttuu?
- Timeless Technology - Haluatko ottaa täyden hallinnan yrityksesi kriittisistä järjestelmistä ja prosesseista?
- Efima Oyj - Unboxataan Dynamics 365 -versiopäivitys! – Versio 10.0.41
- Timeless Technology - 4G-LTE ja USB dataloggerit kuljetettujen tuotteiden, jääkaappien, varastojen ja tuotantotilojen olosuhteiden valvontaan.
- Timeless Technology - Milesight UR32L Lite Series teollisuusreititin päivitetyllä hinnalla: 100,00€ (ALV 0%)
- TNNet Oy - Tapaa TNNetin työntekijä - Jari Lehtonen
Digitalisaatio & innovaatiot blogimediaBlogimediamme käsittelee tulevaisuuden liiketoimintaa, digitaalisia innovaatioita ja internet-ajan ilmiöitä |