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 - Mobiilikehittäjä, Android
- Laura - Ohjelmistoarkkitehti, Tampere/Oulu
- Laura - Development Team Manager, Sports Games
- Taito United Oy - Senior Full Stack -kehittäjä
- Webscale Oy - Head of Sales, Cloud Services
- Laura - Hankinta-asiantuntija, tietohallinto
- Laura - Development Manager, Operations
Premium-asiakkaiden viimeisimmät referenssit
- SD Worx - Kehitystyö SD Worxin kanssa takaa Clas Ohlsonille parhaat palkanmaksun prosessit kasvun tiellä
- Digiteam Oy - Case Esperi Care Oy: Ketterä kumppanuus vei Esperin verkkosivu-uudistuksen maaliin sujuvasti ja aikataulussa
- Kisko Labs Oy - Howspace Hub - Mukautuva oppimisen hallintajärjestelmä kasvaviin oppimisalustavaatimuksiin
- Kisko Labs Oy - Sanoma Pro: Multimediasisältöjen hallinnan uudistaminen
- Kisko Labs Oy - Svean helppokäyttöinen palvelu asiakkaan verkko-ostosten hallintaan
- Kisko Labs Oy - Yhtenäinen käyttöliittymä luovien alojen ammattilaisille
- Codemate - Digitaalisen murroksen nopeuttaminen Flutterin avulla
Tapahtumat & webinaarit
- 27.11.2024 - Green ICT -ekosysteemitapaaminen III: Ohjelmistojärjestelmien virrankulutuksen mittaaminen ja kasvihuonepäästöjen arviointi
- 27.11.2024 - Digitaalisen asiakaskokemuksen uusi aikakausi
- 28.11.2024 - Webinaari: Keskity myyntityön laatuun!
- 28.11.2024 - Copilot-webinaari – Mielekkäämpää tietotyötä turvallisesti
- 04.12.2024 - Kuinka oikea matka- ja kululaskujärjestelmä tehostaa prosesseja?
- 05.12.2024 - Green ICT VICTIS -hankkeen kick off -tilaisuus
- 15.01.2025 - Datavastuullisuuden valmennus: hanki valmiudet vastuulliseen datan ja tekoälyn hyödyntämiseen
Premium-asiakkaiden viimeisimmät bloggaukset
- Kisko Labs Oy - Heroku: Millaisiin projekteihin se sopii ja mitkä ovat sen todelliset hyödyt ja haitat?
- Zimple Oy - Pipedrive vai Hubspot? Kumpi kannattaa valita?
- SC Software Oy - Jatkuvat palvelut – asiakaslähtöistä kumppanuutta projekteista ylläpitoon
- Timeless Technology - Ohjelmoitavat logiikat (PLC): Ratkaisevat työkalut automaatioon ControlByWebiltä.
- Kisko Labs Oy - Heroku: Ohjelmistokehittäjän ykköstyökalu skaalautuvien sovellusten rakentamiseen
- SD Worx - Näin luot vakuuttavan Business Casen palkkahallinnon ulkoistukselle
- Timeless Technology - Kyberriskien tunnistaminen Profitap IOTA verkkoanalysaattorin avulla.
Digitalisaatio & innovaatiot blogimediaBlogimediamme käsittelee tulevaisuuden liiketoimintaa, digitaalisia innovaatioita ja internet-ajan ilmiöitä |