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