<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Digital Business Awareness</title>
	<atom:link href="http://blog.ambientia.fi/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ambientia.fi</link>
	<description></description>
	<lastBuildDate>Mon, 22 Apr 2013 08:57:54 +0000</lastBuildDate>
	<language>fi</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Opintopiiristä voimaa itseopiskeluun</title>
		<link>http://blog.ambientia.fi/2013/04/18/opintopiirista-voimaa-itseopiskeluun/</link>
		<comments>http://blog.ambientia.fi/2013/04/18/opintopiirista-voimaa-itseopiskeluun/#comments</comments>
		<pubDate>Thu, 18 Apr 2013 10:00:50 +0000</pubDate>
		<dc:creator>Kalle Kyttälä</dc:creator>
				<category><![CDATA[Universal]]></category>

		<guid isPermaLink="false">http://blog.ambientia.fi/?p=3154</guid>
		<description><![CDATA[Viime kesäloman aikana sähköpostiini oli tullut ilmoitus mahdollisuudesta suorittaa sertifiointikoe, aiheena web-komponenttien kehittäminen (Oracle certified web component developer). Itselläni kyseisen sertifioinnin suorittaminen oli käynyt mielessä useampaan kertaan, mutta jotenkin se...]]></description>
				<content:encoded><![CDATA[<p>Viime kesäloman aikana sähköpostiini oli tullut ilmoitus mahdollisuudesta suorittaa sertifiointikoe, aiheena web-komponenttien kehittäminen (Oracle certified web component developer). Itselläni kyseisen sertifioinnin suorittaminen oli käynyt mielessä useampaan kertaan, mutta jotenkin se oli aina vain jäänyt, milloin minkäkin syyn takia, suorittamatta. Kesäloman jälkeen olin sen verran täynnä virtaa ja aikataulun ollessa muutenkin suotuisa, päätös lähteä mukaan syntyi helposti. Taloudellisia satsauksiakaan tähän ei tarvinnut tehdä, sillä työnantaja kustansi opiskelumateriaalin ja itse kokeesta koituvat kustannukset. Lopulta kokeen materiaali ilmestyi elokuun loppupuolella ja pääsin opiskeluissa alkuun. Sertifiointikokeen materiaalina oli noin 700-sivuinen, englanninkielinen kirja joka sisälsi itse asian lisäksi lukuisia kokeen kysymysten kaltaisia harjoituskysymyksiä.</p>
<p>Olin itse joitakin vuosia sitten hieman vastaavan sertifikaatin suorittanut, joten sinänsä koejärjestelyt ja itse koetilanne olivat entuudestaan tuttuja. Aihekin oli lisäksi viiden vuoden työkokemuksen pohjalta tullut tutuksi, joten ajattelin, että tiedossa olisi sangen kevyttä iltaopiskelua yhtenä, ehkä kahtena iltana viikossa. Todellisuus kuitenkin iski vasten kasvoja jo muutaman kappaleen jälkeen. Vaikka asioita oli työn puolesta käsitellyt paljon, huomasin, että kokeesta ei todellakaan ole tulossa mikään läpihuutojuttu. Toisin kuin edellisessä sertifioinnissa, tällä kertaa kirjan aiheita ei tarvinnut kuitenkaan pähkäillä yksin. Firman sisällä perustettiin opintopiiri, johon ilmoittautui neljä innokasta opiskelijaa. Ideana oli, että joka viikko käydään muutama kappale kirjaa läpi ja jokainen keksii kappaleiden aiheista muille yhden harjoituskysymyksen, jotka viikoittaisessa kokoontumisissa käydään yhdessä läpi. Kysymysten laatiminen osoittautui ainakin itselleni haastavaksi. Se mittaa yllättävän tehokkaasti onko aiheen lukenut ja ennen kaikkea sisäistänyt. Tämän lisäksi ryhmän paine piti huolta siitä, että motivaatiota ja aikaa löytyi aina kappaleen lukemiseen sekä kysymysten laatimiseen. Itseopiskelussahan hyvin yleistä on, että innostus laantuu huomattavasti alun jälkeen ja helposti tulee tuudittauduttua ajatukseen ”kyllä minä sitten illalla / viikonloppuna / kesälomalla opiskelen…” Monesti käykin niin, että ilman säännöllistä rytmiä lukeminen jää yhä vähemmälle ja lopulta painuu täysin unohduksiin. Toki myös tällaisessa kollektiivisessa valmistautumisessa tarvitaan panostusta jokaiselta ryhmän jäseneltä varsinkin, kun kokeen suorittaminen ei ole millään muotoa pakollista.</p>
<p>Itse uhrasin opiskeluun aiheen vaikeudesta ja laajuudesta riippuen pari kolme tuntia per aihealue. Yleensä luin materiaalin ensin läpi, jonka jälkeen kävin läpi kirjan kappalekohtaiset kysymykset. Heti lukemisen jälkeen kysymykset tuntuivat helpohkoilta, mutta jos niiden läpikäynti siirtyi seuraavaan päivään, huomasin, että sangen moni asia olikin unohtunut. Useimpien kappaleiden kohdalla kirjoittelin myös omia koodiesimerkkejä, sillä pelkkä lukeminen meni helposti pelkäksi selaamiseksi eikä pidemmän päälle ollut kovin motivoivaa tai tehokasta. Koodiesimerkeissä saattoi vierähtää helposti pari tuntia (välillä tosin myös aiheesta eksyen), mutta se antoi hyvät valmiudet keksiä kysymyksiä muille ryhmän jäsenille kappaleen sisällöstä. Viikoittaisissa läpikäynneissä kysymyksien vastaukset käytiin läpi ja tarvittaessa vaikeimmista aiheista keskusteltiin enemmänkin. Tällä tyylillä käytiin läpi kaikki kirjan 22 aihealuetta, mihin kului yhteensä aikaa noin neljä kuukautta (tunnustettakoon siis, että joinain viikkoina läpikäynti jäi väliin).</p>
<p>Miten sitten itse koe meni? Jatkoin valmistautumista aina viimeiseen iltaan asti paniikin jo hiipiessä uhkaavasti . Ennen koetilannetta jännitys kasvoi lähes sietämättömiin mittoihin, vaikka vastaavissa tilanteissa en yleensä jännitä. Koe meni kuitenkin läpi, tosin valmistautumiseen nähden tulos olisi voinut olla parempikin: 68% vastauksista meni oikein, läpäisyn rajan ollessa 61%. Kaikki kuitenkin lasketaan eikä prosenttimäärällä niin suurta merkitystä ole, sillä koe arvioidaan hyväksytty/hylätty –periaatteella. Mitään tarkkaa kirjanpitoa opiskeluun käytetystä ajasta en pitänyt, mutta kollegan kanssa arvioimme, että kokonaisuudessaan lukemiseen, kysymysten laatimiseen ja yhteisiin läpikäynteihin kului yhteensä noin 15 – 20 henkilötyöpäivää. Jälkeenpäin ajateltuna tuntuu melko suurelta uhraukselta, sillä opiskelu tapahtui siis yhteisiä läpikäyntejä (noin 30min / viikko) lukuun ottamatta omalla ajalla. Vaikka konkreettisena tuloksena kokeen suorituksesta on vain komea plakaatti toimiston seinällä, antoi opiskelu itselleni paljon lisää intoa jokapäiväiseen työhön sekä myös motivaatiota kehittää itseään ammatillisesti jatkossakin. Ehkäpä seuraavaksi hyökätään Sertifioitu arkkitehti –materiaalin kimppuun.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ambientia.fi/2013/04/18/opintopiirista-voimaa-itseopiskeluun/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Agilehipit eivät vain saa sitä &#8211; vai saavatko sittenkin?</title>
		<link>http://blog.ambientia.fi/2013/03/28/agilehipit-eivat-vain-saa-sita-vai-saavatko-sittenkin/</link>
		<comments>http://blog.ambientia.fi/2013/03/28/agilehipit-eivat-vain-saa-sita-vai-saavatko-sittenkin/#comments</comments>
		<pubDate>Thu, 28 Mar 2013 08:23:26 +0000</pubDate>
		<dc:creator>Juha Wiberg</dc:creator>
				<category><![CDATA[At work]]></category>
		<category><![CDATA[Universal]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[ketteryys]]></category>
		<category><![CDATA[ohjelmistokehitys]]></category>
		<category><![CDATA[prosessit]]></category>

		<guid isPermaLink="false">http://blog.ambientia.fi/?p=3127</guid>
		<description><![CDATA[Blogahdus on julkaistu aiemmin Ambientian intranetissä 11.3.2013 keskustelun- ja ajatusten herättäjäksi. Vaikka tässä nyt ei mitään uutta ja mullistavaa esitetäkään, keskustelua se sai aikaiseksi. Kiitos siitä! (Etukäteen muuten pieni anteeksipyyntö...]]></description>
				<content:encoded><![CDATA[<p><em>Blogahdus on julkaistu aiemmin Ambientian intranetissä 11.3.2013 keskustelun- ja ajatusten herättäjäksi. Vaikka tässä nyt ei mitään uutta ja mullistavaa esitetäkään, keskustelua se sai aikaiseksi. Kiitos siitä! (Etukäteen muuten pieni anteeksipyyntö vähän kököistä manifestin suomennoksista. Löytyykö näihin &#8221;virallista&#8221; käännöstä?)<br />
</em></p>
<p><em>Lisäys 2.4.2013:  Ja <a href="http://agilemanifesto.org/iso/fi/" rel="nofollow">sieltähän</a> ne suomennokset löytyivät. Kiitos <a href="http://blog.ambientia.fi/author/akis/">Aki</a>.</em></p>
<hr />
<p>Erinäisten twiittien, blogien ja blogikommenttien kautta päädyin <a href="http://beust.com/weblog/2006/06/07/agile-people-still-dont-get-it/" rel="nofollow">tälläiseen</a> blogahdukseen. Siinä Cédric Beust (mm. Java TestNG-testiframeworkin kehittäjä) väittää, että me (te, ne) agilehipit eivät saa sitä vaan ovat ottavana osapuolella, epäonnistuvia idealisteja, jotka eivät ymmärrä käytännöstä mitään. No, kaikkihan tietävät, että tämä on diibadaabaa ja täyttä potaskaa. Vanha PL1-koodarikin ymmärtää, että ketteryys määrää ja TDD on pop ja tuottaa puhdasta koodia. Mutta tämä fakta ei ole tämän blogahduksen pointti.</p>
<p>Kirjoitus minut miettimään mikä on olennaista ja mikä ei, mikä tekee ketterän hipin, kehittäjän, tiimin tai yrityksen? Vai onko ketteryys ajattelutapana kuollut tai niin viime vuosikymmentä, kuten eräässä käytäväkeskustelussa kollega huomautti, joko tosissaan tai sitten ei. Tekeekö TDD ketteräksi, pelastaako Scrum kiireisen projektin tai järjestääkö Kanban ylityölistetyn ylläpitotiimin työjonon? Olenko ketterä, kun minulla on CSM-plakaatti seinällä roikkumassa. Oletko sinä ketterä, kun tiedät mikä on “story point” ja osaat “gruumata” perälokia?</p>
<p>Vuosituhannen alussa törmäsin ensimmäisen kerran <a href="http://www.extremeprogramming.org/" rel="nofollow">tähän</a> sivuun (mikä kertoo siitä että ei tämä ketteryys ja muu hippeily nyt niin kovin tuoretta enää ole). XP-käytännöt olivat cooleja jo silloin. TDD, “test first”, refactoring jne. Niistä oli kiva puhua ymmärtämättä mitään tai mitä hyötyä niistä on. No, Javaa tuli opeteltua <a href="http://en.wikipedia.org/wiki/Pair_programming" rel="nofollow">pariohjelmoimalla</a>. Pari viikkoa meni mukavasti, kunnes pohjalaisen kollegani kanssa menivät sukset niin pahasti “disainista” ristiin, että oli pakko repiä napanuora irti ja jatkaa sinkkuna. Mutta kieltämättä hyötyä tuon “ketterän” työtavan jalkauttamisesta oli: softa saatiin valmiiksi, yhteistyöllä.</p>
<p>Vaihdoin työpaikkaa, ja “ketteryys” ja muu hapatus unohtuivat vähäksi aikaa, koska näistä ei ko. organisaatiossa puhuttu tai ainakaan se ei meikäläiselle näkynyt. Hommia tehtiin ja ne saatiin valmiiksi. Jälkeenpäin ajateltuna, homma oli ajoittain hyvinkin ketterää lukuunottamatta sitä, että suoria asiakaskontakteja ei minulla ollut. Meillä oli speksi joko paperilla tai sitten projektipäällikön päässä, ja sen mukaan koodattiin. Välillä joku kävi kysymässä, että onko valmista. Jos oli, toimitettiin. Itse tuli jo tuolloin koodattua niin, että homma oli koko ajan “paketissa” ts. aina oli jotain näytettävää, jos statusta kysyttiin. Toisaalta, tulipa törmättyä ihan aitoihin vesiputoustyyppisiin projekteihinkin: speksiä oli kilotolkulla ja sieltä sitten ensimmäiseltä sivulta lähtien alettiin koodaamaan.</p>
<p>Puhelin pärähti ja siirryin seuraavaan organisaatioon. Nyt “ketteryyttä” kaadettiinkin niskaan oikein kansiokaupalla, <a href="http://en.wikipedia.org/wiki/IBM_Rational_Unified_Process" rel="nofollow">RUPin</a> muodossa. Oli eri vaiheita, oli manuaalia josta “voidaan implementoida vain tarpeelliset osat”. Syntyi testejä (lieviä ongelmia oli kyllä talon sisällä tehtyjen stub-objektien kanssa: ne generoivat invalidia dataa, mikä asia selvisi minulle 2 päivää liian myöhään). Syntyi “vain tarpeellinen” dokumentaatio. Huolimatta hyvin koulutetusta ja dokumentoidusta prosessista tilanne oli kuitenkin ajoittain kaoottinen, eikä aina ollut täyttä ymmärrystä siitä mitä tehtiin. Lopulta päädyttiin siihen, että heitettiin RUPpi roskiin ja mietittiin tosissaan mitä tarvitaan ja mitä ei. Viimeisestä projektista muistan päällimmäisenä sen, kun projektipäällikkö antoi tiimille speksin ja tuli parin kuukauden päästä noutamaan hyvin toimivan, virheettömän softan. Ilman iteraatioita, ilman daily scrumeja, ilman mitään “ketterää”. Tässä välissä oli myös muutama välivaihe ja pari muuta projektia, mutta mielestäni kaikki kulminoitui tuohon viimeiseen.</p>
<p>Noihin vuosiin mahtui enimmäkseen onnistuneita projekteja. Ja jos projektissa kaikki ei toiminut heti alkuunsa, homma saatiin silti jossain vaiheessa pelaamaan. On ehkä syytä miettiä, mikä noissa onnistuneissa projekteissa on yhteistä. Ketterä mies kaivaa naftaliinista tietenkin vanhan kunnon <a href="http://agilemanifesto.org/" rel="nofollow">&#8221;Ketterän manifestin&#8221;</a>, jota vasten asiaa peilaa.</p>
<h4>Individuals and interactions over processes and tool (Ihmiset ja vuorovaikutus ennen prosesseja ja työkaluja)</h4>
<p>Kylmä fakta on se, että kaikissa onnistuneissa projekteissa oli mukana vähintään yksi kovan luokan kehittäjä, joka omalla esimerkillään ja teknisellä osaamisellaan veti myös kokemattomampia eteenpäin. Mikään prosessi tai työkalu ei voi korjata ihmisten henkilökohtaista osaamista ja kuten tuo viimeinen esimerkkikin kertoo: jos porukka on tarpeeksi hyvä henkilökohtaisella tasolla, hyvän sovelluksen tekeminen onnistuu käytännössä ilman mitään (muodollista, kuvattua) prosessia suhteellisen kivuttomasti.</p>
<p>Osaamiseen lasketaan toki myös hyvät kommunikaatiotaidot: ilman näitä tiimin työ on mahdotonta. Esim. päivittäiset Scrum-kokoukset saattavat muuttaa tiimin yhteistyötä aivan olennaisesti. Monesti isoissa perinteisellä tavalla toteutetuissa projekteissa on se ongelma, että ihmiset eivät tiedä mitä kaverit tekevät ja em. syystä tekevät esim. päällekkäisiä asioita. Pistä porukka aamulla piiriin kertomaan tekemisistään, niin tilanne helpottuu. Tässäkin on hyvä esimerkki siitä kuinka yksinkertaisesta asiasta ketteryydessä on kysymys ja myös siitä, että kaikkia käytäntöjä ei tarvitse tuoda yhdellä kertaa tiimille. Edetään pienin askelin ja opitaan samalla siitä, mitä ollaan tehty.</p>
<h4><a name="Agilehipiteivätvainsaasitä-vaisaavatkosittenkin?-Workingsoftwareovercomprehensivedocumentation(Toimivasovellusennenkattavaadokumentaatiota)"></a>Working software over comprehensive documentation (Toimiva sovellus ennen kattavaa dokumentaatiota)</h4>
<p>Tässä vaiheessa on syytä korostaa tuota manifestissa esiintyvää englanninkielistä “over”-sanaa. Ketterät menetelmät EIVÄT siis suosittele poistamaan kaikkea dokumentaatiota ja pelkästään koodamaan Post-it-lappujen perusteella, kyse on priorisoinnista. Toisaalta, ei ole mitään sääntöä sille, kuinka paljon dokumentaatiota tuotetaan. Kaikki tehdään tarpeen mukaan, ja jokaisella tuotoksella pitää olla käyttöä ja selkeä kohderyhmä. Mitään ei tehdä vain siksi, että “prosessi niin sanoo”. Jokaista lausetta kirjoitettaessa pitää miettiä a) kuka tätä lukee ja b) miksi. Eräs arvostamani arkkitehti totesi kerran, että jos dokumentaatio muuttuu päivittäin, se on liian tarkalla tasolla. Nyrkkisääntö tuokin, eikä välttämättä ihan huono.</p>
<p>Toisaalta, hyvin menneissä projekteissa on julkaistu paljon ja aikaisin. Ja on keskitytty siihen, että se olennaisin tuotos toimii eli sovellus. Esim. tuossa viimeisessä mainitusta projektista ei julkaisuhetken jälkeen löytynyt kuin yksi bugi puoleen vuoteen, vaikka ko. härveli oli kovassa käytössä. Koodi on ollut keskiössä ja se, että se on ylläpidettävää. On ollut joku joka siitä välittää. Paljon puhutaan siitä, että “koodi on kaikkien omaisuutta”. Toki näin on, mutta monesti on vielä joku, joka välittää muita enemmän. Muuten koodin laadulle saattaa käydä kuin yhteiskäytössä olevan auton siisteydelle.</p>
<p>Jotenkin tämä teesi on mielestäni näistä kaikista naurettavin: eikö pitäisi olla itsestään selvää, että jos ostetaan sovellus, koodi ja valmis tuote on se tärkein asia?</p>
<h4><a name="Agilehipiteivätvainsaasitä-vaisaavatkosittenkin?-Customercollaborationovercontractnegotation(Asiakasyhteistyöennensopimusneuvotteluja)"></a>Customer collaboration over contract negotation (Asiakasyhteistyö ennen sopimusneuvotteluja)</h4>
<p>On totta, että sopimuksia tarvitaan luomaan turvallinen ympäristö toteuttaa projektia, turvallinen sekä asiakkaalle, mutta myös toimittajalle. Toisaalta ei myöskään ole kenenkään etu se, että pilkuntarkasti noudatetaan sovelluksen jokaista pykälää sillä hinnalla, että asiakas ei saakaan sitä, mitä oikeasti tarvitsee vaan sitä, mitä jollain ajanhetkellä menneisyydessä halusi. Tämä saa myös toimittajan näyttämään hölmöltä. “Eihän me tätä haluttu?”, on usein kuultu lausahdus ei niin ketterästi toteutetuissa projekteissa. Sitten pohditaan kenen syy oli: oliko vika epätäydellisessä “speksissä” vai toimittajassa, joka ei toimittanut sitä mitä tuossa “epätäydellisessä speksissä” määriteltiin. Ja tästä päästään siihen vanhaan totuuteen, että yleensä se mitä haluaa selkenee vasta siinä vaiheessa, kun nähdään valmiina jotain konkreettista. Ja täydellisen, kaikki yksityiskohdat huomioiva määrittelyn kirjoittaminen on kutakuinkin mahdotonta. Asiat muuttuvat, asiat nähdään eri valossa projektin eri vaiheissa, tärkeysjärjestys muuttuu jne.</p>
<p>Mieleenpainuvin kommentti menneisyydestä liittyy juuri tähän yhteistyöhön asiakkaan kanssa. Aiemmasta “dokumentoi koko maailma”-tyylistä siirryttiin ylläpitovaiheessa jatkuvaan, liki päivittäiseen asiakkaan kanssa kasvokkain kommunikointiin. Muutaman viikon kuluttua kuulimme kommentin: “munhan ei tarvitse tehdä enää mitään.” Asiakkaan ei enää tarvinnut yksin miettiä speksiä, vaan mietimme sitä yhdessä päivittäin, pienissä paloissa. Homman vaikeustaso laski inhimilliseksi.</p>
<h4><a name="Agilehipiteivätvainsaasitä-vaisaavatkosittenkin?-Respondingtochangeoverfollowingplan(Muutoksiinvastaaminenennensuunnitelmannoudattamista)"></a>Responding to change over following plan (Muutoksiin vastaaminen ennen suunnitelman noudattamista)</h4>
<p>Tämä on ehkä vaikein asia käsiteltäväksi. Muutoksen hyväksyminenhän on rakennettu sisään syvälle ketteryyden ajatusmaailmaan. Jo vuosia sitten ketteryyden kritiikissä, toisaalta myös perusteluna käytettiin sitä, että sallitaan muutos, kunhan koodataan, ei suunnitella ja saadaan valmiiksi tai sitten ei saada. Joitakin päiviä sitten kuulin kommentin, että ketterä projektimalli tarjoaisi “avoimen valtakirjan” toimittajalle: kunhan tehdään mitä tehdää ja vaikkei valmista tulisikaan, lasku lähtee silti.</p>
<p>Väitän, että ketterä projektimalli tarjoaa ENEMMÄN kontrollia projektin kulkuun asiakkaan näkökulmasta kuin perinteinen vesiputousmalli (no, eipä tuo ketterä mallikaan enää mikään uusi asia ole, kuten jo aiemmin tuli mainittua). Asiakas voi projektin edetessä priorisoida asioita, pyytää uusia ominaisuuksia, joita ei ole aiemmin määritelty tai jopa muuttaa koko projektin suuntaa tai laajuutta tarpeidensa mukaan. Mikään ei tietenkään tule ilmaiseksi: ketterässä mallissa ei tehdä mitään ylimääräistä, tehdään vain tarpeellinen. Tällöin saattaa jäädä osa alkuperäisen suunnitelman ominaisuuksista toteuttamatta, toisaalta yleensä saadaan enemmän tarkoitukseen sopiva sovellus ja saatetaan jopa säästää rahaa, kun ei tehdä mitään turhaa. “Inspect and Adapt”, vanha iskulause. Eikä vain paineta höyryjunan lailla eteenpäin, suoraa raidetta.</p>
<p>Vesiputousmallin tarjoama kontrolli projektiin ja toimittajaan on näennäistä, “toivotaan, toivotaan” kontrollia. Mitäs jos suunnitelmassa oli vikaa? Mitä jos toimittaja ei osaakaan? Mitä jos asia ymmärrettiin väärin? No, lopputulos selviää julkaisuvaiheessa. Itse ainakin jännittäisin vatsa kuralla, mitä tuleman pitää.</p>
<hr />
<p><em>Aloin kirjoittamaan tätä viikkoja sitten. Olen vääntänyt ja kääntänyt tätä moneen kertaan ja miettinyt, että onko tämä niin triviaalia huttua että tätä ei kannata julkaista. Miksi julkaista itsestään selviä, yksinkertaisia asioita? Kun näitä teesejä miettii, tajuaa mistä nämä kumpuavat: käytännöstä, käytännön järjestä ja kokemuksesta. Näitä prinsiippejä ovat olleet latomassa ihmiset, joilla on vuosikymmenten kokemus menestyksekkäästä sovelluskehityksestä. Näitä ei ole kehitetty komiteoissa tai johtoryhmissä ja annettu resursseille impelemetoitaviksi. Nämä ovat päätelmiä, joihin jokainen meistä voi omassa työssään päätyä saatuaan riittävästi kokemusta erilaisista projekteista.</em></p>
<p><em>Kuitenkin edelleen näihin asioihin liittyy väärinkäsityksiä ja -ymmäryksiä, ketteryydestä tehdään monimutkaisempaa kuin se onkaan. Itselleni ketterä maailma näyttäytyy yksinkertaisena ja suhteellisen selkeänä. Tosin katson maailmaa ruohonjuuritasolta, koodarin näkökulmasta. Kaikki näkökulmat ovat tervetulleita, joten päätin kuitenkin julkaista tämän kirjoituksen, jotta asiaan saataisiin muitakin näkökulmia. Joten kommentit ovat enemmän kuin tervetulleita!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ambientia.fi/2013/03/28/agilehipit-eivat-vain-saa-sita-vai-saavatko-sittenkin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kouluttautumalla ketteräksi</title>
		<link>http://blog.ambientia.fi/2013/03/21/kouluttautumalla-ketteraksi/</link>
		<comments>http://blog.ambientia.fi/2013/03/21/kouluttautumalla-ketteraksi/#comments</comments>
		<pubDate>Thu, 21 Mar 2013 09:18:20 +0000</pubDate>
		<dc:creator>Kirsi Jankkila</dc:creator>
				<category><![CDATA[Trends]]></category>
		<category><![CDATA[Universal]]></category>
		<category><![CDATA[ketterä kehitys]]></category>
		<category><![CDATA[ketteryys]]></category>
		<category><![CDATA[product owner]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://blog.ambientia.fi/?p=3106</guid>
		<description><![CDATA[Scrum on yleisesti ohjelmistokehityksessä käytössä oleva menetelmä, johon liittyvää osaamista asiakasorganisaatio voi hyödyntää laaja-alaisesti kehitystoiminnassaan. Ambientia järjestää asiakkailleen mahdollisuuden osallistua ketterien kehitysmenetelmien maailmaan valmentavaan Certified Scrum Product Owner -koulutukseen. Koulutus...]]></description>
				<content:encoded><![CDATA[<p>Scrum on yleisesti ohjelmistokehityksessä käytössä oleva menetelmä, johon liittyvää osaamista asiakasorganisaatio voi hyödyntää laaja-alaisesti kehitystoiminnassaan. Ambientia järjestää asiakkailleen mahdollisuuden osallistua ketterien kehitysmenetelmien maailmaan valmentavaan Certified Scrum Product Owner -koulutukseen. Koulutus järjestetään 25.-26.4. Helsingissä.</p>
<p>Jotta ketterien menetelmien tuomat hyödyt olisivat paremmin ymmärrettävissä, haastattelimme asiakaskuntamme ulkopuolelta Kelan verkkoviestinnän kehittämispäällikkönä toimivaa, kela.fi-verkkopalvelun uudistuksen parissa parhaillaan puurtavaa <strong>Marika Leeds</strong>iä, joka vastaavan koulutuksen käytyään toimii nyt Product Ownerin roolissa kyseisessä projektissa.</p>
<h4><a href="http://blog.ambientia.fi/wp-content/uploads/2013/03/UrzkLUpoZLJ2Od6IXijZVlFUd9MVW8bkXNkXgZZiJTU.jpg"><img class="alignleft size-medium wp-image-3110" alt="Marika_Leed" src="http://blog.ambientia.fi/wp-content/uploads/2013/03/UrzkLUpoZLJ2Od6IXijZVlFUd9MVW8bkXNkXgZZiJTU-199x300.jpg" width="199" height="300" /></a>Kuka olet, minkälaisessa tehtävässä työskentelet?</h4>
<p>Olen Kelan verkkoviestinnän kehittämispäällikkö. Työskentelen parhaillaan Product Ownerina kela.fi-uudistuksessa. Olemme siirtämässä palvelua Liferay-alustan päälle.</p>
<h4>Mikä on Product Owner ja kuinka sinusta tuli sellainen?</h4>
<p>Product Owner on liiketoimintaa edustava ihminen, joka omistaa tuotteen ominaisuudet ja vaatimukset. Hän päättää ja priorisoi, mitä toiminnallisuuksia tietojärjestelmään tulee sekä osallistuu tarvittaessa ominaisuuksien tarkempaan määrittelyyn ja testaukseen.</p>
<h4>Mitkä ovat Product Ownerin tärkeimmät tehtävät ja vastuut?</h4>
<p>PO:n tärkein tehtävä scrum-projektissa on tuotteen kehitysjonon ylläpitäminen ja priorisointi. PO käy kehityslistaa viikoittain läpi ja priorisoi jonon kärkeen ne asiat, jotka haluaa seuraavaksi toteutuslistalle. Hän istuu samassa työtilassa kehitystiimin kanssa ja allokoi työaikansa (ainakin projektin alusssa) n. 80-100 % kehitysprojektille.</p>
<h4>Mikä on hyödyllisin asia mitä olet Product Ownerin rooliin liittyen oppinut?</h4>
<p>Jokainen toiminnallisuus maksaa! Priorisoi release 1:stä kaikki sellainen pois, joka olisi &#8221;ihan kiva&#8221; saada tuotteeseen mukaan, mutta joka ei ole vättämätön julkaisun kannalta. Tärkeää on saada ulos ensimmäinen tuoteversio mahdollisimman nopeasti, jotta siitä saadaan businesshyöty heti irti.</p>
<h4>Miten vertailisit scrum-menetelmiä perinteiseen kehitysmalliin?</h4>
<p>Kun työskennellään scrumilla, pystyn tilaajan puolella paljon enemmän vaikuttamaan tekniseen toteutukseen. Työskentely ei ole yhtään sen helpompaa tai vähemmän työlästä kuin perinteisissä projekteissa, mutta väitän, että lopputuotteen laatu erityisesti ylläpitäjän näkökulmasta on huomattavasti parempi.</p>
<h4>Minkälaisissa projekteissa scrum-malli toimii parhaiten?</h4>
<p>Tähän en osaa vastata, koska tämä on vasta toinen scrum-projektini. Mutta ainakin se sopii hyvin verkkopalveluiden uudistamiseen ja tilanteisiin, joissa otetaan käyttöön valmis julkaisujärjestelmätuote.</p>
<h4>Miksi mielestäsi asiakkaan osallistuminen projektiin muutenkin kuin tilaajana on tärkeää?</h4>
<p>Asiakkaan osallistuminen projektiin on tärkeää, jotta tilaajan ja toteuttajan välinen raja-aita hälvenee. Kun PO seuraa samassa työtilassa päivittäin kädet savessa sitä, kuinka tietojärjestelmiä tehdään, hänen ymmärryksensä ja asiantuntemuksensa kasvaa. Työskentely yhdessä vahvistaa myös keskinäistä luottamusta ja projektista tulee aidosti yhteinen ponnistus.</p>
<h4>Jos nyt aloittaisit uuden vastaavan projektin, tekisitkö jotain toisin?</h4>
<p>En aloittaisi sisällöntuotantoa julkaisujärjestelmään viisi viikkoa sen jälkeen, kun scrumtoteutus on käynnistynyt. Odottaisin 2 tai 3 kuukautta, jotta tuote ehtisi hieman enemmän kypsyä ja ympäristöt olisivat paremmassa kunnossa (ts. niissä olisi vähemmän bugeja).</p>
<h4>Terveiset Product Owner -koulutusta harkitseville?</h4>
<p>Älä ryhdy Product Owneriksi ilman koulutusta! Ja ensimmäisessä projektissasi tee kaikki &#8221;by the book&#8221;. Sitten, kun sinulla on scrumista kokemusta, voit alkaa soveltaa menetelmää enemmän. Mutta vasta sitten, kun olet hankkinut peruskokokemuksen.</p>
<h3><em>Ambientian ja Tieturin yhteistyössä järjestämästä koulutuksesta voit lukea lisää <a href="http://www.ambientia.net/portal/fi/tapahtumat/?id=402&amp;page=1" target="_blank">Ambientian verkkopalvelusta</a>.</em></h3>
]]></content:encoded>
			<wfw:commentRss>http://blog.ambientia.fi/2013/03/21/kouluttautumalla-ketteraksi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Liferay and Splunk &#8211; Beautiful Together</title>
		<link>http://blog.ambientia.fi/2013/03/11/liferay-and-splunk-beautiful-together/</link>
		<comments>http://blog.ambientia.fi/2013/03/11/liferay-and-splunk-beautiful-together/#comments</comments>
		<pubDate>Mon, 11 Mar 2013 07:13:47 +0000</pubDate>
		<dc:creator>Juha Wiberg</dc:creator>
				<category><![CDATA[Universal]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Liferay]]></category>
		<category><![CDATA[Splunk]]></category>

		<guid isPermaLink="false">http://blog.ambientia.fi/?p=3093</guid>
		<description><![CDATA[Splunk and Liferay. First one is targeted to handling data and second one for viewing it. Honestly, they can do other things too, but my point of view need some...]]></description>
				<content:encoded><![CDATA[<p>Splunk and Liferay. First one is targeted to handling data and second one for viewing it. Honestly, they can do other things too, but my point of view need some strict borderlines. Splunk have some pretty cool ways to view charts, lists and other stuff (I think it can even view maps). And of course Liferay can handle data too, it’s an <a href="http://en.wikipedia.org/wiki/Liferay">application framework</a>. But now, splunk handles and liferay views. Separation of concerns and layers that have clean responsibilities, that’s what I want as an architect.</p>
<p>We have been building one kind of dashboard to one of our customers, or actually customer’s customers, and it’s intranet. Maps, charts and lists and interactions between them. And part of the data comes from Splunk instance. As I said before, <a href="http://www.splunk.com/view/product-tour/SP-CAAAAGV">Splunk can view some pretty cool data visualizations too</a>, but in our case we need centralized authentication (SSO) and authorization and also combination of charts with other views, like maps and lists. So we decided to do visualizations at Liferay’s side of system. At POC phase we used <a href="http://leafletjs.com/">Leaflet API</a> for map (leaflet offers very pretty interface for maps and layers on them) and <a href="https://developers.google.com/chart/">Google Chart</a> api for charts. And Splunk’s cool Java api for querying data from background.</p>
<p>Why it’s cool? In my opinion, it’s quite simple but still versatile. You can find usage examples from <a href="http://dev.splunk.com/view/SP-CAAAECN">here</a>. But basically you can do asynchronous or synchronous queries using Splunk <a href="http://docs.splunk.com/Documentation/Storm/Storm/User/UsetheSplunksearchlanguage">search language</a>, select how to format your result (JSON, XML, CSV), integrate results to your application and of course login into that system. We did little transformation at the portlets controller class and that’s it: we could return JSON to our portlet’s view.</p>
<p>At the view (which is actually <a href="http://fi.wikipedia.org/wiki/JavaServer_Pages">JSP-page</a>) we used some pretty cool JavaScript trick, that Liferay offers us: <a href="http://www.liferay.com/community/wiki/-/wiki/Main/Client-side+Inter-Portlet+Communication">client side inter-portlet communication</a> with using Liferay JavaScript event system. We have map portlet which have map view with some markers on it. When you click that marker, it fires event. Every portlets on that page can register itself to listening that particular (or other) event. At the chart portlet that event triggers asynchronous ajax call to controller, which does query to Splunk and returns results in JSON format. Google chart api uses that JSON data to draw chart. Actually, with that event system you can add other portlets too, which are updated using that event system. And they are very loosely coupled: sending end doesn’t know anything about them.</p>
<p>These very lightweight technologies offer clean way to do some pretty cool interactions and visualizations in a portal. And there is not so much job to do if you want to move all that stuff on other platform like Grails or plain old Spring MVC.</p>
<p>Liferay and Splunk are a beautful combination. If you want to know more about the combo, just e-mail me or ask me on twitter,</p>
<p>Juha</p>
<p><b id="internal-source-marker_0.38580143358558416"><img alt="" src="https://lh6.googleusercontent.com/Tt9u1gUYdlpVW5bU0uu1Y_fuSHcQynbNM9NzWj5l5RsR1aiX6jnK8rn_FpVczYYhsRhSEkb6b-dz6BFw39F8ytV3s2G8YCI2JwO5W9jw0KI_W--KQazXOn0oTg" width="631px;" height="473px;" /></b></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ambientia.fi/2013/03/11/liferay-and-splunk-beautiful-together/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facilitator&#8217;s notes on coderetreat in Joensuu</title>
		<link>http://blog.ambientia.fi/2013/03/07/facilitators-notes-on-coderetreat-in-joensuu/</link>
		<comments>http://blog.ambientia.fi/2013/03/07/facilitators-notes-on-coderetreat-in-joensuu/#comments</comments>
		<pubDate>Thu, 07 Mar 2013 19:45:17 +0000</pubDate>
		<dc:creator>Aki Salmi</dc:creator>
				<category><![CDATA[Universal]]></category>

		<guid isPermaLink="false">http://blog.ambientia.fi/?p=3085</guid>
		<description><![CDATA[On Feb 22nd, a dozen of inspired software programmers from 4 local companies met at Tiedepuisto in Joensuu 8am in the morning. Their goal being to code for the whole...]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.ambientia.fi/wp-content/uploads/2013/03/coderetreat.jpg"><img class="aligncenter size-medium wp-image-3086" alt="coderetreat" src="http://blog.ambientia.fi/wp-content/uploads/2013/03/coderetreat-300x225.jpg" width="300" height="225" /></a></p>
<p>On Feb 22nd, a dozen of inspired software programmers from 4 local companies met at Tiedepuisto in Joensuu 8am in the morning. Their goal being to code for the whole day a simple program for <a href="http://en.wikipedia.org/wiki/Conway's_Game_of_Life">Conway&#8217;s game of life</a>. You&#8217;d expect that a dozen of programmers would not need a whole day for it.</p>
<p>And there&#8217;s the catch. We started from the scratch six times. That is, six times we started to solve the problem from the start! Why on earth, why would I want to spend a whole day programming while not getting anything done? And that&#8217;s the whole point of <a href="http://coderetreat.org">coderetreat</a>. To practice.</p>
<p>Coderetreats often have a certain <a href="http://coderetreat.org/facilitating/structure-of-a-coderetreat">structure</a>. Day starts with breakfast and while drinking morning coffee I often sense the excitement within the attendees.</p>
<p>In the first 45 minute session, we get to know to the domain &#8211; to Conway&#8217;s game of life. While attendees are implementing their first code snippets, the facilitator often circles around, looking over the programmer shoulder, quite literally. The facilitator tries to find issues to tackle over the next 5 sessions.</p>
<p>Are we using boolean flags for describing state? Are we using an array of array to describe the world? With the observations done during the 45minute programming period, we end up sessions with a short reflection.</p>
<p>In the last 5 sessions, the facilitator decides some constraints for the attendees. The goal is to make the attendees to code in a way they normally don&#8217;t with production code. Or, to say as it is, to take people out of their comfort zone into the zone where there&#8217;s a huge opportunity to learn.</p>
<p>The constraints often are selected based on the observations during the previous sessions:<br />
Are the developers using too much mouse? How about constraint that no-one is allowed to use mouse (or trackpad). You better learn to use your IDE to get anything done.<br />
Are the developers using language provided collections? How about a constraint for using <a href="http://programmers.stackexchange.com/questions/139353/why-should-we-preferably-use-first-class-collections">first-class collections</a>!<br />
<a href="http://c2.com/cgi/wiki?PrimitiveObsession">Primitive Obsession</a> -&gt; No primitives<br />
overly used if-statements -&gt; <a href="http://en.wikipedia.org/wiki/Single_responsibility_principle">Single Responsibility Principle</a>/No if-statements<br />
Long methods -&gt; at max 4 lines per method.</p>
<p>You get the drill.</p>
<p>After the fifth session, we are often exhausted. The programmers have been pushed and pushed to try to follow the rules. And maybe even more. As the last session, many facilitators give the programmers a chance to select (at least) one of the constraints we had during the day.</p>
<p>Giving a chance to practice the one they liked the most. The <a href="http://en.wikipedia.org/wiki/Closure_(psychology)">closure</a> for the day, for the learning.</p>
<p>After the last session reflection, we do still have one important task: reflect the whole day.<br />
During the reflection, programmers answer to the three following questions:<br />
1) What, if any, did you learn today<br />
2) What, if any, did surprise you today<br />
3) What, if any, will you take with you from the event</p>
<p>As facilitator, I&#8217;ve seen that two constraints are those that come up in all the three questions.<br />
Firstly, there&#8217;s the constraint of &#8217;single responsibility / no if-statements&#8217; that makes programmers to really focus on objects.<br />
Secondly, there&#8217;s the constraint of &#8217;Baby Steps&#8217; that often drives people nuts in the beginning. And that often, to our biggest surprise, seems to make sense.</p>
<p>Were you there? Have you been to other coderetreat events?<br />
I&#8217;d appreciate your experiences and thoughts on this kind of deliberate practice.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ambientia.fi/2013/03/07/facilitators-notes-on-coderetreat-in-joensuu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jfokus 2013, the experience</title>
		<link>http://blog.ambientia.fi/2013/02/18/jfokus-2013-the-experience/</link>
		<comments>http://blog.ambientia.fi/2013/02/18/jfokus-2013-the-experience/#comments</comments>
		<pubDate>Mon, 18 Feb 2013 07:25:31 +0000</pubDate>
		<dc:creator>Heikki Malkamäki</dc:creator>
				<category><![CDATA[Happenings]]></category>
		<category><![CDATA[Trends]]></category>
		<category><![CDATA[functional programming]]></category>
		<category><![CDATA[garbage collector]]></category>
		<category><![CDATA[gc]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JFokus]]></category>
		<category><![CDATA[parallerization]]></category>

		<guid isPermaLink="false">http://blog.ambientia.fi/?p=3055</guid>
		<description><![CDATA[What can I say, it was an amazing experience.. Great speakers who really knew what they were talking about, good facilities, good beer (though very limited amounts) from Atlassian. There...]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.ambientia.fi/wp-content/uploads/2013/02/jfokus2013_ending.jpg"><img class="aligncenter size-full wp-image-3074" alt="jfokus2013_ending" src="http://blog.ambientia.fi/wp-content/uploads/2013/02/jfokus2013_ending.jpg" width="332" height="144" /></a></p>
<p>What can I say, it was an amazing experience.. Great speakers who really knew what they were talking about, good facilities, good beer (though very limited amounts) from Atlassian.</p>
<p>There were quite an abundance of presentations about functional programming, which seems to gain large amounts of hype currently. I attended most of these and they proved quite interesting. Other things I found interesting were a peek to Java memory model &amp; GC logging output, Java concurrency synchronizers and some Raspberry Pi thingies (I happen to own one).</p>
<p><strong>Functional programming</strong><br />
As you might already have realized, modern computers come with CPU&#8217;s equipped with usually more than one core, e.g. my working laptop has 2 cores / 4 threads (hyperthreading), or even with more than one CPU (e.g. server machines). If we go back in time for about 7-8 years, there were about an even number of multi- and single-core processors in computers out there. The reason of using multiple cores (or CPU&#8217;s) over one really fast core is dictated by the laws of physics &#8211; you just can&#8217;t keep cramming millions of transistors to an ever smaller growing piece of silicon because after a crucial point, the whole thing will just melt down when you power it up. So, to avoid meltdowns (and other side effects), simply multiply the core to gain more processing power.. the only gotcha there is that all this new potential is unleashed only when a program executes it&#8217;s operations in parallel &#8211; bummer..</p>
<p>This is where functional programming steps into the picture. The key things what is so great about functional programming is the easiness of parallerizing the execution of the code. Then, what is functional programming? It is not really a new concept. It&#8217;s actually decades old and has it&#8217;s roots in [http://en.wikipedia.org/wiki/Lambda_calculus|Lambda calculus]. There are quite a few programming languages that support the functional programming paradigm such as Groovy, Scala, Clojure, Javascript.. The great thing for Java developers is that the upcoming Java 8 will support the lambda calculus (better sooner than later.. even C++ supports it). Programming functional style, allows one to implement some very handy higher order functions (functions that return functions) such as map and reduce (and filter):</p>
<p>filter = Get a subsequence from a list of values.<br />
map = Apply a function to a list of values and return a list of values.<br />
reduce = Apply a function to a list of values and return a single value.</p>
<p><strong>Java memory model &amp; GC logs</strong><br />
I went to the presentation by Kirk Pepperdine where he explained the Java memory model and the function of the generational garbage collector, regional garbage collector and the output of GC logs. As there are ever increasing memory requirements for applications, it creates considerable strain to the Java Gargabe Collector. Much can be learned through GC logs when profiling an application that has performance and or high memory consumption issues. High memory footprint always creates more work for the GC and it should always be avoided if possible since a full mark-sweep to tenured memory space (the big part of the memory pool) is going to take a long time. During a mark-sweep, the objects in memory are checked for wheter they&#8217;re alive or not and during this time any mutator thread is put to a full halt (mutator thread is your application&#8217;s thread, doing it&#8217;s things).</p>
<p>For alleaviting pains in heavy GC action in an application using a generational GC, one could try using a regional GC that basically functions as the generational one but with regioned memory (1MB &#8211; 32MB regions). Regional garbage collectors: Oracle&#8217;s G1GC, IBM&#8217;s Balance and Azul&#8217;s C4.</p>
<p><strong>Summary</strong><br />
All in all, I had a very enlighting and nice time in Jfokus 2013. I recommend.<strong> </strong>Be sure to check <a href="http://www.jfokus.se/jfokus/recordings.jsp">http://www.jfokus.se/jfokus/recordings.jsp</a> every once and a while as this years presentations will be made available there.</p>
<p>If you&#8217;re interested in other topics such as Simon Ritter&#8217;s RPi toys (a robot arm controlled by a playstation game controller clone or mind controlled lego thingy) or Dr. Heinz Kabutz&#8217;s Java concurrency synchronization using Phaser / StampedLock, you can contact me by email (first.last(at)ambientia.fi).</p>
<p><strong>Sources:</strong><br />
Jfokus 2013 presentations<br />
<a href="http://pages.cs.wisc.edu/~fischer/cs538.s08/lectures/Lecture16.4up.pdf">http://pages.cs.wisc.edu/~fischer/cs538.s08/lectures/Lecture16.4up.pdf</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ambientia.fi/2013/02/18/jfokus-2013-the-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Startup &#8211; ota mallia pienestä</title>
		<link>http://blog.ambientia.fi/2013/02/18/startup-ota-mallia-pienesta/</link>
		<comments>http://blog.ambientia.fi/2013/02/18/startup-ota-mallia-pienesta/#comments</comments>
		<pubDate>Mon, 18 Feb 2013 07:23:46 +0000</pubDate>
		<dc:creator>Aleksandra Prami</dc:creator>
				<category><![CDATA[Happenings]]></category>
		<category><![CDATA[Bitfest]]></category>
		<category><![CDATA[Startup]]></category>

		<guid isPermaLink="false">http://blog.ambientia.fi/?p=3066</guid>
		<description><![CDATA[Miksi suurilta yrityksiltä tuntuu puuttuvan startup-yrityksille ominainen luova ja avoin ilmapiiri? Yksi lukuisista kysymyksistä, joita heräsi osallistuttuamme Ainon kanssa perjantaina 15.2. Hämeen ammattikorkeakoulun tietojenkäsittelyn koulutusohjelman järjestämään Bitfest-seminaariin. Tapahtuman puhujina olivat...]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.ambientia.fi/wp-content/uploads/2013/02/iStock_000022325266XSmall.jpg"><img class="alignright size-medium wp-image-3067" alt="iStock_000022325266XSmall" src="http://blog.ambientia.fi/wp-content/uploads/2013/02/iStock_000022325266XSmall-200x300.jpg" width="200" height="300" /></a>Miksi suurilta yrityksiltä tuntuu puuttuvan startup-yrityksille ominainen luova ja avoin ilmapiiri? Yksi lukuisista kysymyksistä, joita heräsi osallistuttuamme <a href="http://www.linkedin.com/pub/aino-heiska/37/6a7/b05" target="_blank">Ainon</a> kanssa perjantaina 15.2. <a href="http://hamk.fi" target="_blank">Hämeen ammattikorkeakoulun</a> tietojenkäsittelyn koulutusohjelman järjestämään <a href="http://bitfest.fi/" target="_blank">Bitfest</a>-seminaariin. Tapahtuman puhujina olivat <a href="http://storytally.com" target="_blank">Storytallyn</a> toimitusjohtaja <a href="http://www.linkedin.com/in/epkoski" target="_blank">Erik Pöntiskoski</a>, <a href="http://dodreams.com" target="_blank">DoDreamsin</a> toimitusjohtaja <a href="http://www.linkedin.com/pub/ilkka-haavisto/4/71/616" target="_blank">Ilkka Haavisto</a> sekä <a href="http://supercell.net" target="_blank">Supercellin</a> markkinointipäällikkö <a href="http://www.linkedin.com/pub/marika-appel/1b/585/64a" target="_blank">Marika Appel</a>. Puhujat jakoivat kokemuksiaan startup-yritysten parissa toimimisesta, mikä herätti ajatuksia startup-kulttuurille ominaisten piirteiden hyödyntämisestä myös suuremmissa yrityksissä.</p>
<p>Startup-kulttuurin kulmakivi on ihmiset, jotka tekevät omistautuneesti ja intohimoisesti sitä, mihin he itse uskovat. Avoimuus, luottamus ja ideoiden jakaminen niin muiden työntekijöiden kuin yritystenkin välillä on tärkeää. Varsinkin suuret yritykset näkevät kilpailijat usein uhkana, kun startup-yrityksille on luonnollista jakaa kokemuksia keskenään. Menestyksellisen startup-yrityskulttuurin taustalla on myös ketteryys ja joustavuus kaikessa toiminnassa, ilman byrokratiaa ja hierarkioita, mikä mahdollistaa ideoiden nopean kehittämisen ja itse tekemiseen keskittymisen jatkuvan kokoustamisen sijaan. Suurempien yritysten kannattaisikin ottaa mallia startupeille ominaisesta tekemisen meiningistä sekä ilmapiiristä, joka kannustaa työntekijöitä tuomaan ideoitaan rohkeasti esille ja toteuttamaan niitä. Jos jokaisen asian toteuttamista varten tarvitsee suostumuksen, on vaikea saada mitään aikaiseksi. Marika Appel totesikin osuvasti, että  &#8221;on helpompi saada anteeksi kuin lupa&#8221;. Toisaalta suuren vastuun antaminen työntekijöille vaatii rekrytoinneissa onnistumista, varsinkin mitä suuremmasta yrityksestä on kyse.</p>
<p>Rohkeus näkyykin vahvasti startup-kulttuurissa. Sekä Erik Pöntiskoski että Marika Appel korostavat epäonnistumisten ja niistä oppimisen merkitystä yrityksen menestykselle. Epäonnistumisen pelko estää monen loistavan idean ja projektin syntymisen eikä ilman riskien ottamista voi menestyä, koska silloin kaikki ei ole pelissä. Epäonnistumisen pelosta voi päästä eroon helpottamalla epäonnistumista vaikkapa juhlistamalla sitä Supercellin tapaan shampanjalla. Supercellissä onkin huomattu, että epäonnistumisessa onnistuminen on tärkeä osa yrityksen menestystä.</p>
<p>Menestyneiden startup-yritysten kulttuuri ja toimintatavat kuulostavat hyviltä, joten miksei samoja piirteitä löydy suurista yrityksistä? Tai voi löytyä, mutta ainakin minun on vaikea keksiä esimerkkejä tällaisista tapauksista. Suurten yritysten kulttuurissa korostuvat usein hierarkkisuus, byrokratia sekä avoimuuden ja itsenäisyyden puute, jotka ovat Bitfestin puhujien mukaan haitaksi yrityksen menestykselle. Tällaisessa yrityskulttuurissa ideoiden syntyminen ja toteuttaminen on hidasta ja hankalaa. Markkinoiden ja taloustilanteiden äkilliset muutokset edellyttävät yrityksiltä ketteryyttä reagoida näihin muutoksiin nopeasti, mutta suurten yritysten heikkoutena on valitettavan usein kyvyttömyys muuttaa suunnitelmia ja toteutusvaiheessa olevien projektien suuntaa joustavasti.</p>
<p>Toisaalta, jos startup-kulttuurin säilyttäminen yrityksen kasvaessa osoittautuu mahdottomaksi, täytyy pysyä pienenä &#8211; kuten Supercell aikoo.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ambientia.fi/2013/02/18/startup-ota-mallia-pienesta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two days, four T-shirts &#8230;</title>
		<link>http://blog.ambientia.fi/2013/02/15/two-days-four-t-shirts/</link>
		<comments>http://blog.ambientia.fi/2013/02/15/two-days-four-t-shirts/#comments</comments>
		<pubDate>Fri, 15 Feb 2013 09:02:38 +0000</pubDate>
		<dc:creator>Henri Leisma</dc:creator>
				<category><![CDATA[Happenings]]></category>
		<category><![CDATA[Trends]]></category>
		<category><![CDATA[Universal]]></category>
		<category><![CDATA[functional programming scalability]]></category>
		<category><![CDATA[jfokus java conference architecture]]></category>

		<guid isPermaLink="false">http://blog.ambientia.fi/?p=3036</guid>
		<description><![CDATA[&#8230; and a post-functional programming-style enlightenment. Last week we visited Scandinavia&#8217;s biggest (and only) Java-conference Jfocus 2013 in Stockholm. I had heard positive rumors about interesting topics and good speakers...]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.ambientia.fi/wp-content/uploads/2013/02/jfokus_logo2.png"><img class="alignnone size-full wp-image-3044" alt="jfokus_logo2" src="http://blog.ambientia.fi/wp-content/uploads/2013/02/jfokus_logo2.png" width="500" height="75" /></a></p>
<p>&#8230; and a post-functional programming-style enlightenment.</p>
<p>Last week we visited Scandinavia&#8217;s biggest (and only) Java-conference Jfocus 2013 in Stockholm. I had heard positive rumors about interesting topics and good speakers and after seeing the thing live, I can only say it delivered the promise of bringing world-class speakers and seasoned developers together.</p>
<p>During the two conference days there were constantly four simultaneous tracks of talks from varying topics going on. The main themes circled around functional programming style (coming soon to a Java near you), how to build scalable systems/apps and various common tasks in development and deployment. Fortunately there were also four of us present (and 1500 others), so we had the chance to split and discuss the topics later.</p>
<p>Some crowd-magnet talks were, for example, those from Netflix and Twitter where<br />
they gave us a sneek peek at how to deliver when things get big. Both of the services have millions of users and thus have massively scalable systems. The Twitter talk focused on realtime delivery of content whereas the Netflix talk was about their overall cloud architecture (which, by the way, they are currently open-sourcing one service at a time). An interesting point from the Twitter talk was<br />
that their problem is not the 300 000 tweets coming in every second, but the cha<br />
nges in viewing scope (like starting/stopping to follow someone) which generates 18 million outgoing messages per second.</p>
<p>By far the funniest (and still highly informative) speaker was Dr. Venkat Subramaniam on &#8221;Design Patterns in modern JVM Languages&#8221;. His talk focused on the re-emerging functional programming style, which for decades has been mostly of academic interest (because it alone has no high level structures like packages and inheritance which object oriented style offers).</p>
<p>So why introduce functional concepts, like currying and monads, to object-oriented languages? (even if you&#8217;re not quite on par with the concepts, just keep reading) Well, in yesterdays apps, everything was run on one computer or on a single system for that matter. In todays apps, we have multiple processors available even in our laptops not to mention cloud platforms. Unfortunately in our current apps, the heritage of procedural programming being taught and used everywhere shows (in many simple operations, like going through lists). Our past has left us with poorly scalable apps, luckily the coming functional programming style has scalability built-in. Yeah, it&#8217;s a bit harder at first, but it will pay off with also better re-usability on the method (I mean function) level.</p>
<p>Many of the talks were recorded and will become available online in the coming weeks at:<br />
<a title="www.jfokus.se/jfokus/recordings.jsp?lang=en" href=" http://www.jfokus.se/jfokus/recordings.jsp?lang=en" target="_blank"> www.jfokus.se/jfokus/recordings.jsp?lang=en</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ambientia.fi/2013/02/15/two-days-four-t-shirts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kasvufoorumin opit &#8211; nouse tuhkasta ja tee</title>
		<link>http://blog.ambientia.fi/2013/01/31/kasvufoorumin-opit-nouse-tuhkasta-ja-tee/</link>
		<comments>http://blog.ambientia.fi/2013/01/31/kasvufoorumin-opit-nouse-tuhkasta-ja-tee/#comments</comments>
		<pubDate>Thu, 31 Jan 2013 15:50:34 +0000</pubDate>
		<dc:creator>Ville Availa</dc:creator>
				<category><![CDATA[Happenings]]></category>
		<category><![CDATA[Trends]]></category>
		<category><![CDATA[Universal]]></category>
		<category><![CDATA[atte miettinen]]></category>
		<category><![CDATA[blancco]]></category>
		<category><![CDATA[eu]]></category>
		<category><![CDATA[everest]]></category>
		<category><![CDATA[f-secure]]></category>
		<category><![CDATA[foorumi]]></category>
		<category><![CDATA[iteraatio]]></category>
		<category><![CDATA[kasvu]]></category>
		<category><![CDATA[kasvufoorumi]]></category>
		<category><![CDATA[ketterä]]></category>
		<category><![CDATA[ketteryys]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[oppiminen]]></category>
		<category><![CDATA[Skype]]></category>
		<category><![CDATA[Strategia]]></category>
		<category><![CDATA[stubb]]></category>
		<category><![CDATA[supercell]]></category>
		<category><![CDATA[trulia]]></category>
		<category><![CDATA[tulevaisuus]]></category>
		<category><![CDATA[ville availa]]></category>

		<guid isPermaLink="false">http://blog.ambientia.fi/?p=3003</guid>
		<description><![CDATA[Vaikeuksien kautta voittoon ja Fenix-lintuna ylös. Tämä oli vallitseva tarina kun Supercell, Blancco ja Trulia jakoivat kokemuksiaan yrittämisestä. Kasvufoorumi 2013 antoi taas mukavasti lisävirtaa ja uusia ajatuksia.]]></description>
				<content:encoded><![CDATA[<div>
<div>
<div id="attachment_3004" class="wp-caption alignright" style="width: 310px"><a href="http://blog.ambientia.fi/wp-content/uploads/2013/01/WP_20130124_004.jpg"><img class="size-medium wp-image-3004" alt="Scott Hannah from Facebook Mobile" src="http://blog.ambientia.fi/wp-content/uploads/2013/01/WP_20130124_004-300x168.jpg" width="300" height="168" /></a><p class="wp-caption-text">Scott Hannah Facebookin Mobile-yksiköstä</p></div>
<p>Vaikeuksien kautta voittoon ja Fenix-lintuna ylös. Tämä oli vallitseva tarina kun Supercell, Blancco ja Trulia jakoivat kokemuksiaan yrittämisestä. Kasvufoorumi 2013 antoi taas mukavasti lisävirtaa ja uusia ajatuksia.</p>
<p>Pitää tehdä, unelmoida, suunnitella yksinkertainen strategia ja epäonnistua. Epäonnistua kuitenkin nopeasti, jotta voi oppia, kehittää toimintaa ja epäonnistua sitten taas tarvittessa uudestaan. Samaan learning by doing -menetelmään olen uskonut itsekin. Kun on riittävästi intoa, uskallusta ja ideoita, voi suuntaa aina korjata matkalla. Vauhti ei kyllä aina korjaa virheitä.</p>
<p>Supercellin kohdalla historia oli aika dramaattinen. Ilkka Paananen kertoi, että ensimmäinen loistava peli oli lähes valmis, aikaa ja rahaa palanut melkoisesti, kun hommaan pistettiin ruksit päälle. Strategia muuttui, eikä konsepti tuntunut enää uskottavalta. Siinä saattoi sattua pelintekijöitä päähän lujaa, kun koko toiminta aloitettiin uudestaan alusta.</p>
<p>Lavalle saatiin vauhtia, kun Alexander Stubb kertoi meitä jokaista koskettavia faktoja Euroopan vahvuuksista. EU on varsinkin talousuutisten sylkykuppi, jota voidaan mollata nollakasvusta ja velanotosta. Puhumme silti maailman suurimmasta taloudesta, jossa voidaan hyvin ja hoidetaan asioita oikein. Maailman maista yhdeksän kymmenestä erilaisin mittarein hyvästä maasta on eurooppalaisia.</p>
<p>Scott Hannan Facebookista pamautti tajuntaan muistikuvan ensimmäisistä internet-kännyköistä. Tiiliskiven, jonka surkealle näytölle sai tiedon säästä ja mitään muuta ei sitten saanutkaan. Se oli iso lupaus ja huikea floppi. Mobiili internet unohtui tavalliselta käyttäjältä kymmeneksi vuodeksi löytyäkseen sitten nyttemmin taskustamme kuin sattumalta.</p>
<p>Blanccon Kim Väisäsen tiivistyksestä tykkäsin: &#8221;tee&#8221;. Hän on hyvin noudattanut teesiään, sillä Blancco on mennyt erilaisesta myyntimallista toiseen. Neljää mallia on kokeiltu ja nyt viimeisin tuntuu toimivan edellisiä paremmin. Heidän viimeksi kehittämänsä myyntiverkosto koostuu eri maissa olevista paikallisista yrittäjistä, joiden kanssa Blanccolla on yhteisyritykset. Minusta malli vaikutti yksinkertaisen toimivalta, mutta myös nykyaikaiselta. Jatkossa varmasti yhä suurempi osa maailman tietotyöstä tullaan tekemään yrittäjävetoisesti pienissä yksiköissä.</p>
</div>
<div>
<div>
<div id="attachment_3006" class="wp-caption alignright" style="width: 310px"><a href="http://blog.ambientia.fi/wp-content/uploads/2013/01/WP_20130124_002.jpg"><img class="size-medium wp-image-3006" alt="Kasvufoorumi keräsi Musiikkitalon salin täyteen" src="http://blog.ambientia.fi/wp-content/uploads/2013/01/WP_20130124_002-300x168.jpg" width="300" height="168" /></a><p class="wp-caption-text">Kasvufoorumi keräsi Musiikkitalon salin täyteen</p></div>
</div>
</div>
<div></div>
<div>Myyntiverkostosta siirryttiin vuorenhuipulle. Atte Miettisen esittämät hienot vuoristomaisemat ja huimat seikkailut eri mantereiden korkeimmilla huipuilla saivat yleisön hiljaiseksi. Everestille meno on todella pitkäkestoista ja kovaa touhua. Kahden kuukauden aikana vuodesta yritys on edes mahdollinen. Aten mukaan heidän huiputuksessaan pakkasta oli 40 astetta ja tuuli 60 metriä sekunnissa. Tiimityö on vaatimus, sillä jos korkealla sattuu jotain tarvitaan 14 miestä siirtämään yksi loukkaantunut alas. Muussa tapauksessa matka saattaa päättyä vuorelle lopullisesti.</div>
<div></div>
<div></div>
<div></div>
<div>
<p>Sami Inkisen Truliaan tiivistyi usko omaan asiaan. Kun markkinat sanoivat, ettei tuotetta tarvita nyt eikä tulevaisuudessa, Inkisen tiimi ei antanut periksi. Heillä oli ajatus, että tulevaisuudessa kiinteistövälityksen on Yhdysvalloissa pakko mennä verkkoon ja niin vääntäminen asian parissa jatkui. Lopulta homma alkoi kääntyä ja menestynyt Trulia listattiin viime vuonna New Yorkin pörssiin.</p>
</div>
<div></div>
<div></div>
<div></div>
<div>
<p>Tiit Paananen kertoi Skypen tarinan sekä sen merkiksestä pienelle maalle. Hekin halusivat oman nokian ja saivat menestyvän ympäristön, jonka käyttäjämäärät ovat kasvaneet huimaa vauhtia.</p>
</div>
<div></div>
<div></div>
<div>Sitten siihen oikeaan Nokiaan, mutta vain lähinnä henkilön taustan vuoksi. Nokian ja F-Securen hallituksien puheenjohtaja Risto Siilasmaa avasi strategian merkitystä yrityksissä. Kun keskustelin Riston kanssa tilaisuuden jälkeen hän kertoi hallituksen puheenjohtajan homman olevan nimeen omaan strategian tekemistä samaan aikaan, kun toimitusjohtaja koittaa painia operatiivisten ongelmien parissa. Tottahan se toimitusjohtajankin homma olisi sen strategian kanssa tehdä työtä, mutta kun siihen ei aika vaan käytännössä kunnolla riitä.</div>
<div></div>
<div>
<div>
<div>
<div id="attachment_3005" class="wp-caption alignright" style="width: 310px"><a href="http://blog.ambientia.fi/wp-content/uploads/2013/01/WP_20130124_006.jpg"><img class="size-medium wp-image-3005" alt="Tiit Paananen Skypeltä hehkutti kasvaneita käyttäjämääriä" src="http://blog.ambientia.fi/wp-content/uploads/2013/01/WP_20130124_006-300x168.jpg" width="300" height="168" /></a><p class="wp-caption-text">Tiit Paananen Skypeltä hehkutti kasvaneita käyttäjämääriä</p></div>
</div>
</div>
<div></div>
<div></div>
<div></div>
<div>Minun ajatuksiini Kasvufoorumi istui todella hyvin, koska olen aina enemmän tehnyt, kuin varsinaisesti jaksanut suunnitella. Suunnittelemaan olen sitten oppinut kantapään kautta ja sitten taas huomannut, että ei ne asiat vaan suunnittelemalla valmistu. Hyvä tekeminen syntyy sopivanmittaisissa iteraatioissa, jossa tekemistä pystytään ohjaamaan, arvioimaan ja priorisoimaan. Tätä johdatusta oli nähtävissä useimmissa puheenvuoroissa &#8211; omaa visiota unohtamatta. Oma visio pitäisi osata vain tiivistää strategiaksi ja kuuluisaksi ohjenuoraksi, jonka perusteella sitä päätä siihen seinään hakata. Tiiivistä strategia ja tee ketterästi. Siinä tislaamani opit Kasvufoorumista.</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.ambientia.fi/2013/01/31/kasvufoorumin-opit-nouse-tuhkasta-ja-tee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A learning organization</title>
		<link>http://blog.ambientia.fi/2013/01/31/a-learning-organization/</link>
		<comments>http://blog.ambientia.fi/2013/01/31/a-learning-organization/#comments</comments>
		<pubDate>Thu, 31 Jan 2013 12:40:08 +0000</pubDate>
		<dc:creator>Aki Salmi</dc:creator>
				<category><![CDATA[At work]]></category>

		<guid isPermaLink="false">http://blog.ambientia.fi/?p=2988</guid>
		<description><![CDATA[Learning has been on top of my head lately. I blogged on my personal blog my first ever entry on learning. On that blog post I raised a question what...]]></description>
				<content:encoded><![CDATA[<p>Learning has been on top of my head lately. I blogged on my personal blog my first ever entry on learning. On that blog post I raised a question what could I learn to help a(ny) organisation to become a learning organisation? In this post I try to figure out what it would mean to me in an organisational context.</p>
<p>Disclaimer: I&#8217;ve only been at Ambientia for three months and thus I am not making a statement whether Ambientia is, or is not, a learning organisation. What I do describe, instead, is what it could mean for an organisations, generally speaking.</p>
<p><a href="http://blog.ambientia.fi/wp-content/uploads/2013/01/learning.jpg"><img class="aligncenter size-medium wp-image-2994" alt="learning" src="http://blog.ambientia.fi/wp-content/uploads/2013/01/learning-300x200.jpg" width="300" height="200" /></a></p>
<p style="text-align: center;">Learning is something to celebrate together!</p>
<p>I went to <a href="http://less2012.org">#LESS2012</a> to meet new people and to learn. And it did exceed my expectations &#8211; both of them. I loved the discussions we had with <a href="https://twitter.com/agilesensei">Claudio</a>, <a href="https://twitter.com/MarkNijhof">Mark</a>, <a href="https://twitter.com/haaslab">Stefan</a>, <a href="https://twitter.com/duarte_vasco">Vasco</a> to name a few. And I went there to learn more about <a href="http://en.wikipedia.org/wiki/Lean_Startup">Lean Startup</a> and the ideas behind it.</p>
<p>That learning, regarding Lean Startup, together with my new insight that learning happens in reflection, made me realise something: the concepts indeed seem to have a point.</p>
<p>In Lean Startup, there&#8217;s a core concept of creating feedback loops on potential customers &#8211; would this thing(y) solve that problem of yours. And as part of that process, in reflection, we learn a great deal about our markets. In Lean Startup, we run many experiments and gather feedback from our potential customers. And in reflection, we learn a great deal about our customers.</p>
<p>In reflection we learn.</p>
<p>A3 &#8211; a thinking tool for problem solvers. And what happens in the process of creating A3. It&#8217;s about taking time to reflect the problem. Taking time to plan &#8211; to create a hypothesis, that is. To run an experiment to validate the hypothesis. And to learn, in reflection, by measuring the results of the experiments.</p>
<p>Some say, <a href="http://en.wikipedia.org/wiki/PDCA">PDCA</a> yet again. I say: Yes, and I couldn&#8217;t care less.</p>
<p>Since in reflection we learn.</p>
<p>So, what does this bring us with? We started to work with my first-ever A3 report a little while ago here at Ambientia. I hope we learn in this experiment we are running. And I hope there&#8217;s a lot more to come of these experiments.</p>
<p>I want to thank <a href="https://twitter.com/agilesensei">Claudio Perrone</a> and <a href="https://twitter.com/jacoporomei">Jacopo Romei</a> for making a difference!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ambientia.fi/2013/01/31/a-learning-organization/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
