Tietojenkäsittelyn käytännöt (computing practices)



Samankaltaiset tiedostot
Johdatus tietojenkäsittelytieteeseen 6. Suunnittelu 6.4 Kehitettävyys

Erkki Mäkinen. Johdatus tietojenkäsittelytieteisiin

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Ohjelmistotekniikka - Luento 2

Erkki Mäkinen. Parempi johdatus tietojenkäsittelytieteisiin

T Johdatus käyttäjäkeskeiseen tuotekehitykseen. suunnitteluprosessissa. Käyttäjän huomiointi. Iteroitu versio paljon kirjoitusvirheitä

Käyttäjäkeskeinen suunnittelu

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Software engineering

Johdatus tietojenkäsittelytieteeseen 6. Suunnittelu

Johdatus tietojenkäsittelytieteeseen - suunnittelu. Matemaattis-luonnontieteellinen tiedekunta Tietojenkäsittelytieteen laitos

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Ohjelmistojen mallintaminen

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Tietojärjestelmän osat

Ohjelmistojen suunnittelu

Projektinhallinta SFS-ISO mukaan

AVOIMEN TUOTTEEN HALLINTAMALLIT. Kunnassa toteutettujen tietojärjestelmien uudelleenkäyttö. Yhteentoimivuutta avoimesti

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ohjelmistojen mallintaminen, mallintaminen ja UML

Johdantoluento. Ohjelmien ylläpito

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Projektityö

Big Room -toiminta tutkimuksen näkökulmasta. Sari Koskelo, Vison Oy

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

TIETOTEKNIIKAN KOULUTUSOHJELMA

AS Automaatio- ja systeemitekniikan projektityöt - Projektisuunnitelma

Sisällys. Ratkaisumallien historia. Ratkaisumalli. Ratkaisumalli [2] Esimerkki: Composite [2] Esimerkki: Composite. Jaakko Vuolasto 25.1.

Kurssin aihepiiri: ohjelmistotuotannon alkeita

2. päivä. Etätehtävien purku Poikkeamat. Poikkeamat Auditoinnin raportointi Hyvän auditoijan ominaisuudet Harjoituksia

A4.1 Projektityö, 5 ov.

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

Ohjelmistotekniikan menetelmät, kesä 2008

Hieman lisää malleista ja niiden hyödyntämisestä

Opiskelija osaa suunnitella ohjelmiston toteuttamisen, toteuttaa, testata ja dokumentoida ohjelmiston.

Arviointikriteerit lukuvuositodistuksessa luokilla

EN sarja Innovaatiojohtaminen yksi uusi työkalu

PlugIT-projektin työsuunnitelma 3. jaksolle EHDOTUS johtoryhmälle, Koko projektin keskeiset tehtävät

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

YMPÄRISTÖOPPI. Marita Kontoniemi Jyväskylän normaalikoulu

Scrum is Not Enough. Scrum ei riitä. Ari Tanninen & Marko Taipale. Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12.

Tietojärjestelmien hankinta ja ICT-projektit

3 SUUNNITTELUVALMIUKSIEN KEHITTÄMINEN

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

Projektin suunnittelu

Johdatus tietojenkäsittelytieteeseen 6. Suunnittelu. Kurssin sisältö

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Kurssin tavoitteista uennot. 4.1 Projektityö, 5 ov. Esitietovaatimukset

TUKIMATERIAALI: Arvosanan kahdeksan alle jäävä osaaminen

Yhteisöllisen tuotekehyksen avoin verkkolaboratorio. Asta Bäck

ABB Drives and Controls, Koneenrakentajan ja laitetoimittajan yhteistoiminta toiminnallisen turvallisuuden varmistamisessa

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Simulation and modeling for quality and reliability (valmiin työn esittely) Aleksi Seppänen

Paloilmoitusjärjestelmän laajennusratkaisu - Sinteso Move

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

Hankinnan problematiikka

Yhteisöllisen oppimisen työpaja Reflektori 2010 Tulokset

Yhteisöllisen toimintatavan jalkauttaminen!

Oleelliset vaikeudet OT:ssa 1/2

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

TETRA-laajakaistatoistin Kuvaus ja vaatimukset

Fiksumpi käyttöliittymä kuntaan. Miten kuntien tietojärjestelmät saadaan palvelemaan kuntalaisia? LapIT-päivät 2015

Miksi käytettävyys on tärkeää

KÄSITYÖ JAANA INKI TAMPEREEN NORMAALIKOULU ALAKOULU

työssäoppimispaikan työtehtävissä toimiminen ammattiosaamisen näytön suorittaminen näyttösuunnitelman mukaan. Ammattitaidon osoittamistavat

Johdatusta ohjelmistotekniikkaan

Koulutuksen suhdannevaihtelut. Zeppeliinistä suihkukoneaikaan

Fujitsu SPICE Lite. Kimmo Vaikkola Fujitsu Finland Oy Laatu ja liiketoimintatavat. Copyright 2010 FUJITSU

hyvä osaaminen

Computing Curricula raportin vertailu kolmeen suomalaiseen koulutusohjelmaan

Ohjelmistojen mallinnus, s2008 HY/TKTL, 28/10/2008. Harri Laine 1. Ohjelmisto

TIEA4 Projektityö, 5-10 op.,

MPS Executive Search Johtajuustutkimus. Marraskuu 2010

KTKO104. Luento

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Tuotemallipohjaisen toimintaprosessin mallintaminen

Vuorekseen liittyvä tutkimusja kehitysprojekti. Langaton Vuores. Kotikatupalvelin

Ohjelmistojen mallintaminen, kesä 2010

Verkkopalveluiden saavutettavuus

Onnistunut SAP-projekti laadunvarmistuksen keinoin

hyvä osaaminen. osaamisensa tunnistamista kuvaamaan omaa osaamistaan

Oppimisympäristön arvioiminen ja tunnistaminen tutkinnon perusteiden avulla

SOTE-AKATEMIA TEKNOLOGISEN MURROKSEN JOHTAMINEN SOTE-ALALLA

ICT - HYPAKE. Timo Pekkonen, Kainuun Etu Oy Arja Ranta-aho, Minna Lappi, Fluente Kumppanit Oy

OTM-HANKKEEN SIDOSRYHMÄSEMINAARI

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä

Järjestelmäarkkitehtuuri (TK081702) Yritysarkkitehtuuri. Muutostarpeet

Työelämävalmiudet: Oivallus-hankeken seminaari

TIETOTEKNIIKKA Koodi Vanha opintojakso op ov Vastuuhenkilö LV vastaavat opinnot tai korvaava suoritustapa TTE.

Luonto- ja kulttuurimatkailijan mobiilipalvelun toteutus. Olli Rinne, Netgalleria Oy

TUOTANTOTALOUDEN 25 OP OPINTOKOKONAISUUS

Perheystävällinen työpaikka. Anna Kokko, Erityisasiantuntija Väestöliitto

Opiskelija tekee työasemaympäristöön ja sen hankintaan liittyviä toimistotehtäviä ja laskutoimituksia sekä hyödyntää kielitaitoaan.

1. Johdanto. Ohjelmistotuotannon ongelmia

Työkalujen merkitys mittaamisessa

Standardi IEC Ohjelmisto

Transkriptio:

Tietojenkäsittelyn käytännöt (computing practices) ohjelmointi (programming) järjestelmien suunnittelu (engineering systems) mallintaminen (modeling) innovointi (innovating) soveltaminen (applying). Tietojenkäsittelyjärjestelmien vakiintuneet rakentamis ja käyttöönottotavat.

Ohjelmointi Järjestelmän käyttäjien kanssa määritellyn ohjelmiston toteuttaminen ohjelmointikieliä käyttäen. Lukemattomia erilaisia ohjelmointikieliä; osattava valita tarkoituksenmukaisin kuhunkin ongelmanratkaisutilanteeseen. Paradigma esim. proseduraalinen, oliopohjainen, funktionaalinen, logiikkaohjelmointi Ohjelmointimalli peräkkäinen, rinnakkainen Lausekielinen ohjelmointi, Olio ohjelmoinnin perusteet, Ohjelmoinnin tekniikka jne.

Järjestelmien rakentaminen Tietojärjestelmien suunnitteleminen ja toteuttaminen ohjelmisto ja laitteistokomponenteista. Tähän alueeseen kuuluvat suunnittelu, jossa keskitytään järjestelmän organisointiin siten, että järjestelmä hyödyttää käyttäjiä, toteuttaminen, jossa keskitytään järjestelmän moduuleihin, abstraktioihin, uudistuksiin (revisions), toteutustavan valintoihin ja riskeihin, sekä käyttö, jossa keskitytään konfiguraatioon, hallintaan ja ylläpitoon. Tietojärjestelmät ja ohjelmistotuotanto I ja II, Projektityö, Innovaatioprojekti, Projektityön johtaminen, Requirements Engineering

Vasa laivan rakentamisprojekti Tammikuu 1625: kuningas määräsi amiraali Flemingin tilaamaan neljä sotalaivaa Fleming teki sopimuksen Henrik ja Arend Hybertssonin kanssa Hybertssonit tekivät alihankintasopimuksen laivanrakentaja Johan Isbrandssonin kanssa kahdesta 108 jalkaisesta ja kahdesta 135 jalkaisesta laivasta Syyskuu 1625: Ruotsin laivasto menetti kymmenen laivaa myrskyssä; kuningas määräsi pienet laivat rakennettavaksi ensin Vuoden 1626 alussa Vasa laivan rakentaminen alkoi Marraskuu 1626: kuningas määräsi pienempien laivojen pituudeksi 120 jalkaa, jotta niihin mahtuisi enemmän tykkejä Henrik Hybertssonilla oli tammea yhteen 111 jalkaiseen ja yhteen 135 jalkaiseen laivaan Alun perin 108 jalkainen köli pidennettiin 111 jalkaiseksi Kuningas määräsi Vasan pidennettäväksi 135 jalkaiseksi ja siihen piti tulla kaksi tykkikantta Hybertssonit eivät koskaan olleet rakentaneet laivaa, jossa olisi kaksi tykkikantta; tällainen laiva uskottiin saatavan nopeimmin valmiiksi pidentämällä Vasaa Kun laiva piteni, sitä piti myös leventää, mutta se oli mahdollista vain ylemmissä osissa Vasan aseistusta laajennettiin moneen kertaan rakennustyön aikana

Laivan leventäminen yläosasta ja lisätty aseistus nostivat laivan painopistettä ylemmäksi Kuningas vaati laivaan tammesta veistettyjä monimutkaisia koristeita, jotka edelleen nostivat painopistettä ylemmäksi Henrik Hybertsson kuoli vuonna 1627 Jo Henrikin sairauden aikana vastuu rakennustöistä oli jaettu, mutta vastuut olivat epäselvät Suunnitelmia laivan tekemiseksi saati suunnitelmiin tulleita muutoksia ei oltu mitenkään dokumentoitu Tässä vaiheessa laivaa rakensi 400 työläistä viidessä eri ryhmässä 1600 luvulla ei tunnettu menetelmiä painopisteen laskemiseksi, kallistusten laskemiseksi jne. Ennen vesillelaskua Vasalle tehtiin vakaustesti, jossa 30 miestä juoksi laivan puolelta toiselle; testi jouduttiin keskeyttämään, jottei laiva kaatuisi. Vasan ruumaan ei voitu panna painolastia, koska se olisi painanut alimman tykkikannen merenpinnan alapuolelle. Elokuu 1628: Vasa lähti neitsytmatkalle vakaustestin tuloksesta huolimatta. Hieman yli kilometrin purjehduksen jälkeen heikko tuulenpuuska kaatoi laivan; 53 ihmistä hukkui. Mitä tästä opimme??

Isoja (eikä pieniäkään) projekteja ei voi toteuttaa sattumanvaraisesti, vaan tarvitaan yleisiä menettelyjä, joita noudattamalla projektit varmemmin onnistuvat Ohjelmistoprojekteja koskeva ohjeistus muodostaa ohjelmistotuotannon (software engineering) menetelmät Wikipedia määritelmä: Ohjelmistotuotanto on yhteisnimitys niille työnteon ja työnjohdon menetelmille, joita käytetään, kun tuotetaan tietokoneohjelmia sekä monista tietokoneohjelmista koostuvia tietokoneohjelmistoja. Laajasti ymmärrettynä ohjelmistotuotanto kattaa kaiken tietokoneohjelmistojen valmistukseen liittyvän prosessinhallinnan sekä kaikki erilaiset tietokoneohjelmien valmistamisen menetelmät. Ohjelmistotuotantoon kuuluu siis periaatteessa mikä tahansa aktiviteetti, joka tähtää tietokoneohjelmien tai ohjelmistojen valmistukseen.

1. Kiireinen aikataulu Monien ohjelmistoprojektien aikataulu on epärealistisen tiukka. 2. Tarpeiden muuttuminen Vaatimusten muuttumisen vaikutuksia voidaan hallita joko iteratiivisilla ohjelmistotuotannon menetelmillä tai perusratkaisun hallinnoinnilla (baseline management). Iteratiivisia menetelmiä käytettäessä vaatimusten muuttumiset voidaan priorisoida ottaen huomioon aikataulun, resurssien ja teknologioiden asettamat rajoitukset. Perusratkaisujen hallinnassa tietyt versiot jäädytetään vaihetasoiksi (baseline). Näihin ei enää tehdä muutoksia, vaan tarvittavat muutokset tehdään seuraavaan versioon. Hyväksytyt muutokset synnyttävät vaatimusten uuden version (ja uuden vaihetason) siten, että aikataulut, resurssit, teknologiat ja muut tekijät on asianmukaisesti päivitetty. 3. Teknisten määritysten puuttuminen Pienessä ja tavanomaisena hankkeessa tekniset määritykset voivat tuntuvat tarpeettomilta. Joskus tällainen projekti muuttuu matkan varrella laajaksi ja innovatiiviseksi. Ohjelmistoprojektissa, oli se kuinka pieni tahansa, alustavien ja perusratkaisun vaatimusten kirjaaminen on paljon helpompaa ja vähemmän riskialtista kuin niiden myöhempi kaivaminen ohjelmakoodista.

4. Projektisuunnitelman puuttuminen Pienessäkin hankkeessa kannattaa tehdä projektisuunnitelma heti alussa. Ohjelmistoprojektin projektisuunnitelmassa on oltava tehtävän työn jaottelu osatehtäviksi, vaatimusten sijoittaminen osatehtäviin, aikataulu tarkastuspisteineen ja virstanpylväineen, kunkin osatehtävän tuotokset määräaikoineen, tarvittavien ohjelmistojen hankintasuunnitelma, alihankinnan hallinnointisuunnitelma ja vastuiden selkeä kirjaaminen. 5. Yletön innovointi Usein projektit epäonnistuvat, koska yritetään innovoida pitkälti yli sen hetkisen tietotaidon. Ohjelmistoprojekteissa luodaan joko aivan uusi järjestelmä tai olemassa olevasta järjestelmästä uusi versio. Aivan kuin Vasa laivan tapauksessa, ohjelmistoprojekteissakin toissijaiset vaatimukset voivat muodostua dominoiviksi. Siksi ohjelmistoprojekteissa olisi oltava vastuullinen ohjelmistoarkkitehti, joka huolehtii ohjelmatuotteen eheydestä.

6. Vaatimusten luisuminen Keskeiset tekniikat, joilla ohjelmistoprojektit pidetään hallinnassa, ovat alustavan dokumentaation luominen sekä vaatimusten ja suunnitelmien toistuva päivittäminen, jotta vaatimusten, aikataulun ja resurssien välillä säilyy hyväksyttävissä oleva tasapaino. Alustavat vaatimukset ja suunnitelmat tulee tehdä, vaikka kaikkea tarvittavaa tietoa ei olisikaan käytettävissä. Alustavissa projektidokumenteissa on varauduttava muutoksiin sekä esitettävä muutosten hallintamenetelmät. Alustavien vaatimusten ja suunnitelmien toistuvan päivittämisen epäonnistuminen johtuu usein asenteesta, että päivittämiselle ei ole riittävästi aikaa. Tämä asenne puolestaan johtuu vaatimusten ja suunnitelmien jatkuvan hallinnoinnin kehittymättömistä menetelmistä sekä tähän liittyvien riskien aliarvioimisesta. 7. Tieteellisten menetelmien puuttuminen Koska ohjelmistolla ei ole fyysisiä ominaisuuksia, niin monet perinteisen tekniikan menetelmät eivät sovellu ohjelmistotekniikkaan. Päinvastoin kuin Vasalaiva ja monet muut fyysiset esineet, ohjelmisto voidaan rakentaa vaiheittain siten, että ohjelmiston ominaisuuksia, kuten muistintarvetta, suorituskykyä, turvallisuutta, tietoturvaa ja luotettavuutta, voidaan seurata ohjelmistoprojektin aikana.

8. Olennaisen unohtaminen Vaikka monilla ohjelmistotekniikan alueilla ei ole tieteellisiä menetelmiä, niin karkeilla laskelmilla voidaan usein tunnistaa ratkaisevia suunnitteluvirheitä ja ohjelmistojen toiminnallisia puutteita. 9. Epäeettinen käyttäytyminen Teknologisiin innovaatioihin liittyy usein eettisiä näkökohtia. Vasa laivan tapauksessa aivan viime hetkillä oli tullut ilmeiseksi, että alus ei ollut merikelpoinen. Kuitenkin ne, joilla olisi ollut valtuudet estää neitsytmatka, sallivat aluksen lähdön satamasta. ACM:n ja IEEE:n eettisten säännösten mukaan Ohjelmistoammattilaisten on otettava täysi vastuu työstään ja hyväksyttävä ohjelmisto vain siinä tapauksessa, että heillä on perusteltu usko, että se on turvallinen, täyttää määritykset, läpäisee tarkoituksenmukaiset testit, ei vähennä elämän laatua tai yksityisyyttä eikä vahingoita ympäristöä.

Aikataulupaine Tavoitteiden muuttuminen Teknisten määritysten puuttuminen Dokumentoidun projektisuunnitelman puuttuminen Yletön ja toissijainen innovointi Vaatimusten luisuminen Tieteellisten menetelmien puuttuminen Olennaisen unohtaminen Epäeettinen käyttäytyminen Objektiiviset arviot, resurssien lisäämien, resurssien parantamien, vaatimusten priorisointi, vaatimusten uudelleenkohdentaminen, tuotoksen vaiheistaminen Iteratiivinen ohjelmistokehitys, perusratkaisun hallinta Alustavien määritysten tekeminen, määritysten päivittäminen, määritysten hallinnointi Alustavan suunnitelman tekeminen, suunnitelman toistuva päivittäminen, projektisuunnitelman hallinnointi, nimetty projektipäällikkö Perusdokumenttien hallinnointi, vaikutusten analysointi, jatkuva riskien hallinta, nimetty ohjelmistoarkkitehti Alustava vaatimusten perusversio, versioiden hallinnointi, riskien hallinta, nimetty ohjelmistoarkkitehti Prototyyppien tekeminen, vaiheittainen kehittäminen, suorituskykymittaukset Karkeat laskelmat, opittujen opetusten sulauttaminen Eettinen työympäristö ja työtavat, henkilökohtainen eettisten säännösten noudattaminen

Mallintaminen ja validointi Järjestelmien mallintaminen niiden käyttäytymisen ennustamiseksi erilaisissa tilanteissa ja olosuhteissa; kokeiden suunnittelu algoritmien ja järjestelmien validoimiseksi. Millä jaksoilla? Introduction to Formal Specification

Mallintaminen = todellisuuden osan esittäminen abstraktilla, käsitteellisellä, graafisella tai matemaattisella mallilla. Esim. kartta, joka on malli todellisesta maastosta, pienoismalli, joka on pienennetty malli todellisesta esineestä painovoimamalli, joka kuvaa kahden tai useamman kappaleen välistä vuorovaikutusta (esimerkki ns. matemaattisesta mallista). Tietojenkäsittelytieteissä mallintamisen kohde voi olla esimerkiksi ohjelmisto tietojärjestelmä tietokoneverkko jne. jne. Mallinnuksen tuloksia käytetään mm. ilmiön simulointiin, tutkimukseen ja käyttäytymisen ennustamiseen eri tilanteissa tietojenkäsittelytieteissä erityisesti apuna erilaisissa suunnittelutehtävissä.

Tietojenkäsittelytieteissä malli on usein erityisellä mallinnuskielellä tehty yleisen tason kuvaus tietojärjestelmän tai sen osan toiminnasta. Mallinnuskielet ovat ohjelmistotuotannon perustyökaluja, joiden avulla prosessin vaiheita voi hallita. Esimerkiksi UML (Unified Modeling Language) auttaa visualisoimaan olio ohjelmointiin liittyviä suunnitelmia. Se on kokoelma yksinkertaisia graafisia merkintöjä, kuten laatikoita ja nuolia, joilla on määrätty merkitys. UML mallinnuksen tekemistä varten on erityisiä työkaluohjelmia.

Esimerkki tietojenkäsittelytieteellisestä matemaattisesta mallista on vaikkapa malli, joka ennustaa tietokoneviruksen leviämistä tietoverkossa. Mallissa tehdään oletuksia siitä, kuinka helposti virus voi tarttua uusiin verkon solmuihin, kuinka kauan tartunnan saanut solmu levittää virusta eteenpäin ja millä ehdoilla verkon Solmu on immuuni virustartuntaa vastaan. Toimiva malli antaa ennusteen siitä, kuinka nopeasti ja laajasti tietynlainen virus voi levitä verkossa.

Validointi = prosessi, jossa tarkistetaan, että prosessin kohde (tässä tapauksessa malli) täyttää jotkin tietyt kriteerit. Tekeillä olevan ohjelmiston tai tietojärjestelmän mallin validointi tehdään yleensä yhdessä tilaajan tai tulevan käyttäjän kanssa. Matemaattisen mallin validointi tapahtuu vertaamalla sen antamia tuloksia simuloinnin antamiin tai reaalimaailmassa mitattuihin arvoihin.

Innovointi Pysyvien muutosten aikaansaamiseksi ryhmien ja yhteisöjen toimintatavoissa. Innovaattorit etsivät ja analysoivat mahdollisuuksia. He kuuntelevat asiakkaitaan ja muotoilevat heille hyödyllisiä ehdotuksia. Innovaattoreiden on myös huolehdittava, että luvatut tulokset saavutetaan.

Innovaatio = uuden käytännön soveltaminen eli sosiaalinen muutos yhteisössä. Keksintö = uuden esineen, laitteen tai toimintatavan luominen. Riippumatta siitä, miten erinomainen keksintö on, se ei välttämättä muodostu innovaatioksi; innovaatio keksintö. Keksinnöissä voidaan keskittyä teknologioihin. Innovaatioissa on otettava huomioon sosiaalinen yhteisö, eli se, mitä muut ihmiset arvostavat ja Hyväksyvät otettavaksi käyttöön. Ethernetin keksijä Bob Metcalfe kuvaa tätä eroa seuraavasti: Ethernetin keksiminen ei mahdollistanut ostaa asuntoa Bostonin rantakaistaleelta, vaan Ethernetin myyminen kymmenen vuoden ajan.

Innovaatioita tapahtuu kaikenlaisissa organisaatioissa ja yhteisöissä. Myös innovaatioiden vaikutusten laajuudet vaihtelevat. Innovointi on innovaattorien työtä, jolla on omat lainalaisuudet ja käytännöt. Innovointia voidaan tehdä systemaattisesti ja sen perusperiaatteita voidaan opettaa. Innovointi ei vaadi inspiraatiota, erityistä lahjakkuutta tai älykkyyttä. Innovoinnin ydin on ajatusten saattaminen käytännön toteutuksiksi.

Innovaatioprosessin viisi kulmakiveä (Drucker): Mahdollisuuksien etsiminen mahdollisuuden tunnistaminen eri lähteistä. Analysointi projekti tai liiketoimintasuunnitelman laatiminen, kustannusten, resurssien ja ihmisten identifiointi. Kuunteleminen yhteisöjen huolenaiheiden kuunteleminen, ymmärtäminen mihin ihmiset ovat valmiita, ehdotusten muokkaaminen yhteisöä palveleviksi. Keskittyminen keskeisen idean pelkistäminen yksinkertaiseksi sanomaksi ja siinä pitäytyminen, vaikka mieli tekisi koristella tai laajentaa sitä. Johtajuus kehittää teknologia lajinsa parhaaksi, saada ihmiset ja yhteisöt käyttämään sitä, muokata sille markkinarako.

Innovaatioita mahdollistavat esimerkiksi seuraavat tekijät: odottamattomat tapahtumat odottamattomat onnistumiset tai epäonnistumiset, ulkoiset tapahtumat epäsuhdat todellisuuden ja yleisen uskomuksen välinen kuilu yhteen sopimattomat kokonaisuuden osat prosessin tarpeet kriittisessä prosessissa oleva pullonkaula liike elämän rakennemuutos uudet liiketoimintamallit, jakelu kanavat, toimintatavat demografia ikärakenteessa, politiikassa, uskonnossa, elintasossa, jne. tapahtuvat muutokset ilmapiirin tai asenteiden muuttuminen ihmisen maailmankuvan, muodin, tapojen, jne. muuttuminen uusi tietämys uuden tietämyksen hyödyntäminen, johon usein liittyy tieteen tai tekniikan läpimurto ja aiemmin erillisten toiminta alueiden yhdentyminen marginaaliset käytännöt, jotka voivat ratkaista nykyisissä keskeisissä käytännöissä esiintyviä jatkuvia häiriöitä.

Soveltaminen Työskentely sovellusalueiden ammattilaisten kanssa näitä palvelevien tietojenkäsittelyjärjestelmien toteuttamiseksi. Työskentely muiden tietojenkäsittelyn ammattilaisten kanssa useita erilaisia sovelluksia tukevien ydinteknologioiden kehittämiseksi. Ns. ihmiskeskeinen suunnittelu (Human Centered Design) on noussut viimeisten vuosien aikana keskeiseksi teemaksi suunnittelussa. Ihmiskeskeisen suunnittelun eräs keskeinen periaate on kuunnella käyttäjiä.

19 taitoa, joita tarvitaan menestyksekkäässä ihmiskeskeisessä suunnittelussa: 1) Ohjelmistojen kehitysmenetelmien perusperiaatteiden, perusteiden ja standardien sekä käyttöliittymien kehitystyövälineiden ja oliopohjaisten suunnittelumenetelmien perusteiden hallitseminen. 2) Tietokoneiden käyttökokemus sekä ohjelmointikokemus käyttäen nopean kehittämisen työvälineitä ja graafisten käyttöliittymien kehitysympäristöjä. 3) Ihmisen ja koneen vuorovaikutuksen suunnittelun vaikeudet ja haasteet: vuorovaikutteisen järjestelmän rakentamisen ymmärtäminen monitieteisenä suunnittelualana, jolla on sen omat erityispiirteet ja vaikeudet. 4) Ihmiskeskeisen suunnittelun filosofia: ihmiskeskeisen suunnittelun filosofian, sen perusteiden, terminologian, faktojen, periaatteiden ja prosessien hallitseminen. 5) Asiantuntijavetoinen arviointi: varhaisten suunnittelukonseptien ja alhaisen totuudenmukaisuuden prototyyppien ilman käyttäjiä tapahtuva katselmointi ja arviointi. 6) Käyttäjien ominaisuudet, tehtävät ja käyttöliittymien vaatimukset: käyttäjien ominaisuuksien, heidän tehtäviensä ja työympäristön sekä käytettävyyden ja käyttöliittymän vaatimusten kokoaminen, analysointi ja määrittely.

7) Näytönsommittelu, visuaalinen ja tietosisällön suunnittelu: Näytön ulkoasun ja tietosisällön sekä visuaalisten kielikuvien, ulkoasun ja värienkäytön valinta ja suunnittelu. 8) Vuorovaikutuksen suunnittelu: ihmisen ja koneen välisen keskustelun sekä järjestelmän antaman palautteen, erityisesti virheilmoitusten ja opasteiden mallintaminen ja määrittäminen sekä tarkoituksenmukaisen vuorovaikutuksen tyylien ja laitteiden valinta. 9) Prototyyppien tekeminen: alhaisen, keskitason ja suuren totuudenmukaisuuden prototyyppien (kuten laitemallit (mockups), tarinataulut (story boards), ohjelmat, videot, paperiprototyypit) kehittäminen. 10) Käyttöön perustuva testaus: täysin toiminnallisiin järjestelmiin ja suuren totuudenmukaisuuden prototyyppeihin perustuvien käytettävyystestien suunnittelu ja toteutus kehityksen ja käyttöönoton eri vaiheissa. 11) Esikuvat ja ohjekirjat: Suunnittelumallien, ohjekirjojen ja tyylioppaiden avulla saatujen käyttäjäkokemusten ja parhaiden suunnittelukäytäntöjen kokoaminen, levittäminen ja hyväksikäyttäminen.

12) Käyttöohjeet, suoritusaikaiset opasteet ja tukijärjestelmät: käyttäjätuen toteuttaminen sisältäen käyttöohjeet, avustavat ohjelmat (wizards), suoritusaikaiset opasteet, käyttäjien kouluttamisen ja palautejärjestelmät. 13) Graafisen käyttöliittymän suunnittelu: ihmiskeskeisen suunnittelun menetelmien ja työvälineiden käyttäminen graafisten käyttöliittymien ja toimiston pöytäkoneille tarkoitettujen sovellusten toteuttamisessa. 14) Web sovellusten suunnittelu: ihmiskeskeisen suunnittelun menetelmien ja työvälineiden käyttö Web sovellusten toteuttamisessa. 15) Liikkuvien sovellusten suunnittelu: ihmiskeskeisen suunnittelun menetelmien ja työvälineiden käyttäminen liikkuvien ja langattomien sovellusten toteuttamisessa kämmenlaitteille ja matkapuhelimille.

16) Ihmiskeskeinen suunnittelu ohjelmiston elinkaaressa: käyttöliittymien suunnittelun käytettävyystekniikoiden menetelmien yhdistäminen ohjelmistokehityksen elinkaareen ja menetelmiin. 17) Suurelle yleisölle tarkoitettujen, vaatimuksiin, suunnitteluun ja testaukseen liittyvien käyttäjäkeskeisten dokumenttien kirjoittaminen ja esittely. 18) Ohjelmistojen ja käytettävyyden työvälineiden ja menetelmien tutkiminen empiirisesti ja kustannustehokkaasti. 19) Monialaisessa ryhmässä kommunikointi ja työskentely, erityisesti asiakkaiden, käyttäjien ja käyttäytymistutkijoiden kanssa.