how our product team works

38
@flinc, @m_ic How our product team works

Upload: michael-huebl

Post on 15-Apr-2017

168 views

Category:

Small Business & Entrepreneurship


0 download

TRANSCRIPT

@flinc, @m_ic

How our product team works

@flinc, @m_ic

Being agile is a never-ending journey. An adventure with ups and downs, failures and successes - this presentation shows where we

are right now..

@flinc, @m_ic

Being agile means: If you see something wrong or inefficient, fix it!

@flinc, @m_ic

It doesn’t mean to follow a specific methodology like Scrum or Kanban.

Instead, it is about using the right tools at the right time to get the job done.

// Image © Spotify

@flinc, @m_ic

There’s only one thing that never changes: We need to improve continuously!

That’s why we get together every two weeks to do a retrospective.

Bild Retro

// Image © Spotify

@flinc, @m_ic

Outcomes of retrospectives are learnings, best practices and common principles which

are accessible for everyone in our team handbook.

@flinc, @m_ic

But guess what: Every challenge is different, so a best practice can be outdated tomorrow.

It is a constant learning cycle.

@flinc, @m_ic

Working in an agile environment sometimes feels a little chaotic.

While we try to avoid chaos, it is still better than bureaucracy.

// Image © Spotify

@flinc, @m_ic

Enjoy the change! And do your best to stay in control while not losing

speed.

// Image © Spotify

@flinc, @m_ic

We are 13 people in 4 main roles: Product Manager, Developer, Designer and QA

// Image © Thinslices

@flinc, @m_ic

Make sure things work, fixing bugs, maintenance,

refactoring..

Everybody is part of a client team, where the ground work is done.

iOS Android Core

@flinc, @m_ic

If new things come up, we build a new feature team.

Feature Team

iOS Android Core

@flinc, @m_ic

A feature team is an interdisciplinary team that can act on its own.

iOS Android Core

Decide & Deploy

Feature Team

@flinc, @m_ic

Every feature team has a leader.

Without taking ownership, things will fail.

@flinc, @m_ic

Team: Collaborate with everyone to find the best solution.

Leader: Communicate which problems need to be solved and why.

TODO WIP DONE

Prioritised list

@flinc, @m_ic

Goal of the team is to build an MVP that solves the problem and can be released to production.

// Image © Spotify

@flinc, @m_ic

It starts with understanding. What is the real problem? What are the real user needs? What is really important?

This can be done through research, data analysis, customer interviews, customer experience maps…

* Most of this work is done before we build the feature team

@flinc, @m_ic

The prototyping phase has several steps we run through.

* Depending on the complexity of the feature.

Feature Kickoff

PrototypingDeveloper Kickoff

Acceptance criteria for MVP

Success metrics

Head scratchers

Tested prototype

@flinc, @m_ic

Collaboration is key and stakeholder involvement is important.

That’s why we do a feature kickoff where we try to figure out side effects (e.g. legal & contract issues) and get everyone on the same page.

Feature Kickoff

PrototypingDeveloper Kickoff

Acceptance criteria for MVP

Success metrics

Head scratchers

Tested prototype

@flinc, @m_ic

Prototyping is the only way to ensure we build the right solution.

This step is iterative - we do it until we have a potential solution.

A prototype is worth a 1000 meetings.

Feature Kickoff

PrototypingDeveloper Kickoff

Acceptance criteria for MVP

Success metrics

Head scratchers

Tested prototype

@flinc, @m_ic

There are lots of great tools for prototyping like sketches, wireframes and technological prototypes. No matter what you choose - the important thing is user involvement. So get out of the building and start testing!

@flinc, @m_ic

While things could look easy from the outside, it may have complicated technological dependencies on the inside.

To avoid bad surprises we try to find “head scratchers" before we start the main development.

Feature Kickoff

PrototypingDeveloper Kickoff

Acceptance criteria for MVP

Success metrics

Head scratchers

Tested prototype

@flinc, @m_ic

If we have a common understanding of the problem and a (potential) solution, we start developing it.

If not, we start over again.

* This takes days, not months.

Feature Kickoff

PrototypingDeveloper Kickoff

Acceptance criteria for MVP

Success metrics

Head scratchers

Tested prototype

@flinc, @m_ic

Prototyping is awesome to show quick results.

But: Prototypes are made to throw away.

Their code may never become part of the production code base.

@flinc, @m_ic

To get code to production two things need to be done:

1. Proper test coverage

2. Review by a peer.

@flinc, @m_ic

Tests are as important as the implementation itself!

It is up to the developer to decide how to achieve the best possible test automation.

TDD is great, but so are other principles.

@flinc, @m_ic

Every push to GitHub triggers a complete run of our test suite (~10k tests) on Travis CI. This gives us the confidence to deploy

often.

// Image © Travis CI

@flinc, @m_ic

For code reviews we use Githubs Pull Requests.

Pair programming is also a great way, especially when you are new in the team.

@flinc, @m_ic

We prefer simple over clever!

No one “owns” any code.

// Image © Spotify

@flinc, @m_ic

We have three environments:

Production, Staging and Testing

@flinc, @m_ic

For deployments we use our own deployment tool: Applikatoni.

With Toni everyone can deploy code with one click (i.e. designers on staging).

Toni also shows the current CI status of every branch or pull request you want to deploy.

* It’s Open Source, get it here: http://applikatoni.com/

@flinc, @m_ic

Everybody in the company can have access to our code base and is able to open a pull request. Even people from marketing and sales do this (i.e. for frontend changes).

@flinc, @m_ic

We do small and frequent releases.

In average we deploy 2 times a day on production

// Image © Spotify

@flinc, @m_ic

If we’ve deployed a feature, we measure its success over time. If it fails, we remove it.

(And sometimes we fail to fail)

// Image © Spotify

@flinc, @m_ic

To spread knowledge, we do Hackathons, Lunch Talks, Offsites, Daily Standups…

We also have a book club.

Contact me:

Michael Hü[email protected]: @m_ic, @flinc

As said, being agile is a journey, an adventure with ups and downs, failures and successes. Now you know where we are right now!

I would love to hear your story!

@flinc, @m_ic

This is a follow up presentation to “How flinc works - Best practices after 5 years of company building” where I describe how we organise our company in general.

Check it out online at http://www.slideshare.net/michaelhuebl/how-flinc-works-best-practices-after-5-years-of-company-building

@flinc, @m_ic

Thanks to Spotify and Thinslices <3

Scribbles taken from “Spotify engineering culture”:https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/

Role icons taken from “Ready. Steady. Go Scrum Methodology!”http://www.thinslices.com/ready-steady-scrum-methodology/