Futurice Blog http://blog.futurice.com Thoughts from inside Futurice posterous.com Thu, 02 Feb 2012 23:15:00 -0800 Better place to work: let's make it together! http://blog.futurice.com/97703676 http://blog.futurice.com/97703676

Woo, Futurice was just selected as the best workplace in Finland! It feels good to be recognized also by an outside party that we are going to the right direction.

Our passion is to make our workplace and all the workplaces in Finland better. Therefore we want to share you how we do it - and we would love to learn of your ways of doing it as well. Please contact us and let's set up a meeting to talk more about how to make the world a better place to work: Hanno Nevanlinna (hanno.nevanlinna@futurice.com) or Lenita Lempainen (lenita.lempainen@futurice.com).

Below you can find all our people's open comments (uncut) from the great place to work survey. Hopefully you can catch something from there for your organization!

And the press release can be found from here.

 

"Ainutlaatuiset edut ja halukkuus tarttua epätavallisiinkin ajatuksiin, esim. Viikko Berliinissä"
"Bonusjärjestelmän avoimuus ja reiluus, toki enemmänkin saisi tulla aina :)"
"Uusi mentorointimalli vaikuttaa hyvältä mutta aika näyttää. Äärimmäisen positiivista on HR:n halu ajatella asioita perinteisen laatikon ulkopuolelta tässäkin kohtaa"
"Avoin kulttuuri ja aito fiilis siitä ettei tarvitse pyrkiä directoriksi voidakseen vaikuttaa asioihin yrityksessä."
"hyvin vahva keskinäinen luottamus"
"avoimuus ja johdon toiminnan huikea läpinäkyvyys"
"pitkäjännitteinen, sitoutunut johto"
"ihmiset"
"Johdon kommunikointi/tiedotus on avointa ja mutkatonta"
"Asiakkaan tiloissa työskentelevistä pidetään erittäin hyvin huolta"
"Meillä on paljon kaikkenlaista pientä kivaa piristämässä työpäiviä/-viikkoja"
"monipuoliset edut: lounas- ja liikuntasetelit, alennukset badgea näyttämällä (mm. kuntosalialennus), mahdollisuus varata yrityksen saunatilat omaan käyttöön vapaa-ajalla, joustavat työajat, uusi sisäpuutarha/metsä (jossa voi pitää pieniä neuvotteluja/rentoutua), sauna lämmin aamuisin (vuorot miehille ja naisille erikseen), kampaaja käy säännöllisesti toimistolla, samoin hieroja, viikottainen aamiainen, kuukausittainen pizzapäivä, monipuolinen biletarjonta (futubileet, pikkujoulut, kesäpäivät, family friday jne), torkku/venyttelyhuone"
"mahdollisuus vaikuttaa: kaikesta kerätään palautetta, ja sen pohjalta todella tapahtuu muutoksia"
"hyvä ilmapiiri"
"Työyhteisössä aito välittämisen tunne, niin kanssatyöntekijöiltä, kuin johdoltakin"
"Hyvä, rennonletkeä meininki. Porukka viihtyy myös vapaa-aikanaankin, ja keskusteluja voidaan jatkaa vaikka pubirundilla"
"Mahdollisuus vaikuttaa työtehtäviinsä. Johto pyrkii osaltaan järjestämään (toki mahdollisuuksien mukaan) työntekijää motivoivia ja mielekkäitä projekteja / tekemistä"
"Ammatillisen kehittymisen mahdollisuudet monipuoliset, fiksusti rakennettu urapolkumalli. Palkkaus tasa-arvoinen (ja uramallia seuraileva), eikä suosi pelkästään 'taitavia palkkaneuvottelijoita'"
"Aktiivinen ja hyvin toimiva virkistystoiminta, joka järjestää paljon erilaisia mielekkäitä ja hauskoja tapahtumia"
"Monipuoliset työsuhde-edut, toimiva & kannustava bonusjärjestelmä"
"Poikkeuksellinen joustavuus työajoiss ja muissa järjestelyissä ja muu joustavuus"
"Aito avoimmuus läpi organisaation."
"Arkipäivän mukavuudet: Premium-tason kahvit ja teet ym., lämmin sauna aamuisin, aamiaiset, mahdollisuus ottaa välipalaa, mahdollisuus hierontaan ja kampaajaan toimistolla ym."
"Tunne aiitä, että on etuoikeutettu työskennellessään erityisessä työpaikassa."
"Firman halu muuttaa alaa ja esimerkillään työnantajakulttuuria myös muissa yrityksissä."
"Luotetaan ihmisiin ei ole pelkkä sanonta, vaan se on myös monella tavalla pistetty konkreettisesti käytäntöön. Firman johto on todella sisäistänyt sen, että paras työtulos (ja siten yrityksen tulos) saavutetaan sillä, että varmistetaan, että työskentely itsessään on niin mukavaa kun voi vain olla."
"Loma-aikoja saa järjesteltyä melko vapaasti."
"Paljon vapautta ja vastuuta."
"1) Minulla on vielä opiskelut kesken, mutta missään vaiheessa en ole kokenut, että työnteko opiskelun ohessa (eli opiskelu työnteon ohessa) olisi ollut este työnantajalleni. Tunnen saavani kannustusta valmistumiseen; kun olen tarvinnut keskittymistäni kokopäiväiseen opiskeluun, on viikoista muutamiin kuukausiin mittainen palkaton opintovapaa järjestynyt ilman työsuhteen katkaisemista. Lisäksi valmistumiseen kannustetaan järjestämällä dippaleiri eli parin kuukauden palkallinen jakso, jossa lopputyöntekijät vapautetaan muista työtehtävistä ja tuodaan yhteen tekemään loppututkintonsa kirjallinen osa valmiiksi vertaistuen voimin."
"2) Liikkumiseen ja urheiluharrastuksiin kannustetaan. Erilaisiin urheilutapahtumiin kannustetaan osallistumaan korvaamalla niistä aiheutuneet kulut. Kesän mittaan järjestimme jälleen ns. Futuolympialaiset, joissa vuorotellen milloin mistäkin lajista kiinnostuneet futulaiset veivät muut halukkaat työpäivän jälkeen tutustumaan eri urheilulajeihin tai liikuntamuotoihin. Firma osallistui tarjoamalla osallistujille eväät mukaan ja palkitsemalla aktiivisimmin mukana olleet kesän päätteeksi. Samoin esimerkiksi työmatkapyöräilyä tuetaan, mitä varten toimiston sauna on lämmin joka aamu."
"3) Futu-porukka on muutenkin aktiivista järjestämään erilaisia tapahtumia – oma-aloitteisesti järjestettyä vapaa-ajantoimintaa tapahtuu nykyään jos ei ihan viikoittain niin useammin kuin kerran kuukaudessa. Ne voivat olla pelailutilaisuuksia, kokkailua, oluiden maistelua tai esitelmä- tai keskustelutilaisuuksia aiheista työn läheltä tai kauempaa. Ilmoilla on hiljattain ollut myös keskustelua Futu-bändin elvyttämisestä."
"4) Vuosia jatkunut perinne jatkuu yhä, eli kerran viikossa, joka keskiviikkoaamu, työpäivä alkaa klo 9.00–9.30 järjestettävällä Futu-aamiaisella, jossa keskustelunaihe on vapaa ja tunnelma rento. Lisäksi kerran kuussa pidetään FutuFriday eli teemaperjantai, jona firma tarjoaa lounaspizzat, nähdään tai pidetään muutama workshop ja presentaatio (aihe pitäjänsä parhaaksi näkemä), vaihdetaan videon välityksellä kuulumiset Helsingin, Tampeen ja Berliinin toimistojen kesken, ja haastatellaan toimitusjohtajaa avoimin kysymyksin Ask the CEO Half-an-hour-sessiossa. Kaikkina muinakin perjantaina toimiston jääkaappi muuten tarjoaa perjantaioluet työpäivän päätteeksi. :)"
"5) Futurice on tähän päivään saakka karsinut tehokkaasti työnteon tieltä kaikkea sitä byrokratiaa ja jähmeyttä, mihin muilla tuntemillani työnantajilla usein kuluu aikaa. Esimerkiksi laskuja ei tarvitse hyväksyttää esimiehellä vaan jokainen firman luottokorttia käyttävä tekee itse arvionsa, onko meno tarpeellinen vai ei. Muutenkin Futuricen organisaatiohierarkia on erittäin matala (3 tasoa!) ja esimiesten kanssa on helppo olla tekemisissä. Ylläpidosta vastaava IT-tiimimme on erittäin vastaanottavainen ja altis korjaamaan sekä juuri sillä hetkellä haittaavan henkilökohtaisen ongelman että sen taustalla olevan, jonka pian kohtaisi joku muukin futulainen. Arvostan myös sitä tosiasiaa, että saan käyttää ja itse päivittää parhaaksi näkemääni omenanmakuista työkonettani enkä joudu tyytymään minkään ulkoisen palveluntarjoajan asettamiin päivityssykleihin ja laitteisiin."
"Tämä on ehdottomasti paikka, jossa vallitsee hyvä ilmapiiri varsinaiseen työntekoon eli asiakkaiden ongelmien ratkaisemiseen!"
"Aito kiinnostus siihen, että työntekijöillä olisi niin henkisesti kuin fyysisestikin hyvä ynpäristö tehdä työtään. Työntekijöiden näkemyksiä kuunnellaan ja pyritään mahdollisuuksien mukaan tekemään työntekijöiden toivomia hankintoja, esim. uudet työtuolit. Tässä työpaikassa on poikkeuksellisen hyvä ilmapiiri, huumori kukkii ja jokainen saa olla oma itsensä. Rekrytoidaan henkilöitä, jotka sopivat joukkoon ja tässäkin kuunnellaan työntekijöiden näkemyksiä siitä, onko haastateltu henkilö tiimiin sopiva vai ei."
"Aktiivinen pyrkimys eliminoimaan turhat hallinnolliset prosessit ja järkeistämään niitä välttämättömiä, jotka ovat kömpelöitä / ikäviä."
"Alalle poikkeuksellisen korkea luottamus työntekijään."
"Arvostan erityisesti yleistä halua viedä asioita eteenpäin ja tehdä asiat hyvin - positiivisella asenteella. Voin luottaa siihen, että kollegat antavat täyden panoksensa työtehtäviin."
"Meillä on myös hemputin mukava fudisjoukkue."
"Asiat toimivat. Ihmiset ovat osaavia, fiksuja ja mukavia. On ollut mahdollista tehdä myös kiinnostavia asioita, jotka eivät liity suoraan työtehtävään ja on ollut mahdollista vaikuttaa työtehtäviin."
"Asioiden tila on mahdollista helppo johdon tukemana, jos oikeasti tarvetta. Hyvä mahdollisuus tehdä juuri niitä asioita, joita itse haluaa. Poikkeuksellisen hyvät työsuhde-edut työntekijöille."
"Avoimmuus ja työntekijöiden motivointi: työntekijöitä ohjataan aktiivisesti kehittämään itseään ja organisaatiota."
"Avoimuus, kaikesta firman toiminnasta kerrotaan. Kynnys kysyä johdolta on myös matala. Sellainen olo että voisi mennä kysymään mitä vaan. (Ja myös saa vastauksen. Jos ei heti niin pian kuitenkin.)"
"Best balance work/private life ever :"
"    - COMPLETELY free schedule"
"    - Opportunity to have a permanent part-time contract"
"    - Opportunity to take a leave whenever you want"
"Best parties, friends are invited as well as customers and employees from other companies in the same business, there is food and drinks for everyone."
"Very highly skilled but still very humble people."
"Pool table, sauna, video games, free fruits at will, free cookies at will, free juices at will, ..."
"Breakfast buffet every Wednesday"
"Special event every first Friday of the month : company offers lunch, pizza, salads, ... we have talks, workshops, coding sessions, ...."
"Once a year, our CEO invites everybody individually to have a talk with him, give feedback, suggestions, and he explains the strategy to each and every one ..."
"And so much more ........"
"Erinomainen panostus HR-työhön! Loistavat mahdollisuudet keskustella ylemmän johdon kanssa! Uskomaton läpinäkyvyys johdon toimintaan! Erityislaatuinen rekrytointiprosessi, jossa varmistetaan uusien työntekijöiden sopivuus! Tampereen tiimi on täysin ainutlaatuinen upean tiimihengen ja osaamisen osalta!"
"Erittäin suuret mahdollisuudet vaikuttaa työhön ja projekteihin, jos haluaa."
"Erityisen hyvän työpaikan työpaikastani tekevät yrityksen arvot, mielekkäät työtehtävät, mukavat ja ammattitaitoiset työntekijät sekä laaja tarjonta vapaa-ajantoimintaa. Lisäksi paljon muita kivoja etuja, kuten yhteinen aamupala kerran viikossa, palkkapäivänä pizzaa, liikuntasetelit, paljon erilaisia tapahtumia jne."
"Futurice is really unique IT company. Top managers and company owners are the same guys who created company 11 years ago and they REALLY trying to build company that balances three factors: People - Customers - Company finances. Every single day people are discussing how to make company work better."
"Futuricella on ainutlaatuinen, avoin ja mutkaton kulttuuri, josta kerron mielelläni myös ystävilleni ja tutuilleni."
"Futuricella on mahtava tekemisen meininki."
"Futuricella on helppo kehittää omaa uraa siihen suuntaan, mihin itse haluaa. Yritys tarjoaa siihen erinomaiset puitteet. Itse olen päässyt jo aivan juniorina tekemään tiiviisti töitä johtoryhmän ja hallituksen kanssa - ja olen kokenut, että minut on otettu mukaan tasa-arvoisena työkaverina eikä junnuna."
"Firman yhteiset aamiaiset, FutuFridayt + payday-pizzat, erilaiset yhteiset juhlat ja muut tapahtumat luovat mainiot puitteet yhteisöllisyyden ja hyvän tekemisen meiningin kasvattamiseen."
"Futuricella jokaiseen luotetaan ja luottamus myös osoitetaan oikeilla teoilla ja toimintatavoilla: yrityksen kaikki luvut ovat julkisia; jokaisella työntekijällä on oikeus tehdä päätökset, jos heillä on paras tieto päätöksen kannalta oleellisista asioista - ts. kaikki ylimääräinen byrokratia on poistettu; jokainen työntekijä saa myös oman firman luottokortin..."
"Futuricella välitetään ihmisistä aidosti. Se näkyy erilaisina järjestettyinä aktiviteetteina ja mahdollisuuksina (esim. aamiaiset, sauna- ja keittiötilat), erilaisina etuina (esim. joustavat lomailu- ja perhevapaamahdollisuudet ja erinomaiset vakuutukset), mutta myös päivittäisinä tekoina (esim. Futuricella on vahva positiivisen palautteenantokulttuuri, jonka toteuttamisessa toimitusjohtajamme on varmasti yksi malliesimerkkejä)."
"Henkilökunnan samanhenkisyys. Ihmiset pitävät työnteosta ja ovat oikeasti kiinnostuneita näistä jutuista myös työajan ulkopuolella. Toisin sanoen mä oon vaan töissä täällä -asennetta ei tule vastaan."
"Huumori, kulttuuri. Tietynlainen design sensibility kaikessa tekemisessä. Kaikki ymmärtävät, että pyrimme tekemään jotain todella hyvää. Lisäksi asiat tehdään meille työntekijöille mahdollisimman helpoiksi, voimme keskittyä olennaiseen."
"Hyvin menee jee jee"
"Ihmiset, innostuneisuus, kunnianhimo. Halu olla paras mutta kuitenkin omalla tavallamme jalat maassa. Monet projektit ovat sellaisia, joissa on suorastaan kunnia saada olla mukana."
"Työajan ulkopuolella kulutamme huomattavia määriä aikaa työkavereiden kanssa ihan vapaaehtoisesti. Usein puhutaan firman asioista, ja epäkohdat nähdään, epätoivoon vaipumisen sijaan, haasteina ja  paikkoina kehittyä. Monet firman toimintaa kehittävät asiat ovat lähteneet juuri tällaisista spontaaneista illanvietoista."
"Kaikessa tekemisessä huokuu avoimuus. Ei pelkästään sisäisessä kommunikaatiossa ja päätöksenteossa, mutta näin halutaan toimia myös ulospäin asiakkaiden suuntaan mikä on erityisen hienoa. Tämä tuntuu käsittämättömältä normaaleihin isoihin firmoihin ja kankeisiin tapoihin tottuneelle."
"Kaikilla on mahdollisuus vaikuttaa yhdenvertaisesti yhtiön tulevaisuuden suunnitelmiin ja operatiiviseeen tekemiseen ja tämä myös toimii mutkattomasti yhtiössä."
"Kaikki työntekijät ovat hemmetin hyviä tyyppejä. Tuntee olevansa erittäin fiksussa porukassa ja motivaatio pyrkiä itsekin hyviin suorituksiin nousee."
"Koen että Futuricen johto aidosti uskoo että pitämällä työntekijät tyytyväisinä, saadaan myös aikaan paras tulos. Meillä lähtökohtaisesti luotetaan siihen että jokainen tekee parhaansa, jolloin ei ole tarvetta valvoa ja johtaa niin paljon. Tämä antaa tarpeeksi liikkumavapautta, jotta työntekijä (näin uskoisin) tuntee saavansa olla mukana päättämässä asioista, ja voivansa omalta osaltaan olla mukana kehittämässä Futuricea vielä parempaan suuntaan."
"Kun tulin uutena työntekijänä taloon, joka ikinen ihminen toimitusjohtajaa myöten tarjoutuivat auttamaan minua ja saivat oloni tuntumaan todella kotoisaksi. Joka päiväisessä projektityössä Futulaiset auttavat aina toisiaan ja asiakkaita eikä kenenkään tarvitse huolehtia yksinjäämisestä. Yleisilmapiiri on aina ilmoinen ja kenen kanssa vaan voi jutella. Olen oikeasti ylpeä firmastani!"
"Lähestulkoon täydellinen läpinäkyvyys päätöksenteossa."
"Last Friday I launched a initiative to have the long term corporate goals decided upon by all employees together is an election. I could do this not because I was in upper management but because I had an idea, passion and the management just said 'great, go for it!' and this saturday I was able to use the companies' sauna and kitchen space for a private party without any rent or anything. This is a standard option open to all employees. Yes this is an unusual place to work!"
"Mageet värkit, smoothiet jääkaapissa, TaxiButton!"
"Mahtava yhteishenki ja toisista välittäminen! Viikottaiset fiiliskierrokset, joissa käsitellään myös työn ulkopuoliset asiat ja reagoidaan heti jos on tarvetta."
"Tekemisen meininki ja mielenkiintoisten projektien etsiminen jokaiselle. Pyritään aina löytämään projekti joka vastaa henkilökohtaisiin kehittymistavoitteisiin ja kiinostuksiin."
"Matala hierarkia: johtoa ei mielletä esimiehiksi, vaan ensisijaisesti työkavereiksi - toimitusjohtajaa myöten."
"Mahtava yhteishenki. Kaikki asiat yritetään tehdä ajatuksella. Kommunikointia rohkaistaan aktiivisesti, johto läsnä ja kuka tahansa voi (ja uskaltaa) nykiä hihasta. TJ pitää kaikkien kanssa pienen juttutuokion. Kaikessa pyritään toimimaan avoimesti ja läpinäkyvästi."
"Mahtavaa tulla työpaikalle, jossa ihmiset oikeasti antavat toisilleen positiivista energiaa. Vaikka olisi itsellään huono aamu, niin töihin on kiva tulla kun tietää että siellä odottaa iloinen ja positiivinen meininki"
"Management really gets it: software is about people instead of processes and tools, and they focus on keeping the people happy."
"Great transparency, flat hierarchy. I consider my management as part of my team instead of ivory tower superiors."
"I consider my coworkers my friends and gladly spend my free time with them. In fact, I look forward to Fridays to have a couple of beers with them."
"The company does not only focus on hiring talent, but talent that fits the company culture."
"Me oikeasti yritämme muuttaa toimialaamme ja parantaa maailmaa. Se on aika raju tavoite."
"Meillä ei ole hierarkiaa, meillä ei ole byrokratiaa, meillä on vapautta ja vastuuta!"
"Meillä on todennäköisesti alan paras IT-tiimi. Tiimi auttaa muita työntekijöitä välittömästi ja pyrkii ratkaisemaan ongelmat mahdollisimman hyvin. Minulla ei ole yhtään huonoa tai edes keskinkertaista kokemusta IT-tiimin kanssa. Palvelu on aina ystävällistä, erinomaista ja muut huomioonottavaa."
"Minustä tärkeää on suhtautumistapa työntekijöihin ja työympäristöön - se on yksi tärkeimmistä painopisteistä yrityksen kehityksessä. Tällä aluella olemme jo erittäin hyviä, mutta siihen ei tyydytä, vaan jatkuvasti haetaan parannusta."
"Erityisesti näen hyvänä sen, että ryhdytään konkreettisiin toimiin jo ihan toimivan työympäristön parantamiseksi. Esim. uusi toimintatapa, jossa työntekijöiden uratavoitteet ovat julkisia ja kuukausittain keräännytään tiimin kesken käymään läpi, mitä kukin on tehnyt niiden eteen ja erityisesti mitä työkaverit voivat tehdä auttaakseen muita kehittymään haluamallan tavalla."
"Nutritional company breakfast with colleagues on Wednesday mornings."
"Everything works: great support and IT infra."
"Company past-time events are great and kick ass."
"Olin juuri kahden kuukauden diplomityöleirillä, jonka aikana sai siis keskittyä kirjoittamaan diplomityötä ja maksettiin myös palkkaa. En ole kuullut, että missään muualla olisi tällaista. Työtehtäväni vastaavat sitä mitä tekisin vapaa-ajallanikin (grafiikkaa ja koodausta), joten ei tämä hirveästi työltä tunnu."
"Omassa asemassani olen saanut etsiä oikean porukan ympärilleni ja rakentaa toimintaa hyvin vapain käsin, sopivasti ylimmältä johdolta coachausta ja suunnanvahvistusta saaden. On hyvin vaikea kuvitella työpaikkana mitään mielekkäämpää positiota ja työympäristöä kuin meillä on."
"Onnistumisista, pienistäkin, palkitaan Jolt-colalla! Pieni mutta hieno ele hyvin tehdystä työstä!"
"Firmassa on erityisen rento ja rehellinen asenne. Samalla kuitenkin työhön suhtaudutaan vakavasti ja ammattimaisesti. Täällä ei tarvitse yrittää  tai esittää mitään. Riittää, että tekee työnsä hyvin."
"opiskelun ja työn yhdistäminen onnistuu erinomaisesti, FutuFriday on loistava, tiimin action-päivät oikeasti hauskoja, täällä on vapaus valita parhaat työkalut ja olen ylpeä ollessani töissä Futuricellä"
"Organisaatio ei ole kovin hierarkinen, ja jokainen työntekijä voi halutessaan ajaa mielestään hyviä sisäisiä hankkeita eteenpäin. Ylemmältä johdolta ei ole välttämättä tarvetta hakea hyväksyntää, ellei hankkeeseen kulu erityisen paljoa resursseja."
"Pääse vaikuttamaan omiin tehtäviinsä, on riittävästi erilaisia tehtäviä eri makuun, johto kuuntelee kun sille puhuu ja myös kertoo uutisia kun niitä on, IT-palvelut toimii hyvin."
"Parhaat ihmiset! :)"
"Pyrkimys autonomiaan mahdollisimman monissa asioissa, luottamus työntekijöihin on todella suuri."
"Kaikki työntekijät tietävät jatkuvasti, miten firmalla menee taloudellisesti."
"Firman strategiaa luodaan yhdessä, ei pelkästään johtajien tornissa niin kuin useissa muissa työpaikoissa."
"Pystyn kehittämään ammatillista osaamistani työn kautta ja vaikuttamaan sen suntaan. Aamupalat, tiimilounaat ja muut yhteiset tapahtumat ovat luoneet hyvin hengen."
"Pystyn kieltäytymään työtehtävistä, joita en eettisistä syistä pidä mielekkäinä"
"Se että kaikkia työntekijöitä kuunnellaan ja kaikki ovat tosi mukavia tyyppejä!"
"Siitä huolimatta, että organisaatio on kohtuullisen iso, työntekijät voivat halutessaan tehdä työtehtäviä parhaaksi katsomallaan tavalla. Samaan aikaan toiminnalle annetaan kuitenkin tarpeelliset raamit, joiden puitteissa toimia."
"Sosiaalisuuden kultivoiminen: palkkapäiväpizzat, yhteisaamiaiset, yhteinen kahvitauko jne."
"Success and extra efforts are being honored and well communicated. One's well being is important to people around, problems can be openly discussed and solved together. I feel this company is doing really well with their employees and customers, communication is at the heart of everything, making it a great basis for resolving conflicts and tackling problems early. Colleagues are helpful and the overall atmosphere is extremely pleasant."
"Systemaattinen työntekijöiden hyvinvoinnin ja viihtyvyyden huomioonotto - strategiatasolle asti. Kannustetaan miettimään työntekijöiden näkökulmaa kaikessa päätöksenteossa. Motivoituneet ihmiset HR-porukassa katsomassa, että asiat hoituvat, niin kuin pitää."
"Täällä ei koskaan haeta syyllisiä eikä rähjätä, mistä syystä epäonnistumista ei tarvitse pelätä. Tällöin on helpompi kokeilla uusia alueita/tehtäviä, joissa ei ole aiemmin toiminut. Lisäksi organisaatio on hyvin matala ja itseorganisoituva - tästä syystä kysymykset koskien uralla etenemistä ja johdon onnistumista työtehtävien koordinoinnissa tuntuivat hassuilta. Muita etuja: keskiviikkoaamiainen, palkkapäivän pizza, perhejuhlat lapsille, työntekijöiden, tiimien tai projektien virkistystilaisuudet, mahdollisuus käyttää saunaa, keittiötä, biljardipöytää ja pelikonsoleita ilmaiseksi yksityisiin tilaisuuksiin työajan ulkopuolella, urheilutoiminta."
"Täyttäessäni noita vastauksia pysähdyin miettimään, kun koko ajan tuli vain täysin samaa mieltä, että onko todella näin. Kävin vielä uudelleen kaikki sen sivun kohdat läpi, ja kyllä: täällä nähdään paljon vaivaa juuri noiden asioiden eteen ja tulokset ovat hyvät. Maailma olisi parempi paikka, jos tämän kaltaisia työpaikkoja olisi enemmän :)"
"The best thing about working in Futurice is being part of a great culture of openness and transparency. Everyone can talk openly with everyone and almost all company information is shared with everyone. Also, special care is taken that everyone feels great at work - and feedback is taken seriously into account and actions are taken when something needs to be improved."
"Toimiston vahva identiteetti ja me-henki. Seinille itsekseen ilmaantuvat hupikuvat. Mahdollisuus bändin kanssa treenaamiseen toimiston tiloissa. Mahdollisuus kysyä ja pyytää apua keneltä tahansa ja saada apua; ei keskinäistä kilpailua vaan yhdessä tekemistä ja toistensa auttamista. Mahdollisuus vaikuttaa omaan työympäristöön ja tulla kuulluksi. Jokaisen henkilökohtaiset rupattelut toimitusjohtajan kanssa. Aktiivinen puuttuminen ongelmakohtiin, jos niitä ilmenee. Aamupala viikottain ja pitsaa palkkapäivänä. Joustavuus työajoissa ja -oloissa."
"Transparency from top to bottom, no bureaucracy."
"Tunnen, että olen täällä pitämässä hauskaa kavereiden kanssa, en tekemässä työtä. Silti, tai juuri siksi, työ sujuu paremmin kuin missään aiemmassa työpaikassani."
"Työkaverit ovat poikkeuksellisen hyviä tyyppejä. Päätöksenteko on kaikilla organisaation tasoilla erittäin läpinäkyvää"
"Työkaverit ovat todella päteviä työssään. Koen, että minua ja osaamistani kunnioitetaan täällä. Haluamme yhdessä olla ylpeitä siitä mitä saamme aikaan täällä."

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/heO3IW40H18Ce Anni T. annitiina Anni T.
Thu, 02 Feb 2012 05:08:00 -0800 Designing and building apps for four platforms in 50 hours http://blog.futurice.com/designing-and-building-apps-for-four-platform http://blog.futurice.com/designing-and-building-apps-for-four-platform

A couple of weeks ago, together with Restaurant Day volunteers, we organized a weekend-long camp at our Helsinki office. Our goal was to create mobile applications for the Restaurant Day concept.

A quick introduction to Restaurant Day (or Ravintolapäivä as it's known in Finland): it's a day during which people are encouraged to set up a pop-up restaurant. It was organized for the first time last May, and has seen spectacular growth, both in popularity and geographically. The whole event is organized by volunteers, and as such there is no commercial pressure involved. Everything is done for the love of food and the rush of organizing something great.

Close to 20 people signed up as volunteers to come help design and build the mobile applications. In addition to IT professionals – coders and designers – we also had excited people from completely different fields participating. They were interested in how mobile applications are built and wanted to help out in some way.

Based on the areas of expertise of the volunteers, we set ourselves a challenging goal. We would build applications for the iOS, Android, Windows Phone 7 and Symbian^3 mobile platforms. Making the goal even more challenging was our hard deadline: the next Restaurant Day was three weeks away, on the 4th of February. With the different application store review processes, this meant that we would have to submit our applications by the end of the following week.

On Friday, we focused on design. After introductions, we had an ideation phase, followed by MoSCoW prioritisation by Jyrki, the Restaurant Day CTO and our official product owner. The group then split up into platform teams (backend, iOS, Android, WP7, Symbian) to start setting everything up while the UX team drew up the first version of the general wireframes. These were presented, after which platform-specific UI tweaks were taken into consideration. The back-end team also drafted up some API specs. We finished the evening with a sauna and a trip to Kaunis Kampela, the local bar.

On Saturday, coding began. The UX team started making graphics and tweaking the wireframes. We had checkpoints during which everyone presented what they had achieved and others gave feedback. Lunch and dinner flew by, and coding stopped sometime after 01:00.

Coding continued on Sunday along with UI tweaks, checkpoints, food and drinks. At around 17:30, we had a final demo. The results:

496578063

During the following week, we did some further testing, made some minor user interface tweaks and finally submitted the applications for review. Today, the last application received its stamp of approval from Microsoft, and all of them (along with a video recap of the weekend) can now be found at the Restaurant Day site.

The mobile camp weekend was a real eye-opener. It is a perfect showcase of how much can be accomplished in an extremely short timeframe with a clear vision, the right technology, tools and skilled people operating them. I believe that one crucial factor – in addition to having great participants – was having a product owner who had the final say in what would be done. Lots of great ideas were thrown around, but with such a tight schedule, we had to throw excellent ideas out of the window. Let's hope to see them in version 2.0!

I want to thank all the participants for making the weekend a success, and hope that the new mobile dimension will make Restaurant Day even more enjoyable for all participants. Enjoy your culinary experiences this upcoming Saturday!

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1113424/face-square.jpg http://posterous.com/users/heNYvnKn6YMDU Ville Saarinen vsaarinen Ville Saarinen
Wed, 18 Jan 2012 00:12:49 -0800 Five environments you cannot develop without http://blog.futurice.com/five-environments-you-cannot-develop-without http://blog.futurice.com/five-environments-you-cannot-develop-without

How do you achieve high quality, satisfied users, happy developers, and minimal downtime when developing a live digital service? Sufficient conditions for these goals are yet to be discovered, but you'll have a hard time achieving any of them without proper environments.

Then, what is the proper set of environments for server-side software development? Here's our take on the matter.

Development
This is where you write code. The product you're building can be run here, and any changes to it can be tested with minimal delay. Integrations to external services are replaced with mockups or stubs to avoid daily work being interrupted by network issues or server downtime. In particular, any databases are local. However, highly available public services may be used as such.

Continuous Integration
Continuous Integration (CI) builds your product and runs all automated tests as soon as anything changes in the codebase. Failures are reported immediately. CI also runs end-to-end integration tests.

Testing
The Testing environment used by dedicated testers doubles as a production-like playground for developers. External integrations are by default set up to staging-level versions of other services. Developers can experiment with and try out new integrations here—this environment is also known as Integration Testing.

Demonstration
This one's optional. Depending on your approval process, the demonstration environment can be used to allow for stakeholders to review changes on their own schedule before approval for production.

Staging
This one goes by many names: staging, QA, or pre-production. If a release breaks something in production, it will break identically here. Thus the staging environment is set up exactly like production (except for necessary configuration parameters), and kept like production between releases. Mysterious production issues can be debugged here. Dedicated testers can also use this environment.

Production
The real deal. Never ever modified in any way without rehearsing in staging first. Regular clean-up is scheduled for accumulating data, such as logs and temporary files.

We've found that this set helps developers to come up with the best technical solutions and resolve issues quickly, and users will only ever notice a new release by the product's increased awesomeness.

Do you think we're missing something essential? Is there something you would leave out?

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1565831/photoo.png http://posterous.com/users/cPQl7ymh4zeKC Olli Ahonen oaho Olli Ahonen
Mon, 19 Dec 2011 06:48:00 -0800 BHAG: About People and Goals http://blog.futurice.com/bhag-about-goals-and-people http://blog.futurice.com/bhag-about-goals-and-people

When you are just a couple of people starting up a company, your goals are often straightforward and well understood. But as your company grows and becomes too big to have everything work without effort, it is time to think about what brings everyone together as a group of people and what the purpose of the company is. Here I am not talking about the legal entity 'company', whose goal it is to generate profit, but about the people. Why do they get out of bed – just to get a paycheck each month? For the sake of your long term success, I hope the answer to that is not "yes". 

For those who are unsure about the validity of this claim, here are some links to check out:

http://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action.html

http://www.amazon.com/Start-Why-Leaders-Inspire-Everyone/dp/1591842808

http://hbr.org/1996/09/building-your-companys-vision/ar/1

So also began Futurice's discovery to the "why". I specifically use the word discovery because your long term identity and goals should flow from who you are. It should not be an invented why.

One of the elements in this discovery is our BHAG (big, hairy audacious goal; see wiki: http://en.wikipedia.org/wiki/Big_Hairy_Audacious_Goal). Initially, we had several closed discussions about the subject, but we couldn't shake off a nagging feeling that we were doing it wrong. So we decided to do it differently, and make use of all the bright people in our company. 

The format we ended up with was an election. From our previous discussions, we had three rough outlines of possible goals, and asked three people to represent them. The candidates will gather campaign teams that will start the discussion to improve those rough goal outlines to their finalized form. During the campaign, we will discuss and try to answer questions like "What are the merits of this particular goal?", "Why does it fit Futurice's values?", "How do we know that we have reached the goal?", "How does this goal make the world a better place?", etc. After the discussion – which, of course will include an election debate – it is time to vote and set our long term goal. 

Why did we choose an election? Two reasons. First, it involves everybody. Everyone has the chance to have their voice heard as to what we should be striving for. The second and maybe most important reason is the resulting discussion. Discussion leads to discovery, and discovery leads to better decisions. The combination of the two ensures that the outcome has been thoroughly scrutinized and has broad support.

Your long term future is too important to be decided by a couple of people sealed off from everyone else. The discussion should be out in the open, involving everybody and the outcome should be supported by more than just management. We have a company which values trust and taking responsibility. We try to recruit the best and brightest with an interest reaching far beyond their own desk. It would simply be silly not to use that huge potential to shape our future.

Currently we are forming the campaign teams and defining the candidate goals. After the New Year we start the campaigns, and voting will most likely take place in March.

Follow our efforts to discover our future by following us on twitter http://twitter.com/futurice or keep an eye on this blog for updates on the Futurice goal election.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1709591/Me.png http://posterous.com/users/hdojCA6M27JsC Peter Tennekes petertennekes Peter Tennekes
Mon, 12 Dec 2011 08:31:00 -0800 Mobile HTML5: Why and How? http://blog.futurice.com/mobile-html5-why-and-how http://blog.futurice.com/mobile-html5-why-and-how

Here is a quick 14 minute introduciton to mobile application development, why it is (finally) real and how to specify your projects and deploy your applications to best effect. This was an internal Futurice presentation from Helsinki, simulcast to Tampere and Berlin.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1469602/paul_headshot.jpg http://posterous.com/users/heOPKTDe657ho Paul Houghton phou Paul Houghton
Mon, 14 Nov 2011 23:49:00 -0800 Useful Django Resources http://blog.futurice.com/useful-django-resources http://blog.futurice.com/useful-django-resources

At Futurice, we use Django rather heavily for internal tools such as reporting, virtual machine management and integration between miscellaneous systems. Django enables very rapid development and includes a large number of modules and plugins. In addition, Django documentation is outstanding.

There are a few tools that I believe everyone using Django should be familiar with: South (database schema migrations), Sentry (error reporting) and Reversion (model version history).

South creates database migrations automatically with only a few commands. Without South, changes require running SQL ALTER statements manually or deleting database tables and recreating them (after creating a backup first, and then restoring it, of course). Taking South into use is really simple: just add "south" to the project settings (under INSTALLED_APPS) and run the initial schema migration, which just records current models. After changing models, applying changes to the database requires just two commands:

./manage.py schemamigration <app name> --auto
./manage.py migrate <app name>

This preserves all information in the database, assuming no field was truncated or deleted. So, for example, changing a field from integer to float is fine, but not necessarily the other way around.

South migrations are Python files stored inside the Django app, with names like "0012_auto__del_field_comments__chg_field_timestamp.py". That's the 12th migration that was automatically created which deletes the "comments" field and changes the "timestamp" field. South can also handle data migrations: for example, if the timestamp is stored in Unix time (seconds since 1.1.1970) in an integer field, a simple South migration can handle adding a proper DateTime field and converting the timestamps. One caveat with sqlite is that it doesn't support altering unique constraints. However, South gives a warning message when it encounters this - so it's not a hidden surprise to be detected later on.

Sentry is a generic interface for browsing exceptions thrown by Django or by any other Python application. By default, Django emails every single error report to the developer's email address. This is quite annoying with a busy web application: it might send hundreds of emails within a few minutes. Sentry handles this problem by grouping identical error messages as one. In Sentry, "identical" means an error with same traceback, not per client IP address or similar details.

Sentry is installed by adding it to INSTALLED_APPS and adding the middleware to catch exceptions. When running multiple Django applications, a centralized Sentry server is useful. In Futurice, one Sentry server provides access to nearly all Django application error reports (about 15 different applications). The Sentry UI works well, with added Ajax niceties. No system is perfect though: different versions of the Sentry server and client do not always work nicely, and, in case of problems, it fails silently.

Reversion handles version control for objects in the database. Basically, if any object is modified, Reversion saves modifications and allows reverting to old versions. Integration to other parts of applications goes through middleware (adding a single line to the project settings file) or with decorators (for saving changes only in specific methods) or by using "with" statements (for saving changes only in specific places). The easiest way to browse the version history is through the Django admin interface. Reversion even adds automatic comments to versions: for example "Changed description" when the description field was updated.

Of course, there's a long list of other useful packages and tools. Just to list a few: virtualenv, django-debug-toolbar, django-annoying and haystack.

Hopefully you found a new useful Django tool with the post that will make your development efforts easier in the future!

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1627777/ojar_square.png http://posterous.com/users/heOudiyd4X7Um Olli Jarva ojar Olli Jarva
Tue, 08 Nov 2011 01:16:00 -0800 Woo, our brand book is done! http://blog.futurice.com/futurice-story-is-here http://blog.futurice.com/futurice-story-is-here

We got our brand book done! We found that it was hard to catch the idea what the book should be like because examples are poorly available, so here is ours: http://www.futurice.com/brandbook.pdf . Hopefully this is useful to others.

The book has three purposes:

  • To show the origin of our brand
  • To clarify Futurice’s brand essence and brand personality
  • To provide brand guidelines for our communication

Here is how the brand story goes:

Three engineers walked into a bar...

It all began with a few engineering students doing what they do best: creating interesting things through clever coding. This small group of friends had a passion for using the latest technology to create smart, convenient, and exciting solutions to everyday problems.

They were devoted to their creations and felt a sense of real ownership and responsibility for what they made and what it could do. Satisfied clients spread the word about the new, resourceful, and down-to-earth player in the market.

One engineer said...

The friends were excited to realize that the approach that they offered – fresh, unpretentious, clever – was one of the main reasons that people wanted to work with them.

They figured, “Let’s get this going. Let’s make it happen. But let’s promise never to get stuck on the corporate conveyor belt.” They wanted to stay inspired – to run a flexible, thoughtful, outward-looking business, not a code factory.

To get the best results they realized they’d need to create multi-talented teams made up of all sorts of skillful and gifted people.

When the engineers left the bar...

...they took a few friends with them, including, down-to-earth artists from the school of art and design, entrepreneurial businesspeople, and energetic individuals from all sorts of fields. Futurice emerged out of its modest beginnings and into the corporate world.

New, young, gifted students – not just engineers – start at Futurice every year: we take on people who are energetic, eager to learn, and who aren’t jaded by the industry.

Our roots are in engineering, but we see our engineers as designers, sculptors of ideas, and social architects. And regardless of our backgrounds, we’re all working together to engineer a new future with our customers.

They started a journey...

And it’s getting more and more interesting.

Because for Futurice, software design is not just about solving immediate problems, it’s about positively influencing the bigger picture for our clients. We want to provide options, broaden horizons, change mindsets, and give our clients new tools and new perspectives on the way they operate.

At the ten-year mark Futurice had around 150 employees and a global client base. Our designs continue to incorporate sensitivity and human understanding, and consider all angles of the user experience.

We consider the social impact of the designs we create, and we trust that intuitive design will stimulate renewal in the tech-driven engineering world.

But they stayed in touch with their roots.

While we continue to grow, and the future’s looking fantastic, our down-to-earth attitude and entrepreneurial spirit never changes.

Our capacity to constantly evolve, adapt, and evaluate our own work practices to better serve our clients makes us an eternal start-up, no matter how big we grow.

So, how many engineers (and their friends) does it take to change an industry?

We don’t know yet, but we’re dedicated to finding out.

 

To read more, download our brand book at http://www.futurice.com/brandbook.pdf

What is your own story? :)

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/heO3IW40H18Ce Anni T. annitiina Anni T.
Mon, 07 Nov 2011 03:54:00 -0800 One Click Taxi Order http://blog.futurice.com/one-click-taxi-order http://blog.futurice.com/one-click-taxi-order

Ordering a taxi should be as easy as purchasing things from Amazon, right? That's what we made to our office lobby.

Img_1133

Pressing the button orders an SMS taxi to our office. Display shows order status and after taxi confirms the order, taxi number.

List of parts:

  • Taxi post from Trafino, about 200€
  • Mobile broadband USB stick (Huawei E230), for sending and receiving SMS messages, 80€
  • Button from internet, 10€
  • Arduino, for connecting button to computer, 20€
  • Cable for connecting button to Arduino

In total about 310€ plus small desktop computer and display. Our display also shows bus timetables for nearby bus stops and weather information for our offices in Helsinki, Tampere and Berlin. Bus timetables require HSL API key. Weather information uses weatherbug API

We put up github repository for the code with some very short instructions. Whole system was put together just before our annual party, so it's not particularly production quality code. It's licensed with GPLv3, so feel free to use and modify it.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1627777/ojar_square.png http://posterous.com/users/heOudiyd4X7Um Olli Jarva ojar Olli Jarva
Tue, 01 Nov 2011 06:49:00 -0700 Let’s contribute! http://blog.futurice.com/lets-contribute http://blog.futurice.com/lets-contribute

The drive to give something back to society–or to contribute–is not an isolated trend. There are countless examples out there of people contributing some of their time and resources to causes they believe in. Especially in a wealthy society like the Finnish one, and especially for people working in privileged fields like IT, it’s not uncommon to find people who just want to give something back, one way or another.

I was once more a witness of this growing trend last weekend, when a group of 20-or-so very inspiring individuals got together at Hub Helsinki and spent 48 hours coming up with new concepts on sustainability. It was the Global Sustainability Jam, and the group in Helsinki was one of the 42 groups taking part in the event all around the world.

As one of the organizers of the Helsinki event I wanted to see if there was anything Futurice, my company, could do to help us out. Some food and drinks never hurt in an event like this, and that was something easy to ask for. More importantly, though, I’m interested in finding a model in which companies can get involved in these events and do their share of contribution, and at the same time make it easier for people to contribute without compromising their work-life balance. So, some of my company time was another thing I wanted to ask for.

Knowing how careful we here at Futurice need to be with our budgets, I wasn’t expecting anything to be just handed out, so I prepared a good list of arguments of how a sponsorship might benefit our company. I made sure I put everything in terms of Futurice benefitting, and not in terms of pro bono contribution.

But to my surprise, I had jumped to conclusions way too fast. After a series of discussions about the project and our potential involvement, I was finally told: “Oh, now I understand. This is about contributing to a cause, not about marketing. Well, why didn’t you say so? Just take what you need as long as it’s reasonable”

As it turns out, contribution is a possibility with companies as well. Maybe it’s not always that visible, and maybe it’s not a value shared by everyone in a company, but it’s certainly possible!

So here is what I learned from this and wanted to share with all those “contribution enthusiasts” out there, be them in Futurice or any other company:

 

  1. Ask and you shall receive. Don’t just assume that your company only cares about profits and whatever other business objectives. Just take initiative, and you might be surprised of the outcome.
  2. There are many like you out there. Don’t think you’re the only one who wants to contribute in your company. You’ll be surprised at how many others might have similar motivations, even people in very high positions.
  3. Let’s not keep this as a secret, there’s nothing to be ashamed of. I can only imagine the impact we could have if contribution was a bit more out in the open…

So, let's contribute more together and see you at the next jam!

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/cPumGLtbT4cSm Sebi Tauciuc stauciuc Sebi Tauciuc
Thu, 27 Oct 2011 03:13:44 -0700 The first production deployment is the hardest http://blog.futurice.com/the-first-production-deployment-is-the-hardes http://blog.futurice.com/the-first-production-deployment-is-the-hardes

It's funny how some traits in software development are always present, no matter how small the development effort. One of these is the ever-surprising difficulty of the first production deployment.

Last week, I updated the layout of this very blog. We had decided to add a couple of things, reposition something, update the fonts, and so on. With Posterous, all of the "advanced" modifications are a matter of editing the blog template—that is, a raw HTML and CSS file which dictates the layout.

As the old layout was not that far from the new one, I decided to start with the existing template and gradually evolve it to the new look. Obviously, the blog would appear horribly broken in between, so I set up a development environment of sorts: another blog on Posterous. I then copied the existing template to my fresh development environment, where I could upgrade and tweak the layout until the whole thing looked beautiful.

When I was content with the layout in the development environment, I copied the entire template back to production, i.e., our actual blog. And it didn't quite work.

Contrary to what I had assumed, not everything about the layout is determined by the template. A so called accent color is defined outside of the template, an innocuous tag caused the template to render differently if a standard header image was uploaded to Posterous even if the image wasn't used, the fonts were all quirky, and so on.

All of these issues were easily solved, but nevertheless a whole bunch of work popped up at the production deployment step, where I thought I was done save for a quick copy-paste. If the first production deployment caused so much unpredicted extra work in such a small project, imagine the consequences of postponing the first deployment in a large development project, where efforts are measured in weeks instead of hours.

So get that first production deployment out of the way as soon as possible, with just the smallest value-adding increment, and you can cross one major project risk off the list!

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1565831/photoo.png http://posterous.com/users/cPQl7ymh4zeKC Olli Ahonen oaho Olli Ahonen
Fri, 14 Oct 2011 01:40:41 -0700 Backups at Futurice http://blog.futurice.com/backups-in-futurice http://blog.futurice.com/backups-in-futurice

Greetings from the IT team! I thought I'd quickly describe how we handle backups at Futurice. In short: we try to backup everything and keep a decent amount of history.

For servers and virtual machines, we have two backup servers running BackupPC, located in Helsinki and Espoo. All virtual servers - even "I'll just test this, it's not important at all" testing servers - are automatically backed up daily without doing anything manually. BackupPC deduplicates backups, meaning that identical files take up space only once. BackupPC keeps backups almost indefinitely, but the interval between backups grows. In our configuration, daily backups are kept from the previous week, bi-daily ones after that for a few weeks, then every four days for a few months, once a week for year, and finally once a month forever. Of course, we have special configurations for some hosts that require more or less backup history.

In addition to the BackupPC hosts, we make USB disk offline backups four times a year of all irreplaceable data: version control, network disk, wiki, issue trackers, configuration files. Those disks are transported to a bank safe. In case of a huge catastrophe (for example, simultaneous fires in Espoo and Lauttasaari), we would lose at most 3 months worth of data. This is, of course, a very bad situation, but it won't bring the whole company down.

For laptop backups we have a separate server with a large disk rack. Every employee can create new virtual backup disk with a simple web interface. It supports AFP and Samba for Mac OS X Time Machine or Windows Backup. The hardware is made up of a cheap disk rack with 16x 750GB SATA disks in RAID5 with one hot spare drive. The disk controller automatically tests disks and the hot spare periodically, so we shouldn't have an unpleasant surprise with both a broken RAID system and a broken spare disk.

For the BackupPC servers, we use 15TB of RAID5 storage running on slow SATA disks. Currently, we have 214 hosts backed up with almost 1500 full backups and 1000 incremental backups, totaling almost 67 000 000 files and 21TB of non-deduplicated backups. After deduplication and compression, this is reduced to less than 2TB. The rest of 15TB disk space is not wasted, since our surveillance camera images and other miscellaneous files go to the same servers.

Ages ago, our backup server was an old desktop computer with a large disk running in the corner of our office. Back then, there were only a few hundred gigabytes of backups. When the time came to find a larger solution, we evaluated different backup solutions. We decided that, for our environment, tapes or commercial backup software didn't offer us enough benefits to outweigh the costs. Using tapes requires more manual work - changing tapes, keeping track of used tapes and ensuring that restores are working. With BackupPC, restoring data for testing purposes is a straightforward task, and does not require any interruptions to running backups. A large enough tape library with a changing robot was prohibitively expensive. As for commercial backup software solutions, having secure, incremental, deduplicated backups on a Linux server was simply not available for a reasonable price. Also, the possibility to backup new virtual hosts automatically was not possible with a reasonable amount of effort. Our solution of having a server with large disks was much more flexible, easier to setup and more cost effective.

 

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1627777/ojar_square.png http://posterous.com/users/heOudiyd4X7Um Olli Jarva ojar Olli Jarva
Sun, 09 Oct 2011 22:59:00 -0700 Julkishallinnon tietotekniikka on päivitettävä 2010-luvulle http://blog.futurice.com/julkishallinnon-tietotekniikka-on-paivitettav http://blog.futurice.com/julkishallinnon-tietotekniikka-on-paivitettav

(This is a longer version of the letter published in Helsingin Sanomat on October 8th, 2011. In Finnish only, sorry.)

Viime viikkojen julkisen sektorin tietotekniikkauutiset ovat olleet karua luettavaa: VR:n uusi lipunmyyntijärjestelmä ei toiminut ja lisäsi junamatkaajien ahdistusta, ja terveydenhuollon sähköisten reseptien järjestelmä piti ottaa tuoreeltaan pois käytöstä. Miten on mahdollista, että Suomi, joka on monilla mittareilla tietoyhteiskuntien edelläkävijä, tuntuu haaskaavan verorahoja epäonnistuneisiin tietotekniikan jättihankkeisiin?

Kirjoituksessaan (HS Vieraskynä 23.9.2011) Pekka Abrahamsson ja Mikkonen tuovat osuvasti esille keskeisen piirteen tietotekniikasta osana liiketoimintaa: tietotekniikka ei ole enää pelkkä tukitoiminto vaan yhä useammin liiketoiminnan ytimessä. Kirjoittajat ehdottavat, että yritysten ei pidä ulkoistaa ydintoimintojensa tietotekniikan rakentamista, vaan tehdä asiat itse. Tämä on kuitenkin usein helpommin sanottu kuin tehty. Onko esimerkiksi VR:n kaltaisen yrityksen järkevää hankkia itselleen ja pitää itsellään tietoteknistä osaamista? Vai onko VR:n järkevämpää ulkoistaa tämä osaaminen muualta ja tehdä tiivistä yhteistyötä ohjelmistotoimittajien kanssa?

Viime aikaisten tietotekniikan kauhukertomusten taustalla olevat syyt eivät ole siinä, että ulkoistaminen olisi automaattisesti huono asia. Hyvä ulkoistaminen on yhteistyötä ja kumppanuutta, eikä ydinosaamisen siirtämistä alihankkijan ratkaistavaksi. Ulkoistamisen sijaan julkisen sektorin epäonnistumisen syynä on tietotekniikan nopea kehitys sekä julkishallinnon kilpailuttamissäännöt.

Epäonnistumisten taustalla on 1990-luvulle jämähtänyt käsitys tietotekniikasta. VR:n lippujärjestelmän sekä sähköisten reseptien tapauksessa kyse on jättimäisistä projekteista ja kymmenien miljoonien investoinneista, jotka liukuvat jäävirran nopeudella harmittavan usein kohti epäonnistumisia. Tilanne on kuin kaksikymmentä vuotta vanhasta tietotekniikan oppikirjasta, jossa hankkeille on tyypillistä paisuvat budjetit, kankeat toimintatavat, käyttäjien unohtuminen suunnittelussa ja kymmenien insinöörien ryhmät ratkaisemassa oman alueensa ongelmia ilman käsitystä kokonaisuudesta.

Tietotekniikka on muuttunut merkittävästi 1990-luvulta. Ohjelmistojen rakentamisen kynnys on madaltunut valtavasti ja nykyään lähes kuka tahansa voi alkaa ohjelmoida ja laittaa tuloksiaan myyntiin verkon sovelluskauppoihin. Kun nuorten muutaman hengen voimin rakentamista ohjelmista kasvaa maailmanlaajuisia, kuten suomalainen Habbo Hotel, niin on selvää että ohjelmistokehitys ei vaadi suuria alkuinvestointeja. Nopea ja kevyt rakentaminen tekee mahdolliseksi kokeilut ja muutokset, ja siten tietotekniikkaa voi suunnitella entistä enemmän käyttäjien ehdoilla. Lisäksi kun ohjelmoinnin työkalut ovat joko ilmaisia tai erittäin halpoja niin miljoonien budjetit ja vuosien aikataulut ovat historiaa – tai ainakin niiden pitäisi olla.

Tietotekniikan toimittajien maailmassa tämä muutos näkyy sukupolvenvaihdoksena niin sanotun vanhan koulukunnan ja uuden koulukunnan välillä. Vanhan koulukunnan edustajia ovat tyypillisesti suuret konsultti- ja alihankkijayritykset, jotka on perustettu vuosikymmeniä sitten. Uuden koulukunnan edustajat ovat 2000-luvun nuoria, joiden toimintatavat heijastavat nykyajan tietotekniikan ominaisuuksia: kevyttä, nopeaa ja käyttäjälähtöistä rakentamista, joka on edullista toteuttaa.

Uuden koulukunnan sukupolvi ja yrityskulttuuri on samaa kuin innovatiivisten startup-yritysten: työstä nautitaan ja korkea laatu sekä mutkaton toteuttaminen koetaan ammattiylpeytenä. Työstä nauttimisen ja korkean ammattietiikan seurauksena on, että hankkeet onnistuvat lähes aina ja asiakastyytyväisyys on huippuluokkaa.

Julkishallinnon tietotekniikan hankkeiden päivittäminen 2010-luvulle vaatii uuden tavan ajatella: pieniä matalan riskin projekteja, jotka kestävät kuukausia eikä vuosia, jotka maksavat murto-osan siitä mitä ennen, ja jotka valmistuessaan täyttävät oikeasti käyttäjien tarpeet. Tämä ajattelu mahdollistaa aivan uudenlaisen alihankinnan, esimerkiksi kilpailuttamalla useita toimittajia rinnakkain tai kokeilemalla mikä on paras mahdollinen vaihtoehto. Niillä investoinneilla, jotka esimerkiksi VR on laittanut lipunmyyntijärjestelmäänsä olisi voinut rakentaa tusinan uuden koulukunnan järjestelmiä.

Mikä estää julkishallinnon organisaatioita siirtymästä tietotekniikassaan 2010-luvulle? Vastaus on kilpailuttamis- ja hankintasäännöt, jotka suosivat vanhan koulukunnan jättihankkeita. Ja kuten Abrahamsson ja Mikkonen kirjoittavat, kiertääkseen nämä säännöt julkisen sektorin organisaatiot on pakotettu silppuamaan alihankintansa pieniksi paloiksi eri ohjelmistotoimittajille.

Vaikka uutisointi on viime aikoina keskittynyt kauhutarinoihin, ei tämä tarkoita, että kaikki julkisen sektorin toiminta olisi vanhanaikaista. Hyviä vastaesimerkkejä ovat Helsingin seudun julkisen liikenteen mobiilikisa, jossa haettiin innovatiivisia uusia ideoita joukkoliikenteeseen, ja Sitran viimevuotinen uudenlainen rinnakkainen kilpailutus. Toivoa antavat myös valtion entisen IT-johtajan, Yrjö Bensonin puheet, joissa hän on peräänkuuluttanut uusia työtapoja ja työkaluja valtion tietotekniikkahankintoihin.

Mutta jotain on pielessä julkisen sektorin jättijärjestelmissä ja jättihankinnoissa, kun niitä katsoo rinnan muun tietotekniikan kehityksen kanssa. Suomeen on kasvanut Nokian seurauksena suuri määrä nuoria ja innovatiivisia tietotekniikan yrityksiä ja ammattilaisia, ja tätä lahjakkuutta tulisi voida hyödyntää julkisen sektorin hankkeissa. Toisin sanoen, samaan aikaan kun kotimaisen raideliikenteen ja terveydenhuollon tietojärjestelmät epäonnistuvat suomalainen Angry Birds valloittaa maailmaa. Milloin Suomelle tulee ensimmäinen julkishallinnollinen tietojärjestelmähitti kansainvälisille markkinoille? Tai edes kotimaisille?

Risto Sarvas, tekniikan tohtori, Futurice Oy ja Aalto-yliopisto
Kim Weckström, yhteiskuntatieteiden lisensiaatti, Avaus Consulting Oy

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1150068/RistoWeb.jpg http://posterous.com/users/heO3QHc1uQhWq Risto Sarvas Risto Sarvas Risto Sarvas
Mon, 19 Sep 2011 08:49:00 -0700 Customer's Role in Project Success http://blog.futurice.com/customers-role-in-project-success http://blog.futurice.com/customers-role-in-project-success

Summary

How can you ensure you will achieve a successful outcome quickly with good value for money? Futurice has performed Bayesian statistical analysis of project success factors using modern mobile and web technologies and our own Agile working methods.

Our recommendations for you, as a customer participating in the development project, are summarized below. These are grouped by how you can influence different aspects of the outcome.

Key Success Factors

As a customer, you are more likely to be happy with the outcome when

  1. You work with the team to make them really understand your service
  2. The schedule is not overly optimistic
  3. New technologies were not adapted into the project

The project will go as expected when

  1. There are no external partners, factors or unknowns that can change the project midstream
  2. You and the team have work together to share your expectations on the outcome
  3. The project has a clear focus and scope

The resulting product or service will be good when

  1. You define very clear goals for the project before we start
  2. You have worked with technical product or service development before
  3. You work hands-on with some aspects of the project along with our team

 The project will be completed in budget when

  1. The project schedule is relaxed
  2. You have worked with technical product development before
  3. The project does not have unknowns and external dependencies
  4. The project is arranged as one larger project run continuously rather than a series of smaller projects which stop and start

Practical Steps For Getting It Right

The statistics can help us predict which projects will succeed in which areas. Additionally, we have developed own working best practice recommendations. When possible, these should be in place at the start of the project to create the preconditions for success.

  1. If the product to be developed is based on an existing product, provide the complete working model to the team. Take an inventory of any areas that are missing or not yet working and carefully schedule when the associated unknowns or external factors will be cleared and ready.
  2. If you are providing the user interface, have a nearly final design ready as 1 or 2 documents before work begins. Delays and changes in external designs are a common cause for delays and poor project satisfaction.
  3. If you, Futurice or a 3rd party is providing a server which is not yet complete or has recently changed, have the server team create a single web page where every server function can be individually tested at any time by the server team, you and Futurice. Incomplete features should also be listed here, clearly indicating what is working at this moment and what is still to come. This high transparency for all parties about the current state of the server clarifies communication and focuses any parallel development toward fixing critical path dependencies.
  4. Meet the team to kick off development with high spirits and shared expectations. Schedule weekly or more frequent updates in advance, and provide prompt feedback or necessary support to keep things moving smoothly and in the right direction.
  5. Plan for and provide the team with your best guess of the product lifecycle, including future updates and additional uses.
  6. Do not try to achieve everything with the first release of a product or service. Do first things first, keep it as simple as you possibly can, and once it is in use immediately continue to the next release based on what you have learned.
  7. Relax and enjoy the process! As a team we should have fun together along the way, with clear and open communication and a bit of humor to lighten each day.

We hope these help you achieve success with future software development projects. If you have any feedback or suggestions for our approach, your thoughts are very much appreciated.

paul.houghton@futurice.com

Head of Mobile Development

Customers_Role_in_Project_Success.pdf Download this file

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1469602/paul_headshot.jpg http://posterous.com/users/heOPKTDe657ho Paul Houghton phou Paul Houghton
Tue, 13 Sep 2011 03:21:00 -0700 Play Scala Test Drive http://blog.futurice.com/play-scala-test-drive http://blog.futurice.com/play-scala-test-drive

Introduction

The Play framework is a fresh, agile Java alternative to bloated enterprise stacks. It focuses on developer productivity and targets RESTful architectures. On the other hand, Scala is a hot new functional/object-oriented, JVM-based programming language. It is fully interoperable with Java, but being more concise and powerful, an interesting alternative for developers.

The Play framework’s goal is to ease web application development, but the default target language is still Java. However, an alternative called Play Scala is in development, which enables you to use the Scala language for your application while keeping key properties of the Play framework. This post sums up the evaluation of Play Scala's default features, or technology choices, and lists a few alternative technologies.

The main focus is on trying things out hands-on, especially the data access layer options.

The Maturity of Play Scala

First of all, I think it’s worth mentioning that there are people (with hands-on Play Scala experience) who feel that Play Scala is not quite as mature as Play Java. That is understandable, as Play started as a Java framework and I guess Java is still the main target. Some of the key guys behind Play, like Guillaume Bort and Sadek Drobi, seem to be fans of Scala and functional programming, so I’m expecting a bright future for Play Scala as well.

Also, while writing thism I found out that Play Scala documentation is not as extensive as Play Java documentation. That will hopefully change in the future.

Play’s Google group has some discussion about the maturity of Play Scala that might be worth reading.

Data Access Layer

One of the most notable differences between Play Scala and Play Java is the provided default data access layer. Play Java utilizes Hibernate (a JPA implementation) to provide access to a database. But with Play Scala, the use of JPA is discouraged and an alternative default data access layer, called Anorm, is provided.

Unlike Hibernate, Anorm is not an ORM. It’s built on top of JDBC and uses plain SQL to make database queries. It provides APIs for parsing and transforming the resulting dataset. That may sound like a step backwards since there are already ORMs that do the somewhat laborious work of constructing SQL queries and handling the resulting dataset. But according to authors of Anorm, when we have the power of a higher level language – such as Scala – at our disposal, there is no need to have an ORM working for us. It may actually start working against us at some point (and that’s true in the Java world as well).

Even though using JPA with Scala is discouraged, some people do it anyway. But the truth is that JPA and Scala isn’t a match made in heaven. There are problems with the way Scala annotations work (although, starting from Scala v2.8, nested annotations are supported), there is no support for Scala collections, there are differences in the reflection API (I don’t know the details) and so on. See the discussion about Play Scala and JPA.

Anorm and JPA are not the only possible data access layers for Play Scala. Some people feel that plain SQL is not the best way to go and one would benefit the most by using a data access layer that uses a (SQL-like) DSL instead. For example, ScalaQuery is an API / DSL built on top of JDBC for accessing relational databases in Scala. It’s referred to as the most mature pure Scala non-ORM database access layer. Pure Scala ORMs exist as well, such as Circumflex ORM.

There is a pretty good introduction to the different alternatives on Stack Overflow: Wanted: Good examples of Scala database persistence.

Hands-on: Data Access Layer

In order to get a better understanding of different data access layer options, I tried out a few of them in real life.

Anorm felt a bit obnoxious. I really don’t mind writing plain SQL, but knowing the benefits of a DSL, I just don’t see the point. In addition, the parser syntax is not very intuitive. Obviously, you just need to learn it, but still, the syntax looks pretty off-putting. After using Anorm, I definitely wanted to try out some of the alternatives.

ScalaQuery was a step up. Installation was a no-brainer. Adjusting to it takes a little bit more time, but I like the Scala-like approach. This shows up in, for example, the way queries are built with using the for comprehension. However, the project documentation is almost nonexistent.

The approach used in the official documentation is to deal with column projections instead of objects (definitely not an ORM). In other words, whenever something is queried from a database, the resulting dataset is not mapped to an instance of the corresponding domain model(s) but to a tuple construct with a variable amount of columns. This leaves out the abstraction of mapping results to objects. However, it is possible, with a little bit of extra work, to handle the mapping, too.

Circumflex ORM: you will need to implement a Play specific connection provider for Circumlex ORM in order to use a Play managed data source. Although this is not too big an effort, it can still be a daunting task for less experienced developers.

Compared to ScalaQuery documentation, the Circumflex ORM documentation is actually quite good.

With my background, Cirumflex ORM was the most approachable data access layer of the three that I tried out. It is also probably the easiest to get used to if you are coming from the JPA world. Note that it would be good to consider using the Criteria API to avoid performance issues when joining several relations.

All in all, Play Scala with the Circumflex ORM was a positive experience. Circumflex ORM is actually being used in the project that I’m currently working on, even though we have had some issues with it (especially with Circumflex v1 and its Oracle dialect). I still recommend it.

JSON Support

Play comes with a JSON library called GSON, but according to experiences that some people have had with it, it may not be the best possible JSON library to be used with Scala. It apparently has problems, at least when dealing with Scala collections.

Fortunately, an alternative JSON library called Lift JSON is available. It comes with the Lift framework, but it’s not tied to it. In other words, it can be used with Play Scala as well.

Just before posting this, I learned that in future versions of Play Scala, GSON is replaced with a library called sjson. However, at this time I have zero experience with sjson but I'm assuming that it does its job well. After all, sjson was chosen over Lift JSON (which was already mentioned on the Play Scala roadmap) to be the default JSON library for Play Scala and I'm confident that there is solid reasoning behind that decision.

Other Features

Just like Play Java, Play Scala features a testing framework and templating engine. Both are different from Play Java: the testing framework is based on ScalaTest and the templating engine uses Scala instead of Groovy and has a design inpired by ASP.NET Razor.

One nice feature of Play is its pluggable modules. CRUD and secure, the modules that come with Play, seem to be especially popular. With Play Scala, however, you seem to be currently out of luck when it comes to those modules. The CRUD module, for example, is JPA dependent.

Alternatives to Play Scala

While writing this, I was left under the impression that Play Scala, being a full stack framework, is more complete and ready for development out-of-box than most of the Scala-based alternatives. That is, after installing Play, you just need to type “play install scala”, “play new [something] –with scala” and “play run” and you have a running web application.

On the other hand, Play Scala still seems a bit immature, especially when compared to Play Java. The documentation of the Scala version is not quite there yet. Plus, if you just need to write a RESTful backend that spills out JSON, you probably do not need all of Play’s features.

In case you are interested, here are a few alternatives that are out there: Lift, Circumflex Web Framework, Scalatra, Unfiltered, spray and Bowler.

Conclusions

Based on my hands-on experiences and comments that I’ve read from the Internet, I can pretty confidently say that Play Scala is ready for (production) use as is. However, not all the nice features of Play Java work with Play Scala. For example, when doing quick demo applications, you might miss the handy CRUD and secure modules. But then again, the power of Scala itself may compensate for the missing features when considering overall productivity.

You might want to consider using alternative components/libraries in place of some of the default ones, especially as it is very easy to take them into use with the Play’s dependency management system.

The default data access layer, Anorm, seems to do its job, but I still wouldn’t use it. I don’t quite buy the arguments of using plain SQL over a DSL. I would probably choose Circumflex ORM as it seems to be the most productive without doing too much magic under the hood. As an alternative, some of the DSLs / APIs built on top of JDBC (like ScalaQuery or Squeryl) seem to work well enough.

For JSON stuff – and I’m saying this purely based on arguments I’ve read from the Internet – I wouldn’t touch GSON. When working with Scala, simply better options are available, such as Lift-JSON or sjson.

But overall, I’m giving a thumbs up for Play Scala!

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hd2vCUNS8kvG2 eelijokinen eelijokinen eelijokinen
Wed, 07 Sep 2011 12:27:00 -0700 Berlin ist in http://blog.futurice.com/berlin-ist-in http://blog.futurice.com/berlin-ist-in

I visited quickly Finland this week to kick off the autumn together with my colleagues from Helsinki, Tampere, Berlin and London. First thing I saw in Helsinki downtown was this huge Stockmann campaign yelling BERLIN IST IN!

Berlinistin
Well, having lived here now for almost two years I have to agree with that. In addition to the very special lifestyle, Berlin is really becoming the mobile and Internet capital of Europe. Something cool is happening every day. Today Futuriceans were seen at IFA (the world’s largest tradeshow for consumer electronics and home appliances) and ALE2011 (unconference for agile and lean enthusiasts), next month we will be at JSConf, Microsoft Tech Talks and so on. Although none of the traditional German Top30 companies are located in Berlin, the city is known for its hot start-up scene. Music services such as Soundcloud and Aupeo or social game developer Wooga (to name few) all come from Berlin and have attracted investors such as Index Ventures, Accel, or Madonna’s manager Guy Oseary to invest in Berlin start-ups.

Recently Futurice Berlin team was strengthened by two very important people. Vera Welz started working as a HR-coordinator helping us not only to manage with the German bureaucracy but to become the best European work place and to find the best technical and creative talents while we grow in Germany. Moreover, our new business development manager Moritz Peitzsch is already spreading the word for all the interesting companies in Germany about our latest projects around mobile HTML5, Android, iOS, Qt, WP7, Web, Automotive IVI design & development, etc.

This summer was maybe not the best one in Berlin, if we talk about weather, but right now I believe that the autumn will be really hot in here :)

Sampo

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1445904/sham.png http://posterous.com/users/hd2l1sRbXAZnk Sampo Hämäläinen sampoha Sampo Hämäläinen
Tue, 06 Sep 2011 21:56:00 -0700 Reaktor Dev Day http://blog.futurice.com/reaktor-dev-day http://blog.futurice.com/reaktor-dev-day

Last Friday, I participated in a magical conference: Reaktor Dev Day. The world-class keynote speakers included Scott Chacon, Martin Odersky, and Jonas Bonér. I'm still thrilled with the event along with the subjects presented there. Additionally, the conference was very professionally organized. Thank you, Reaktor!

Below you can find some of my thoughts regarding the presentations.

Scala

I really liked the Scala and Akka introduction by Odersky and Bonér, although the schedule for the presentation was a bit too tight. Right after the presentation, I participated in the Scala Introduction hands-on session by Sebastian Nykopp.

Scala soon felt like a cosy programming language to me, as I have previously done functional programming with Scheme, Haskell and Python and also written a lot of Java. The syntax of Scala primarily reminded me of Haskell. In fact, someone at the conference said to me that in some circles, Scala is called as the "bastard son of Haskell and Java". I would rather call Scala like the Haskell implementation that has a real-world connection through many web and backend frameworks.

At home after the conference, I had to dig up some old code. Do you recognize the languages? Which would you pick as having the most beautiful syntax? For some strange reason, I like the last one the most.

map (lambda x: x*2, [1, 2, 3, 4])
List(1, 2, 3, 4).map(_*2)
map (*2) [1, 2, 3, 4]
(map (lambda (x) (* x 2)) '(1 2 3 4))

Distributed Web Systems

Ricard Vice Santos from Spotify started the afternoon with a presentation about Distributed Web Systems. Santos' act was not the best presentation at Reaktor Dev Day, but Spotify is such a hot service today that peeking under its hood sparked the attention of many conference attendees, including me.

From time to time, Santos submerged us in very deep implementation details of Spotify. However, the most interesting part of his keynote was about the multi-layered backend architecture of Spotify and how it achieves the critical low latency that a service such as Spotify needs.

Actually, the Distributed Web Systems presentation reminded me of the Google Computing Platform keynote held by Hannu Helminen in 2007. Although Helminen was a very convincing speaker, he could not elaborate the details of Google's implementation in such a detail as Santos could. Surprisingly, Santos did not have to decline in answering the in-depth questions that he was posed.

Git

A Tale of Three Trees by Scott Chacon convinced me that Git really is the best version control system out there. I had previously listened to a colleague's enthusiastic presentation about the internals of Git, but only now did I start to understand the elegance of Git's architecture based on checksums and source tree snapshots. The core idea of his presentation was the skillful use of git reset which enables a good workflow for manipulating past commits before pushing them upstream.

On top of the great content in the presentation, Chacon was by far the best speaker at Reaktor Dev Day. He spiced his presentations with due humor:

"... then you open it in your text editor. Vim if you're cool. Emacs if you're... older"

Chacon uses a presentation system called ShowOff that he has written himself. It is naturally available in GitHub.

The Business of Open Source

Chacon concluded the conference in a keynote about open source business models, some of which are used at GitHub, for example. The keynote slides are also available in GitHub and I set up ShowOff to share his Reaktor Dev Day slides on my virtual server.

The main arguments of the keynote were:

  1. Become an open source maintainer (e.g. in GitHub)
  2. Contribute in an open source project: send patches, make a pull request

Chacon of course encouraged us to use open source and to open source projects we are working on. Ultimately, Chacon urged us to even use some features of open source development models in commercial development as well. I think that many of the ways of working he presented are still too idealistic to be used on a large scale, and might not be successful in the projects and with the clients that I've run into. But without a doubt, some of them could work and are should definitely be considered – especially when a new project is starting and the ways of working together are being built.

Chacon's presentation reminded me of Jon "Maddog" Hall's inspiring Linux evangelization that I was able to attend at the Helsinki University of Technology in 2003. While reflecting these two presentations, I realized that social media - such as GitHub - is the most important change in the ways open source is being distributed and developed during these 8 years. Another significant phenomenon is the evolution of distributed version control systems (DVCS). In 2003, there was no DVCS systems nor GitHub and Maddog concentrated on how to use and distribute the lower level open source components starting with the Linux operating system.

The use and significance of open source has been continuously growing. The open source community is using the "social DVCS media" for self-organization in a whole new way. You just need to carry out the Chacon's core theses to catch this train.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1444360/Yrjo_Kari-Koskinen_xs.jpg http://posterous.com/users/hd2kXA8M0eYmS Yrjö Kari-Koskinen ykk Yrjö Kari-Koskinen
Fri, 02 Sep 2011 05:08:46 -0700 Privacy is a techie problem… isn’t it? http://blog.futurice.com/privacy-is-a-problem-isnt-it http://blog.futurice.com/privacy-is-a-problem-isnt-it

Last week I gave a presentation at OtaSizzle project’s workshop on privacy. OtaSizzle is an initiative for building a living lab and services on four campuses around the world. Social interaction and related privacy questions are at its core. Here is a short(ish) version of my talk (although with a conclusion I wrote specifically for this blog).

Which is worse: having your credit card stolen and used, or having a photo of you half-naked and drunk publicly available on the Internet? If presented with an option to choose between the two, most of us would rather have our credit card stolen than have a (presumably) unwanted photograph of ourselves in the web.

Embarrassment, losing face, and damages to our reputation are the kind of privacy and security threats we are all familiar with. We have seen and read about social blunders on social networking sites (e.g., forgetting that our mom/boss/ex-spouse can read our status updates). The tabloid newspapers have also found social media to be a goldmine in getting access to private information about the social life of public figures and celebrities.

From the point of view of computer security and privacy protection in the cyberspace this change is fundamental. Traditionally, computer security and privacy has seen the most common threat to ordinary citizens being a malevolent third party hacking into bank accounts and credit card numbers. However, in the age of Facebook, the privacy and security threats people are more concerned about come from our friends, family, friends-of-friends, acquaintances, and their networks. How to protect ourselves from a relative who keeps on posting embarrassing baby pictures? What kind of a firewall can save us from friends who share all photographs, tweets, and status updates with the whole world?

Virus protection, secure protocols, P3P, and other tools from the computer security toolbox are impotent in the face of social media privacy threats.

To make matters even more complicated, we really can’t predict what kind of privacy risks and problems future technology holds for us. The Helsingin Sanomat Kuukausiliite (8/2011) had an excellent column: the journalist was killing time at a café looking at expensive cars, typing in the license plates into a text message service to get the name of the owner, and then googling who they were (and probably using Facebook and LinkedIn as well). Quite easily he was able to get basic information to amuse himself in the sense of “a-ha, so that kind of a person owns that kind of a car… and there he walks away from his car”.

The thing about this mash-up technology is that no one ever designed it as a whole. Nobody ever sat down, planned, and implemented such a service. Rather, the clever journalist only combined common and easy services together. And he was probably not the first one to amuse himself and others with this idea. But because the combination was emergent rather than specifically designed, it just points how difficult it is to predict what the bits and pieces of services and open databases enable tomorrow. Services are like Lego blocks and practically anyone can put them together to make something new. No crystal ball can anticipate all possible combinations and the privacy issues related.

With these two points in mind (a. traditional computer security is impotent, and b. future mash-ups are impossible to anticipate) few questions push themselves to the front row: Can the privacy issues in social media be solved with more computer science and engineering? Are we building technology to solve problems originally created by technology?

To answer the first question: No. The concept of privacy captures so much of our lives that applying solely scientific and/or technological approaches to it is simply silly. Privacy is one of those topics that shows how computer science and engineering has to change and adapt to influences outside its comfort zone, such as social sciences, humanities, and legal studies. Nevertheless, go ahead and google, for example, “privacy as a service” and you get 2 billion results trying to use computation and engineering to solve the problem.

To answer the second question: Yes. We live in a society where technological advancement is intertwined with continuous economical growth, and our way of living relies on the latter, and hence, we rely on the former as well. In other words, continuous technological change is integral to our society and culture. To sustain that, it is actually kind of comforting to think that we will never run out of requirements and needs for new technologies, because the old ones are prone to create the need for the new.

To wrap this up: Yes, the geeks will inherit the Earth (i.e., the technologists will have a growing influence in our society) but the geeks need to open the front door and let in lots of new people with fresh new non-technological (and dare I say antipositivistic) thinking. And once the geeks embrace the non-techies, perhaps our future is not written solely by engineers and scientists.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1150068/RistoWeb.jpg http://posterous.com/users/heO3QHc1uQhWq Risto Sarvas Risto Sarvas Risto Sarvas
Fri, 26 Aug 2011 05:24:00 -0700 Field Testing http://blog.futurice.com/65688930 http://blog.futurice.com/65688930

The art of testing is in large part simply making sure that the end user is not the first person to discover problems. In order to do this, you have to go through the same actions as the end user. Most situations are fairly straightforward and involve things like trying to fill a form in a large variety of ways, use a service with many users at the same time, accessing a website from different browsers, etc. However, when testing mobile applications, another aspect comes into play: the environment. The user can take a phone anywhere and it will behave differently in different environments. Recently, I had the pleasure of testing in two extreme situations: in -30°C and next to a racing track near the Dead Sea in Jordan.

Web

Jordan

I'll start with the racing track. One of the key features of Nokia's WRC Live application is the ability for fans to follow the race live, either at home or while 'on stage'. The fan can watch a map that shows the cars in real-time. This feature is awesome only if it truly works; the experience isn't quite the same if the fan sees the car pass in front of him and 30 seconds later on his phone.

There is only one way to test the entire chain from the GPS unit in the car to your handset: to be on stage. So we went to Jordan to see the WRC rally while testing a very early version of the application. We were impressed with the results. There were only a couple of seconds lag between the actual passing of the car and the passing on the map, which was accurate enough for fans to know in advance who is passing and what their position is in the race.

We did find some problems, however, which we simply could not foresee in the comfort of our Helsinki office. One of those issues is the amount of dust next to the track. Fans would need to be able to clean their screen without activating the touch buttons or moving the map. We fixed the problem by adding a lock feature. This nicely confirmed how important it is to test in an environment that is as close as possible to the actual usage scenario.

Min30

Fridge

The second extreme testing environment was at minus 30 degrees Celsius. We developed an application which is going to be used throughout the year, outside, in Finland, and would come preinstalled on a specific handset. We needed to make sure the appliance - the handset and application - worked in the harsh Finnish winter conditions. This is slightly problematic in June. To start, it is about 55 degrees too warm. Time to go to a fridge, a big fridge.

We found a research facility that tests large trucks in extreme conditions to make sure they don't break down. In other words, a fridge that should have room for a couple of people and phones. Our main concern for the test was battery life. We know that extreme cold shortens battery life, but our questions was by how much? We had pruned the possible handsets down to two contenders, and also had to make a final decision about which one to use in production.

On a warm sunny day in June, we dug out our winter clothes and set out to do some testing. It turned out to be tougher than we thought. We ended up leaving the phones in the fridge and one of us would quickly run some test while the other two reheated themselves outside. In the end, we could safely conclude that the phones would be fine as they lasted longer in the fridge than the humans operating them.

All in all, a great set of experiences. For me, it reinforces my idea that the best way to test is real life testing.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1709591/Me.png http://posterous.com/users/hdojCA6M27JsC Peter Tennekes petertennekes Peter Tennekes
Tue, 09 Aug 2011 23:45:00 -0700 Slut Innovations http://blog.futurice.com/slut-innovations http://blog.futurice.com/slut-innovations

The Slut Walk events in Finland last weekend reminded me of an innovation seminar I attended last February.

One of the studies presented in the seminar was on household innovation in consumer products (Von Hippel & al. Comparing Business and Household Sector Innovation in Consumer Products: Findings from a Representative Study in the UK). In the study the researchers had interviewed a representative sample of over one thousand people in the UK aged 18 and over.

Their study suggested that a typical consumer innovator was a technically educated male. In other words, non-technically educated women were less probable to innovate. The feminist in me raised an eyebrow!

The researchers themselves showed some reserve in making the point that women are less innovative, but on the other hand, they did not want to undermine their study by questioning its results. Neverthless, they had no explanation why their study indicated that when it comes to consumer innovation, bet your money on the men.

Well, I have an explanation: the world of technology research, development, design, engineering, and innovation has been for ages a man’s world. The language, concepts, and examples we use to think and talk about innovation come from a world where men are a clear majority. It is not surprising that women, when asked, do not find themselves innovating as often as men do.

Women are, of course, very innovative but seldom call their creativity in relation to consumer products as “innovation”. I bet there are, for example, mothers of small children who are very innovative in running their daily chores with the help of consumer products. For example, making a nappy out of a used t-shirt in 5 minutes or building an edible catapult based on an image in a children's book (see below). If a researcher was to ask these creative women “did you innovate today?” these mothers would probably not see their clever ideas as “consumer innovations”.

Imgp6060

What about the Slut Walks? Where is the connection?

A very visual characteristic of the Slut Walks is that many women dress up as “sluts” to demonstrate their right to wear what they want. Check the latest news about the events and you can not miss images of women dressed provocatively.

The provocative dresses have a point to make and they are making it in the language of men: visual language in the images and in actual
language in the written slogans. The word "slut" itself is a man's word chosen purposefully. Due to the specific visual and actual wording, the Slut Walks have gathered lots of attention globally.

So the Slut Walks and the way in how they use male language reminded me of the world of technology innovation and how its language is the language of men.

If our Finnish "Innovation Society" wants to harness consumer creativity we can not limit our perspective to the world of men. And because “innovation talk” is very male-oriented there is a risk of excluding lots of creative activity that does not fit the traditional labels of “technology” and “innovation”. We run the risk of overlooking everyday creativity from a fresh angle – a rich source of innovation we should not leave unused (see, e.g., the famous Niksi-Pirkka that clearly has a less manly angle to its innovativeness).

The Slut Walks have drawn attention to the fact that we live in a men's world. Let this also be a reminder that when it comes to policies and initiatives to harness innovation, we live in the same male dominated world.

P.S. For those interested in women and technical progress in history I recommend one of my favourite books: Ruth Schwarz Cowan, "More Work For Mother: The Ironies of Household Technology From The Open Hearth To The Microwave". Also, thanks to Vilma Lehtinen for commenting on the draft of this post :)

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1150068/RistoWeb.jpg http://posterous.com/users/heO3QHc1uQhWq Risto Sarvas Risto Sarvas Risto Sarvas
Thu, 04 Aug 2011 22:55:53 -0700 Strategy, trust, windows, and Lenin http://blog.futurice.com/strategy-trust-windows-and-lenin http://blog.futurice.com/strategy-trust-windows-and-lenin

I attended on a yearly Strategy Forum organized by The Finnish Strategic Management Society. Interesting stuff, so wanted to share some thoughts.

Helene Auramo from Zipipop discussed how the social media makes leaders, not just organizations transparent. Antti Koskelin, the CIO of Konecranes, pointed out how the [your favourite letter here] generation spoiled by Google and friends will just not accept the unusable enterprise software and ICT policies (could not agree more!). Minna Elomaa gave a nice presentation about the change management she successfully did at Tapiola Group: repeat, repeat, repeat, that is!

The highlight was absolutely the yearly strategy award. The winner Kimmo Suominen sees strategy as a narration that is consumed!

In my presentation I tried to open up the hopefully successful Futurice strategy and leadership principles. The slides are in Finnish, so here comes a short English summary:

  • for us the business model and other "hard" strategic building blocks are relatively straight-forward. Far most interesting are the people. How we create a community of professionals that is skilled, desired, trusted in a sustainable way.
  •  "Trust is good, control is better", famous quote from Mr. V.I. Lenin. I disagree. Could we instead make trust a core of our strategy? Yes, it is not an easy path, but maybe worth walking!
  • People first, then strategy. Jim Collins: "first right people on the bus ... then figure out where to drive."
  • Futurice decision making principles: 3x2, "The one who promises is the one who delivers", 100% transparency, functions and roles are bad, business thinking for everybody, share everything, agile decision making on the front-line
  • Futurice practices
  • Nassim Nicholas Taleb taught how the world becomes more non-gaussian. The black swans rule. How does it change your business? Most (all?) of the established organizations are poor in utilizing these opportunities. Do you leave it for start-ups only?
    • Or as Lenin put it: "Revolution is impossible without a revolutionary situation, furthermore not every revolutionary situation leads to revolution."
  • Agile software development model is an encouraging example of how a modern, empirical, non-hierarchical approach can change the way one major business operates. 

I also wanted to point out that single case examples like this are not very reliable source of information. Maybe we just have been lucky!

Startegia_2011-06-13.pdf Download this file

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hcGbuekXFJBb4 Mikko Viikari mviikari Mikko Viikari