It's a startup life: from idea to execution

Preview:

DESCRIPTION

Talk about product design & development in a startup called Darwin Analytics. Talk given at Fronteers Belgium.

Citation preview

Hi Fronteers! We work at Darwin Analytics.

THOMAS TUTS

MIET CLAES

IT’S A STARTUP LIFE

FOR US

Darwin is a startup located in Ghent — a very young company (1 year) with young people (< 27).

We’re building a tool to help marketers prove & improve their content marketing.

Mommy, where dofeatures come from?

We brainstorm on a regular basis, with the entire team.

This keeps us on the same page which is very important in a startup.

To get better at it, we flex our brainstorm muscles.

The extraordinaires design studio is a great example, where you use fictional characters as a potential customer for your product.

When we have some good ideas, we decide what to build and when we build it.

A feature spec will help to keep focus, and to brief the team.

It’s a simple, easy-to-update document (Github) for anyone in the company to see and use.

* What will the feature do?

* Who is it for? How will they use it?

* Non-goals (what will it not do)

* Flowchart

* Measuring & expectations

Personas help you build a good feature spec. Keep a real person in mind (one of your clients perhaps) to build meaningful features.

Make mockups, wireframes, sketches, ... Whatever you’re comfortable with.

Ugly? Doesn’t matter. Feedback is!

As. Much. As. Possible.

feedback<& feaTURe

Gather feedback from your teammates and from your clients, where and whenever you can.

Get a CAB (customer advisory board). We love ours!

A couple of your clients you trust, that are honest with you about your product.

We meet our CAB on a regular basis to do interviews, card sorting, brain storms and other exercises.

This helps us steer our product in the right direction, and helps us solve the right problems.

User testing is also very important. This one obviously went wrong, but helped us a ton!

This is Big Bertha. She’s a huge Excel sheet, tracking every mistake. And she won’t forget!

She keeps you from getting used to the imperfections in your product.

Product development

After we’ve thought long and hard about the features and their specifications, we actually implement the thing.

We do this using various techniques and technologies.

Freedom

A lot of freedom is afforded to a Darwinian. We hire people because they’re talented and smart, so we trust them to do the right thing.

Roles aren’t as strictly defined as in ‘normal’ companies: for example, developers can design and get some feedback on it from Miet, then we can potentially use some of those ideas.

Spitballing sessions

Spitballing is our informal way of brainstorming. Anything goes, nothing is off limits. Everyone in our team has pronounced opinions, which is important when building a product.

Technology stack

We hire people not based on what technology they use, but how competent they are.

It’s important to work with technology you love (and hopefully use in your own free time) - it increases developer happiness and productivity

Laravel

Replacing Symfony (old codebase)

Used for all backend purposes: - API - Harvesters - Processors - Serving the app

Vagrant

Easy to get up & running for new teammembers

However, a little annoying due to file syncing for front-end workflow

Solution: use PHP simple server (Laravel Artisan)

AngularJS

Our app is built with AngularJS, using both in-house components and open-source projects

HTML5

Eventual goal: native app feel

At Darwin, we really believe in the Web and its strenghts. We’re excited to see what the future holds for webapps.

Gulp

Because we have a pretty complicated codebase, Grunt tasks didn’t quite cover all use cases for us

Switching to Gulp had several advantages: - Speed - Developer productivity - Being able to roll our own plugins easily

GitHub

Pull Requests

Code reviews are necessary for cross-pollination, because our team is really small (bus factor)

Issue tracking: both actual issues and a ‘diary’

HipChat

Not only used for team communication

App activity is logged on our main channel

Makes developers happy to see the app is being used in realtime

Errors are also logged: easy to respond quicky

“Perfectionism unicorn”

Sometimes, it’s hard to maintain a good balance between an MVP and a clean codebase

You need to believe in yourself and in your team; if you can’t fix it now, you’ll get around to it later

The app will keep running, even though you know the code isn’t 100% clean

Why is it so hard?

It’s wonderful to build your own product and shape your company culture with so much freedom.

But it comes with great responsibility!

That’s why our boss gives us every chance to get better at our jobs, and helps us accomplish the things we want.

Every Friday afternoon, we get the chance to experiment with new things — to plug out and learn!

We all get €500 per month to spend on conferences, books, a mentor and other learning resources. For example Mathias Bynens, Patrick Dubois, people from madewithlove and Little Miss Robot coach us to do better every day.

We iterate on our processes, company culture and ideas every day — to build a better product, to become better at our jobs.

Thank you.

Recommended