Twenty Startups A Year Without Going Crazy

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

description

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

Transcript of Twenty Startups A Year Without Going Crazy

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!