The Futurice Hacker Way



The Futurice Hacker Way

0 1


futurice-hacker-way

Presentation about Futurice Developer Culture, held in Futurice Technology after work event in Oulu, 28.10.2014

On Github ykarikos / futurice-hacker-way

The Futurice Hacker Way

  • Futurice Technology After-Work, Oulu
  • 28 October 2014
Hello. How many of you are developers? How many of you have committed code in the last week or so? Good. I want to present you the cornerstones of Futurice developer culture.

Yrjö Kari-Koskinen, @ykarikos

Jack of all trades

But before that, shortly about me. What do I do? Web developer, mostly background in backend development and infrastructure. Also PM and SM work in Futurice. -> Jack of all trades. I'm one of the competence heads in Futurice facilitating the competence development of our developers. I try to help people learn and communicate

Who?

140+ developers in Helsinki, Tampere, Berlin, London and Lausanne

What?

The core technologies our developers do in our projects these days. Mobile platforms. Web FE, BE. Infrastructure: Amazon, Heroku, Azure. Analytics. Sometimes, we develop other stuff as well. Additionally we have also UX/SD designers, business consultants, sales people, support functions.

Projects 2013

SW dev 97%UI design 60%Concept/SD 42%Biz 15%Native mobile 63%iOS, Android, WPWeb 57%Back-end 52%Hosting 17%

Average project

  • Consumer service
  • 3 people
  • At customer premises, fridays at home office
  • 12-15 months
  • Lifecycle 3-5 years
  • Examples: App ratings
The average project, of course we do other kinds of stuff too. Also applications for business-to-business use but in all projects we try to achieve the best possible, consumer-grade usability. In smallest mobile project cases only one-man show but we try to avoid those. Usually one designer and a few developers. Sometimes can be business consultants, analytics, design, even a few dev teams, a scrum master, event 10 persons. Communication, close to customer, whole team in same place. Some projects are done in Futurice office. Many projects stay for further development in our Lifecycle managemen model which tries to tacle the budgeting challenges but keep the service alive.

Ways of working

Communication!

Trust the teams. There's no one solution that fits all projects. Usually agile methods: Scrum, Kanban, Pair programming, code review, stuff like that. This is a kanban board from a longer project. Feedback cycle, build-measure-learn, Continuous Integration, Delivery, Builds, Testing. Visualizing status, radiators. Project and backlog status. We use a *lot* of post-its and whiteboards! Most important aspect: communication! Together and with customer.

Choosing the technology

  • KISS, not much commercial products
  • Open Source
  • Mobile: native, hybrid or web?
  • Cloud, micro services
  • Development automation
  • Communication!
Also here, no one choice that fits all. Usually like this. Also here communication is important. The selections are made together and we respect our customer too.

Technology radar, autumn 2014

HoldTrialAdoptPHPDrupalPlay1WP Silverlight AppsCoffeeScriptGrailsMavenRubyJava 7BackboneWinJSASP.NET MVCASP.NET Web APIClojurescriptFacebook FluxOmHaskellMathematicaMatlab/OctaveQtXamarinZurb FoundationGoPolymerAzureDockerHadoopVirtual DOMSwiftJava 8MySQL/MariaDBRClojureGulpRx.JSVagrantReact.jsGruntPuppetReactiveCocoaES 6MongoDBBrowserifyESLintRx.NETRxJavaScalaTravis-ciGradleElasticSearchPythonRedisAngularJSGoogle Tag ManagerBowerD3Play2FPBootstrapjQueryHerokuNode.jsJSHintGoogle AnalyticsPostgreSQLC#JS PromisesAWS
Last week I asked everyone at Futurice, what do they think about the technology they work with. The innermost circle is adopt: We know it works, we know it's great, we use it for real. In the middle trial: Test, learn, follow, poc, analyze. The outer ring is hold: legacy, hold from using if possible. Of course this is not the only truth, of course we still do a lot of work with Java even if some people don't think that it's that cool.

Futucode2013

javascriptjavascalabashpythonphpsqlclojurec#rubycoffeescriptobjective-csassc++groovypowershellcperlhaskelloctavelessschemeluapl/ppl/sshcoqgognupmathclojmatlf#commsxvimsremacautom4css
In late 2013 I asked my colleagues, in which languages they are coding both in work and in freetime. This is what I got as an answer.

You may have noticed that we like to work with open source software. The concrete stuff in Spice program: publish futurice tools as open source, take care of the projects, help projects choose and use OS licenses all the way to contract terms with customers. Model of compensation for creating open source in free time. Embrace the passion people have for Open Source. Building block of creating software in this time. Highlighs: futurice.github.io

Futurice IT

  • Fast and reliable, no bureaucracy
  • The right tools
  • Futuhosting
  • Personal virtual server

Learning

  • Baseline: CSM, Communication
  • In projects
  • Flowdock
  • Weeklies and meetups
  • Futushelf
  • Camps, workshops, conferences

Why is Futurice the best place for a developer?

"Freedom to choose technology" "No bureaucracy" "Trust" "Professionality" "People are excited" "Flexibility between work and freetime" "No problems in project handoff" "Can experiment new technology" No bureaucracy, no hierarchy. We trust people and teams to deliver stuff the best way they see fit. For example get the best tools, buy an IDE or something. Flexibility = easy to agree when to work. No bummers in project handoff.

War stories

  • Code ownership & refactoring
  • Customer's recruitment
  • Sharing the way of working
  • Helping customers understand other consultants
Taking responsibility of legacy code and refactoring it every now and then. "Even producing my own technical debt ;)" Helping customer with recruitment. Sharing also for other customer's teams, other consultants. Helping customers doing technology decisions regarding other consultants work. = Trust.

FutuLabs

Currently we are working a lot with new gadgets. In futurice you are free to experiment with the latest and coolest technology and we have both a budget and opportunity to do that. We believe this is the futurice and way to do business in the future.

Futurice 2015 and beyond

  • Lean Service Creation
  • Sharing to the world
LSC: possibilities to affect in project decision making. Better understanding on customer's business. Better collaboration between business consultancy, design and development Sharing in forms of software (OS), talks (conferences) = thought leadership

Thank you!

Questions?