Twenty Startups A Year Without Going Crazy
-
Upload
ciklum -
Category
Technology
-
view
1.576 -
download
1
description
Transcript of Twenty Startups A Year Without Going Crazy
Twenty start-ups a year Without going crazy
Christopher Marsh Technical Architect, AKQA
Twenty start-ups a year Without going crazy
Christopher Marsh Technical Architect, AKQA
Effort to completion
Pain to completion
Effort to completion
Effort to completion
Predictability!
Predictability!
Lean philosophy
Predictability!
Lean philosophy
Culture of
code craftsmanship
Predictability!
Lean philosophy
Culture of
code craftsmanship
Continuous delivery
Lean philosophy “Lean Startup isn't about being
cheap [but is about] being less wasteful and still doing
things that are big.”
-- Eric Ries
Focus on producing output Let software engineers engineer Let project managers manage
Morning stand-up Who’s it really for?
Meeting invitations Auto-reject the unknown
“Can you spare me 5 minutes?” ...takes a minimum of an hour
Create design through doing Things always change before you’re finished anyway
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
Prototype responsibly Destroy when done
Don’t build frameworks Reusable code emerges naturally
Minimise documentation effort Most documentation is a liability, not an asset
Create architecture documents Don’t create design documents
Write self documenting code Self maintaining documentation requires zero extra effort
Optimise communication efficiency Create knowledge sharing tools
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
Develop a green build mentality No excuses, if you’re red - you’re dead
Don’t worry about it Force a build, it will pass next time
I didn’t break it So I don’t need to fix it
That’s always broken I can’t remember the last time the codebase was updated
I’m looking at it now But it looks like it’s going to take a while to fix
The rules Never commit on a broken build Fix broken build within 10 minutes The team is responsible for the build
Seek constant peer review You work with smart people, so help them to help you
Target collaboration effort Eliminate coder’s block by pair programming
Shout when you need help It’s not a sign of weakness
Perform code reviews Automate as much as possible
Create information radiators Increasing technical debt is difficult when no one wants to give you credit
Look further than technology Respect your colleagues
Reduce complexity Communicate simply
Reduce complexity Communicate simply
Use an existing tool Or mix and match
Continuous Delivery “Reduce [..] the time it takes from deciding to make a change [..] to having it available to users.” -- Jez Humble/David Farley
Create deployment pipelines Make every commit a potential release candidate.
Example pipeline
Example pipeline
Example pipeline
Example pipeline
Example pipeline
Example pipeline
Example pipeline
Unit tests
Acceptance tests
Integration tests
Manual tests
Capacity tests
Number of tests A sanity check
Pipeline dashboard ThoughtWorks Go
Maintain infrastructure as code Consistency means that no server is a snowflake
“Production-like” starts early Configure development workstations automatically
Include all infrastructure Not just web and application servers
Look at Cloud options Built-in configuration options make things easier
Put deployments in the right hands Deployments are business motivated, but technology led
What the business has...
Deploy me!
What the business needs...
What the business (really) needs...
Deploy me!
Capacity Deploy me!
Production
Deploy me!
Build Deploy me!
QA
Script everything Separate what changes from what doesn’t
“Production-like” all the way Even if this means less efficiency in the pipeline
And finally...
“Theory is splendid but until put into practice , it is valueless.”
-- James Cash Penney
Discuss!