Ohjelmistoprojektin 7 kuolemansyntiä – 2. osa: enemmän koodia!
Vältä ohjelmistokehityksen sudenkuopat, osa 2/7! Ensimmäisessä osassa kirjoitimme tekijöiden tuottavuuseroista ja oikean kehittäjän valinnasta. Toisessa osassa pohditaan koodin määrän ja laadun suhdetta ja sitä, mihin kallis aika kannattaa käyttää.
Jokainen tietää, millaisia lapsia syntyy hosumalla. Sama pätee softaprojekteihin. Aikataulupaineet ajavat tekemään hätäisiä purkkafiksejä, vaikka fiksumpaa voisi olla kirjoittaa jokin osa koodista uudelleen. Heikosti harkituista koodiriveistä ei ole iloa kenellekään.
Uskomus:
Mitä nopeammin uutta koodia kirjoitetaan, sitä aikaisemmin projekti valmistuu.
Totuus:
Määrä ei korvaa laatua – ajattelemalla ensin ja koodaamalla vasta sitten päästään rivakammalla sykkeellä maaliin. Sinkoilulla ja välttävän työn korjailulla päästään nopeasti iltauutisiin.
Softaprojekti on oivallusprosessi
Useimmissa ohjelmistoprojekteissa valtavat määrät kallista etukäteissuunnittelua ei ole tarpeen, ja siksi niitä koodataan iteratiivisesti. Aluksi toki kannattaa tehdä rujohko prototyyppi, jolla yritetään löytää ongelmia, joita ei pelkässä miettimisvaiheessa tule ajatelleeksi.
Softakehityksessä järjestelmän toiminnallisuuteen voidaan tehdä suuriakin muutoksia koko projektin ajan – toisin kuin vaikkapa siltaa tai kerrostaloa rakennettaessa.
Ohjelmistoprojekti onkin usein oivallusprosessi, jonka edetessä opitaan yhdessä, mitä pitää kehittää ja mihin suuntaan. Matkan varrella tarpeet voivat vaihtua, ja samalla välietapit ja aikataulut muuttuvat. Ketterät kehitysmetodit taklaavat osan ongelmista mutta kokonaan ne eivät poistu. Iteraatiokierrosten määrää voi sen sijaan voi vähentää käyttämällä erityisen hyviä kehittäjiä!
Koneeseen kosketaan, kun ajattelutyö on valmis
Yleensä devaajat käyttävät enemmän aikaa vanhan koodin ymmärtämiseen kuin uuden koodin kirjoittamiseen. Työ siis nopeutuu, kun koodikanta on kunnossa.
Liian herkästi softaan päädytään lisäämään uusi feature, vaikka jokainen uusi rivi koodia on lisää kasvualustaa bugeille ja kustannusta koodikannan ylläpitämiseen. Huonon koodin päälle tehdään helposti vain purkkakorjauksia, eikä kukaan ole niistä ylpeä tai ota vastuuta koodikokonaisuudesta. Jos koko koodikanta on samanlaista höttöä, osa tiimistä alkaa varmasti etsiä uusia töitä.
Koodin refaktoroinnille kannattaa varata aikaa ja kirjoittaa testejä alusta asti. Projektin johto saattaa olla tietämätön refaktoroinnin tarpeesta, vaikka se nopeuttaa devaamista, estää koodin homehtumista ja vaikuttaa kehittäjien tyytyväisyyteen.
Enemmän ei siis aina ole enemmän; tiimin koko tai koodaajan vauhdikkuus eivät takaa tiimin tuottavuutta. Pahimmillaan ne takaavat vain tuhottoman määrän tusinakoodia ja teknistä velkaa. Maksatko sinä mieluummin määrästä kuin laadusta?
“Sehän on parasta työtä, kun koneeseen ei koske vaan ajattelee. Koneeseen kosketaan sitten, kun ajattelutyö on valmista.” – Anonyymi rakettitieteilijä
Jos maksat mieluummin laadusta kuin määrästä, ole yhteydessä – vastaamme raketin lailla!
Lue myös nämä:
Ohjelmistoprojektin 1. kuolemansynti – resurssi on resurssi
Ohjelmistoprojektin 3. kuolemansynti – konsultti kallis, oma työntekijä halpa
Ohjelmistoprojektin 4. kuolemansynti – no kun halvalla sai
Ohjelmistoprojektin 5. kuolemansynti – kaikki muu paitsi välitön bisneshyöty on turhaa
Ohjelmistoprojektin 6. kuolemansynti – vanhassa vara parempi
Ohjelmistoprojektin 7. kuolemansynti – aliarvioi loppukäyttäjät
Lisätietoja
Tagit
Rakettitiede - Asiantuntijat ja yhteyshenkilöt
Marietta Johansson
Rakettikauppias / Rocket Accelerator
Vastuullani on Rakettitieteen asiakkaiden ja kehittäjien tarpeiden ja toiveiden yhteensovittaminen, liiketoiminnan uudistaminen sekä strategia. Olen mukana kehittämässä myös .. | |
marietta@rakettitiede.com +358 40 520 3100 |
|
Rakettitiede - Muita referenssejä
Rakettitiede - Muita bloggauksia
It- ja ohjelmistoalan työpaikat
- Laura - ICT-asiantuntija, Millog Oy Riihimäki
- Nordea - Mainframe RACF Specialist to IAM Organization
- Nordea - IT Security Specialist
- Nordea - Senior Full Stack Developer with IAM knowledge
- Nordea - Privileged Access Management Specialist
- Nordea - Senior IT Security Analyst within Privileged Access Management
- Nordea - Authentication Solution/Product Owner within IAM
Premium-asiakkaiden viimeisimmät referenssit
- Verkkovaraani Oy - Google Ads -konsultaatio Nordic Progressille
- Verkkovaraani Oy - Hakukoneoptimoinnin, Google Analyticsin ja Google Adsin koulutusta
- Verkkovaraani Oy - Kävijäliikenteen ja hakukonenäkyvyyden seuranta ja optimointi
- Verkkovaraani Oy - Google Ads -kampanjan toteutus Factotel Oy:n JetAir-tuotteille
- Verkkovaraani Oy - Hakukoneoptimoinnin kehittäminen Plusprintille
- Staria Oyj - Rakennuskemian kansainvälistä laajentumista tukee pitkäaikainen kumppani
- Fingertip - Kiertokapula sähköistää johtamistaan Fingertipin avulla
Tapahtumat & webinaarit
- 24.04.2024 - Reviewing the Nordic SaaS market with Monterro
- 25.04.2024 - Aamiaisseminaari: Kehitä ohjelmistoja tehokkaammin tekoälyllä
- 30.04.2024 - Ilmainen CRM-webinaari: Microsoft Dynamics Sales: Integroinnit CRM-ratkaisun kanssa
- 07.05.2024 - Koulutus: Tekoäly markkinoijan työkaluna
- 07.05.2024 - Ilmainen CRM-webinaari: Microsoft Dynamics Sales | Sisäänrakennetun BI-moduulin käyttö toimintojen suunnitteluun ja tulosraportointiin
- 07.05.2024 - Aamiaisseminaari: Kehitä ohjelmistoja tehokkaammin tekoälyllä
- 16.05.2024 - Five Years Out Helsinki
Premium-asiakkaiden viimeisimmät bloggaukset
- Staria Oyj - Tekoäly parantaa Starian toimintatehokkuutta ja työntekijäkokemusta
- Innofactor Oyj - Tekoäly organisaatioiden arjessa: Missä mennään?
- Nordea - Nordean kesätyöpaikat saivat liikkeelle lähes 4000 hakijaa
- Efima Oyj - Unboxataan Dynamics 365 -versiopäivitys! – Versio 10.0.39
- Aveso Oy - IFS:n ennustukset energia-alalle 2024
- Zimple Oy - Tehokas B2B-myyntiprosessi - kuinka saat kaiken CRM:stäsi irti?
- Zimple Oy - CRM on avainpelaajasi dataohjautuvassa B2B-markkinoinnissa
Digitalisaatio & innovaatiot blogimediaBlogimediamme käsittelee tulevaisuuden liiketoimintaa, digitaalisia innovaatioita ja internet-ajan ilmiöitä |