{"id":8258,"date":"2020-11-03T11:09:35","date_gmt":"2020-11-03T09:09:35","guid":{"rendered":"https:\/\/atostek.com\/?p=8258"},"modified":"2020-11-03T12:17:54","modified_gmt":"2020-11-03T10:17:54","slug":"millainen-on-hyva-ohjelmistosuunnittelija","status":"publish","type":"post","link":"https:\/\/atostek.com\/millainen-on-hyva-ohjelmistosuunnittelija\/","title":{"rendered":"Millainen on hyv\u00e4 ohjelmistosuunnittelija?"},"content":{"rendered":"

Alun perin otsikon aihe tuntui liian itsest\u00e4\u00e4n selv\u00e4lt\u00e4 ja kalutulta, enk\u00e4 halunnut kirjoittaa siit\u00e4. Varmastihan hyv\u00e4n ohjelmistosuunnittelijan piirteist\u00e4 on kirjoitettu vaikka kuinka monta bloggausta? Yll\u00e4tt\u00e4v\u00e4\u00e4 kyll\u00e4, googlaamalla ei suomenkielisi\u00e4 artikkeleita aiheesta juuri l\u00f6ytynyt. Sen sijaan l\u00f6ytyi kyll\u00e4 teksti\u00e4 siit\u00e4, mit\u00e4 hyv\u00e4n ohjelmoijan pit\u00e4\u00e4 osata. Kyse on kuitenkin eri asiasta.<\/strong><\/p>\n

Ohjelmistosuunnittelija ei vain ohjelmoi, vaan h\u00e4nen ammattiinsa kuuluu paljon muutakin. Millaista osaamista ja ominaisuuksia hyv\u00e4ll\u00e4 ohjelmistosuunnittelijalla sitten on? T\u00e4ss\u00e4 viiden kohdan lista.<\/p>\n

Hyv\u00e4 ohjelmistosuunnittelija\u2026<\/p>\n

1. Osaa kertoa, kysy\u00e4 ja kuunnella<\/h3>\n

Ohjelmistosuunnittelija ratkaisee l\u00e4hes aina jonkun muun ongelmaa yhdess\u00e4 muiden kanssa. Poikkeuksena saattaa olla yksin\u00e4inen indie-pelikehitt\u00e4j\u00e4, joka toteuttaa vain omaa visiotaan, mutta miltei kaikissa muissa tapauksissa pit\u00e4\u00e4 ymm\u00e4rt\u00e4\u00e4 ja tulla ymm\u00e4rretyksi, koska samaa soppaa h\u00e4mment\u00e4v\u00e4t asiakkaat, muut saman projektin kimpussa ty\u00f6skentelev\u00e4t ohjelmistosuunnittelijat, projektip\u00e4\u00e4llikk\u00f6, testaajat ja k\u00e4ytett\u00e4vyysasiantuntijat, noin muutamia esimerkkej\u00e4 mainitakseni.<\/p>\n

Hyv\u00e4 ohjelmistosuunnittelija osaa kertoa suunnitelmistaan, ratkaisuistaan ja ongelmistaan kuulijalle sopivalla tavalla. On eri asia keskustella toisen ohjelmistosuunnittelijan kuin sellaisen asiakkaan kanssa, joka on jonkin muun alan ihminen. Tarkoituksena ei ole p\u00e4te\u00e4 teknisell\u00e4 osaamisella vaan tulla ymm\u00e4rretyksi ja esimerkiksi auttaa asiakasta tekem\u00e4\u00e4n hyvi\u00e4 p\u00e4\u00e4t\u00f6ksi\u00e4 eri vaihtoehtojen v\u00e4lill\u00e4.<\/p>\n

Kysyminen on my\u00f6s t\u00e4rke\u00e4 taito. Sit\u00e4 tarvitaan silloin, kun tarvitsee kollegalta apua vaikean ongelman ratkaisussa, ja erityisesti silloin, kun asiakkaan tarve on jollakin tavalla ep\u00e4selv\u00e4. Usein vaikeankin ongelman saa lopulta ratkaistua jopa ilman apua\u2014tosin siihen menee tarpeettoman paljon aikaa. Sen sijaan j\u00e4tt\u00e4m\u00e4ll\u00e4 kysym\u00e4tt\u00e4 t\u00e4smennyst\u00e4 asiakkaan tarpeeseen, kysym\u00e4ll\u00e4 v\u00e4\u00e4r\u00e4\u00e4 asiaa, tai j\u00e4tt\u00e4m\u00e4ll\u00e4 varmistamatta, ett\u00e4 kysyj\u00e4 ja vastaaja ymm\u00e4rt\u00e4v\u00e4t asian samalla tavalla, voi tulla toteuttaneeksi aivan v\u00e4\u00e4r\u00e4n ominaisuuden.<\/p>\n

Ehk\u00e4 kaikkein t\u00e4rkein viestint\u00e4taito ohjelmistosuunnittelijalle on kuunteleminen. Joskus kovan tason asiantuntija sokaistuu omasta osaamisestaan ja ajattelee tiet\u00e4v\u00e4ns\u00e4 paremmin kuin muut. T\u00e4llainen henkil\u00f6 kuuntelee l\u00e4hinn\u00e4 v\u00e4itt\u00e4\u00e4kseen vastaan, saadakseen ohittaa kuulemansa ja esitt\u00e4\u00e4kseen oman ajatuksensa, tai hieman paremmassa tapauksessa esitt\u00e4\u00e4kseen oman viel\u00e4 hiukan pitemm\u00e4lle kehitellyn versionsa. Todellinen ammattilainen kuitenkin kuuntelee ensisijaisesti ymm\u00e4rt\u00e4\u00e4kseen.<\/p>\n

2. Osaa m\u00e4\u00e4ritell\u00e4 ratkaistavan ongelman<\/h3>\n

Monesti sanotaan, ett\u00e4 ohjelmistosuunnittelijalla on oltava ongelmanratkaisukyky\u00e4. Totta kai on oltava, mutta ennen kuin ongelmaa voi ratkaista, pit\u00e4\u00e4 osata m\u00e4\u00e4ritell\u00e4 se. Esimerkiksi asiakkaan ilmoittamasta tarpeesta tai vaatimuksesta voi olla melko pitk\u00e4kin matka t\u00e4sm\u00e4lliseen ratkaistavan ongelman kuvaukseen. Siihen p\u00e4\u00e4seminen vaatii usein analyyttista ja poikkitieteellist\u00e4 ajattelua, yleissivistyst\u00e4 sek\u00e4 kohdassa 1 mainittuja kysely- ja kuuntelutaitoja. Lis\u00e4ksi se vaatii taitoa muotoilla (eli kirjoittaa) ongelman m\u00e4\u00e4ritelm\u00e4 selv\u00e4sti ja yksiselitteisesti, koska jos m\u00e4\u00e4ritelm\u00e4 on olemassa vain suullisena, se saattaa muuttua lennossa ja siihen on mahdotonta palata luotettavasti.<\/p>\n

Joskus, tai aika monestikin, on niin, ett\u00e4 ongelman m\u00e4\u00e4rittelee ainakin alustavasti joku muu kuin se, joka kirjoittaa koodin. T\u00e4llainen ty\u00f6njako m\u00e4\u00e4rittelij\u00e4n ja toteuttajan v\u00e4lill\u00e4 on kuitenkin h\u00e4ilyv\u00e4 ja kokonaan poistumassa ainakin Suomessa teht\u00e4v\u00e4st\u00e4 ohjelmistoty\u00f6st\u00e4, sill\u00e4 \u201dsiin\u00e4 on speksi, mikset jo koodaa\u201d<\/em> -tyyppist\u00e4 ohjelmointity\u00f6t\u00e4 voi teett\u00e4\u00e4 halvemmalla muissa maissa.<\/p>\n

3. Osaa ohjelmoida<\/h3>\n

Kyll\u00e4, ohjelmistosuunnittelijan pit\u00e4\u00e4 osata my\u00f6s ohjelmoida. T\u00e4m\u00e4n ammattitaidon t\u00e4rke\u00e4n osan perusta hankitaan yleens\u00e4 tutkinto-opinnoissa, ja meid\u00e4nkin yrityksemme arvostaa erityisesti ylemp\u00e4\u00e4 korkeakoulututkintoa ohjelmistotekniikasta tai tietojenk\u00e4sittelytieteest\u00e4. Ohjelmoinnin oppiminen ei kuitenkaan tietenk\u00e4\u00e4n lopu valmistumiseen, vaan siit\u00e4 se oikeastaan vasta alkaa.<\/p>\n

Ohjelmistosuunnittelijan on oltava koko ajan valmis ja halukas oppimaan uusia kieli\u00e4, ty\u00f6kaluja ja tekniikoita, mutta my\u00f6s tekem\u00e4\u00e4n ty\u00f6t\u00e4 niill\u00e4 v\u00e4lineill\u00e4, jotka kulloinkin ovat tarkoituksenmukaisia asiakkaan kannalta. T\u00e4m\u00e4 voi joskus tarkoittaa, ett\u00e4 tehd\u00e4\u00e4nkin v\u00e4h\u00e4n v\u00e4hemm\u00e4n kuumalla ja uutuudenkiilt\u00e4v\u00e4ll\u00e4, jottei tarvitsisi kirjoittaa kaikkea vanhaa ja toimivaa uudelleen. Ammattilainen sopeutuu reunaehtoihin ja ymm\u00e4rt\u00e4\u00e4, miksi ty\u00f6t\u00e4 tehd\u00e4\u00e4n ja mitk\u00e4 seikat teknologiavalintoihin vaikuttavat. H\u00e4nen ohjelmointitaitonsa ja motivaationsa hyv\u00e4n koodin tekemiseen ovat teknologiariippumattomia.<\/p>\n

4. On sinnik\u00e4s<\/h3>\n

Ohjelmistosuunnittelija kohtaa joskus ty\u00f6ss\u00e4\u00e4n vastoink\u00e4ymisi\u00e4, jotka saattavat \u00e4kkiselt\u00e4\u00e4n tuntua lannistavilta. Ohjelmassa voi olla mystinen bugi, jonka syy ei vain tunnu mitenk\u00e4\u00e4n selvi\u00e4v\u00e4n. Integraation saaminen toimimaan oikein saattaa vaatia monimutkaista kommunikointia muiden henkil\u00f6iden ja firmojen kanssa, eik\u00e4 se ole onnistunut viel\u00e4 kolmannellakaan yrityksell\u00e4.
\nT\u00e4llaisissa tilanteissa ei auta muu kuin sinnikkyys. Ohjelmistosuunnittelijan kannattaa pyrki\u00e4 tekem\u00e4\u00e4n sinnikkyydest\u00e4 osa ammattimaista identiteetti\u00e4\u00e4n. Jos huomaa lannistuvansa nopeasti tai v\u00e4lttelev\u00e4ns\u00e4 hankalia ongelmia esimerkiksi yritt\u00e4m\u00e4ll\u00e4 sys\u00e4t\u00e4 ne muiden ratkaistaviksi, kannattaa pys\u00e4hty\u00e4 ja mietti\u00e4, haluaako mieluummin p\u00e4\u00e4st\u00e4 helpolla vai olla ohjelmistokehityksen Winston Wolf*.<\/p>\n

5. On luova<\/h3>\n

Ohjelmistosuunnittelu on luovaa ty\u00f6t\u00e4, ja siksi sen tekij\u00e4lt\u00e4 pit\u00e4\u00e4 l\u00f6yty\u00e4 luovuutta ja halua rakentaa ennenn\u00e4kem\u00e4tt\u00f6mi\u00e4 asioita. Alalla on my\u00f6s vahvaa kahvimainoksista tuttua k\u00e4sity\u00f6l\u00e4isyysotetta sek\u00e4 ylpeytt\u00e4 omasta ammattitaidosta ja k\u00e4tten ty\u00f6n tuloksista.<\/p>\n

Toki ohjelmistoty\u00f6h\u00f6n kuuluu paljon my\u00f6s rutiinia ja kurinalaisuutta, joten alalla vaaditaan tasapainoilua prosessien ja vakiintuneiden k\u00e4yt\u00e4nt\u00f6jen noudattamisen sek\u00e4 toisaalta luovuuden ja innovoinnin v\u00e4lill\u00e4. Ensin mainittujen avulla varmistetaan hyv\u00e4 peruslaatu, viimeksi mainittujen avulla ratkaistaan vaikeimmat ongelmat ja aina joskus onnistutaan tuottamaan huikeaa lis\u00e4arvoa.<\/p>\n

Lopuksi<\/h3>\n

Jos lukijana jossain kohdassa tunsit piston syd\u00e4mess\u00e4si, ei se mit\u00e4\u00e4n, niin tunsin min\u00e4kin kirjoittaessani. Itse kullakin on varmasti jossain vaiheessa uraansa tai v\u00e4hint\u00e4\u00e4n joskus huonona p\u00e4iv\u00e4n\u00e4 ollut ongelmia esimerkiksi kysymisen, kuuntelemisen tai sinnikkyyden kanssa, tai on tullut kiukuteltua projektin kivikautisista teknologioista. T\u00e4m\u00e4 ei tee ihmisest\u00e4 lopullisesti huonoa ohjelmistosuunnittelijaa, vaan osoittaa vain tarpeen harjoitella omaa asennoitumista ja kehitt\u00e4\u00e4 ammattitaitoa.<\/p>\n

Yll\u00e4 oleva viiden kohdan lista ei miss\u00e4\u00e4n nimess\u00e4 ole tyhjent\u00e4v\u00e4, ja on helppo keksi\u00e4 muitakin hyv\u00e4n ohjelmistosuunnittelijan ominaisuuksia. Jos kuitenkin olisin valitsemassa itselleni unelmatiimi\u00e4 uuteen yhdess\u00e4 teht\u00e4v\u00e4\u00e4n projektiin, juuri nyt kiinnitt\u00e4isin varmasti huomiota n\u00e4ihin seikkoihin.<\/p>\n

* Harvey Keitelin hahmo elokuvassa Pulp Fiction.<\/em><\/p>\n


\n
\n
\"\"<\/div>\n
\n

Risto Pitk\u00e4nen<\/strong>
\nJohtava konsultti<\/em><\/p>\n

 <\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"

Alun perin otsikon aihe tuntui liian itsest\u00e4\u00e4n selv\u00e4lt\u00e4 ja kalutulta, enk\u00e4 halunnut kirjoittaa siit\u00e4. Varmastihan hyv\u00e4n ohjelmistosuunnittelijan piirteist\u00e4 on kirjoitettu vaikka kuinka monta bloggausta? Yll\u00e4tt\u00e4v\u00e4\u00e4 kyll\u00e4, googlaamalla ei suomenkielisi\u00e4 artikkeleita aiheesta juuri l\u00f6ytynyt. Sen sijaan l\u00f6ytyi kyll\u00e4 teksti\u00e4 siit\u00e4, mit\u00e4 hyv\u00e4n ohjelmoijan pit\u00e4\u00e4 osata. Kyse on kuitenkin eri asiasta. Ohjelmistosuunnittelija ei vain ohjelmoi, vaan h\u00e4nen…<\/p>\n","protected":false},"author":4,"featured_media":4852,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"inline_featured_image":false,"footnotes":""},"categories":[104,21],"tags":[218,220,52,219],"class_list":["post-8258","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blogi","category-rekry","tag-ohjelmistosuunnittelija","tag-ohjelmistotekniikka","tag-rekry","tag-tietojenkasittelytiede","entry","has-media"],"_links":{"self":[{"href":"https:\/\/atostek.com\/wp-json\/wp\/v2\/posts\/8258"}],"collection":[{"href":"https:\/\/atostek.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atostek.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atostek.com\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/atostek.com\/wp-json\/wp\/v2\/comments?post=8258"}],"version-history":[{"count":0,"href":"https:\/\/atostek.com\/wp-json\/wp\/v2\/posts\/8258\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/atostek.com\/wp-json\/wp\/v2\/media\/4852"}],"wp:attachment":[{"href":"https:\/\/atostek.com\/wp-json\/wp\/v2\/media?parent=8258"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atostek.com\/wp-json\/wp\/v2\/categories?post=8258"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atostek.com\/wp-json\/wp\/v2\/tags?post=8258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}