twenty startups a year without going crazy

66
Twenty start-ups a year Without going crazy Christopher Marsh Technical Architect, AKQA

Upload: ciklum

Post on 13-Jan-2015

1.575 views

Category:

Technology


1 download

DESCRIPTION

The presentation was done by Christopher Marsh, Technical Architect at AKQA, at Ciklum Java Saturday on April 21, 2012.

TRANSCRIPT

Page 1: Twenty Startups A Year Without Going Crazy

Twenty start-ups a year Without going crazy

Christopher Marsh Technical Architect, AKQA

Page 2: Twenty Startups A Year Without Going Crazy

Twenty start-ups a year Without going crazy

Christopher Marsh Technical Architect, AKQA

Page 3: Twenty Startups A Year Without Going Crazy

Effort to completion

Page 4: Twenty Startups A Year Without Going Crazy

Pain to completion

Page 5: Twenty Startups A Year Without Going Crazy

Effort to completion

Page 6: Twenty Startups A Year Without Going Crazy

Effort to completion

Page 7: Twenty Startups A Year Without Going Crazy

Predictability!

Page 8: Twenty Startups A Year Without Going Crazy

Predictability!

Lean philosophy

Page 9: Twenty Startups A Year Without Going Crazy

Predictability!

Lean philosophy

Culture of

code craftsmanship

Page 10: Twenty Startups A Year Without Going Crazy

Predictability!

Lean philosophy

Culture of

code craftsmanship

Continuous delivery

Page 11: Twenty Startups A Year Without Going Crazy

Lean philosophy “Lean Startup isn't about being

cheap [but is about] being less wasteful and still doing

things that are big.”

-- Eric Ries

Page 12: Twenty Startups A Year Without Going Crazy

Focus on producing output Let software engineers engineer Let project managers manage

Page 13: Twenty Startups A Year Without Going Crazy

Morning stand-up Who’s it really for?

Page 14: Twenty Startups A Year Without Going Crazy

Meeting invitations Auto-reject the unknown

Page 15: Twenty Startups A Year Without Going Crazy

“Can you spare me 5 minutes?” ...takes a minimum of an hour

Page 16: Twenty Startups A Year Without Going Crazy

Create design through doing Things always change before you’re finished anyway

Page 17: Twenty Startups A Year Without Going Crazy

Understand architecture vs design Refactoring architecture is hard

“Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change.”

-- Grady Booch

Page 18: Twenty Startups A Year Without Going Crazy

Prototype responsibly Destroy when done

Page 19: Twenty Startups A Year Without Going Crazy

Don’t build frameworks Reusable code emerges naturally

Page 20: Twenty Startups A Year Without Going Crazy

Minimise documentation effort Most documentation is a liability, not an asset

Page 21: Twenty Startups A Year Without Going Crazy

Create architecture documents Don’t create design documents

Page 22: Twenty Startups A Year Without Going Crazy

Write self documenting code Self maintaining documentation requires zero extra effort

Page 23: Twenty Startups A Year Without Going Crazy

Optimise communication efficiency Create knowledge sharing tools

Page 24: Twenty Startups A Year Without Going Crazy

Culture of code craftsmanship “You can’t take pride and

honour in something that you can’t be held accountable for.”

-- Robert “Uncle Bob” Martin

Page 25: Twenty Startups A Year Without Going Crazy

Develop a green build mentality No excuses, if you’re red - you’re dead

Page 26: Twenty Startups A Year Without Going Crazy

Don’t worry about it Force a build, it will pass next time

Page 27: Twenty Startups A Year Without Going Crazy

I didn’t break it So I don’t need to fix it

Page 28: Twenty Startups A Year Without Going Crazy

That’s always broken I can’t remember the last time the codebase was updated

Page 29: Twenty Startups A Year Without Going Crazy

I’m looking at it now But it looks like it’s going to take a while to fix

Page 30: Twenty Startups A Year Without Going Crazy

The rules Never commit on a broken build Fix broken build within 10 minutes The team is responsible for the build

Page 31: Twenty Startups A Year Without Going Crazy

Seek constant peer review You work with smart people, so help them to help you

Page 32: Twenty Startups A Year Without Going Crazy

Target collaboration effort Eliminate coder’s block by pair programming

Page 33: Twenty Startups A Year Without Going Crazy

Shout when you need help It’s not a sign of weakness

Page 34: Twenty Startups A Year Without Going Crazy

Perform code reviews Automate as much as possible

Page 35: Twenty Startups A Year Without Going Crazy

Create information radiators Increasing technical debt is difficult when no one wants to give you credit

Page 36: Twenty Startups A Year Without Going Crazy

Look further than technology Respect your colleagues

Page 37: Twenty Startups A Year Without Going Crazy

Reduce complexity Communicate simply

Page 38: Twenty Startups A Year Without Going Crazy

Reduce complexity Communicate simply

Page 39: Twenty Startups A Year Without Going Crazy

Use an existing tool Or mix and match

Page 40: Twenty Startups A Year Without Going Crazy

Continuous Delivery “Reduce [..] the time it takes from deciding to make a change [..] to having it available to users.” -- Jez Humble/David Farley

Page 41: Twenty Startups A Year Without Going Crazy

Create deployment pipelines Make every commit a potential release candidate.

Page 42: Twenty Startups A Year Without Going Crazy

Example pipeline

Page 43: Twenty Startups A Year Without Going Crazy

Example pipeline

Page 44: Twenty Startups A Year Without Going Crazy

Example pipeline

Page 45: Twenty Startups A Year Without Going Crazy

Example pipeline

Page 46: Twenty Startups A Year Without Going Crazy

Example pipeline

Page 47: Twenty Startups A Year Without Going Crazy

Example pipeline

Page 48: Twenty Startups A Year Without Going Crazy

Example pipeline

Page 49: Twenty Startups A Year Without Going Crazy

Unit tests

Acceptance tests

Integration tests

Manual tests

Capacity tests

Number of tests A sanity check

Page 50: Twenty Startups A Year Without Going Crazy

Pipeline dashboard ThoughtWorks Go

Page 51: Twenty Startups A Year Without Going Crazy

Maintain infrastructure as code Consistency means that no server is a snowflake

Page 52: Twenty Startups A Year Without Going Crazy

“Production-like” starts early Configure development workstations automatically

Page 53: Twenty Startups A Year Without Going Crazy

Include all infrastructure Not just web and application servers

Page 54: Twenty Startups A Year Without Going Crazy

Look at Cloud options Built-in configuration options make things easier

Page 55: Twenty Startups A Year Without Going Crazy

Put deployments in the right hands Deployments are business motivated, but technology led

Page 56: Twenty Startups A Year Without Going Crazy

What the business has...

Page 57: Twenty Startups A Year Without Going Crazy

Deploy me!

What the business needs...

Page 58: Twenty Startups A Year Without Going Crazy

What the business (really) needs...

Deploy me!

Capacity Deploy me!

Production

Deploy me!

Build Deploy me!

QA

Page 59: Twenty Startups A Year Without Going Crazy

Script everything Separate what changes from what doesn’t

Page 60: Twenty Startups A Year Without Going Crazy

“Production-like” all the way Even if this means less efficiency in the pipeline

Page 61: Twenty Startups A Year Without Going Crazy

And finally...

“Theory is splendid but until put into practice , it is valueless.”

-- James Cash Penney

Page 62: Twenty Startups A Year Without Going Crazy
Page 63: Twenty Startups A Year Without Going Crazy
Page 64: Twenty Startups A Year Without Going Crazy
Page 65: Twenty Startups A Year Without Going Crazy
Page 66: Twenty Startups A Year Without Going Crazy

Discuss!