+ All Categories
Home > Technology > Building a site for people with big imaginations

Building a site for people with big imaginations

Date post: 06-Sep-2014
Category:
Upload: mark-mansour
View: 3,937 times
Download: 2 times
Share this document with a friend
Description:
The processes and techniques used at RedBubble
Popular Tags:
65
BUILDING A SITE FOR PEOPLE WITH BIG IMAGINATIONS RedBubble
Transcript
Page 1: Building a site for people with big imaginations

BUILDING A SITE FOR PEOPLE WITH BIG

IMAGINATIONSRedBubble

Page 2: Building a site for people with big imaginations

Mark Mansour

Software DeveloperHead of Technology at RedBubbleAgile and Iterative development proponent

Page 3: Building a site for people with big imaginations

Who are you?

Page 4: Building a site for people with big imaginations

How hard can it be to build a web app?

Did not have a shippable productCode was over engineeredFeatures were over specifiedToo much administration

Page 5: Building a site for people with big imaginations

Web App Development

what makes web app dev hard?

Page 6: Building a site for people with big imaginations

Web App Development

not sure

what makes web app dev hard?

Page 7: Building a site for people with big imaginations

Web App Development

not sure

can’t say

what makes web app dev hard?

Page 8: Building a site for people with big imaginations

Web App Development

not sure

can’t say

details evolve

what makes web app dev hard?

Page 9: Building a site for people with big imaginations

Web App Development

not sure

can’t say

details evolve

complex details

what makes web app dev hard?

Page 10: Building a site for people with big imaginations

Web App Development

not sure

can’t say

details evolve

complex details

change direction

what makes web app dev hard?

Page 11: Building a site for people with big imaginations

New Product Development

not sure

can’t say

details evolve

complex details

change direction

Page 12: Building a site for people with big imaginations

What is the best way to build a new product?

Page 13: Building a site for people with big imaginations

1. Good People

communicateprovide solutionsrespectfulcan learnmanagers getting out of the wayorg encourages gtd and gtr

Page 14: Building a site for people with big imaginations
Page 15: Building a site for people with big imaginations

1. Good People

communicateprovide solutionsrespectfulcan learnmanagers getting out of the wayorg encourages gtd and gtr

Page 16: Building a site for people with big imaginations

2. Good Tools

Page 17: Building a site for people with big imaginations

2. Good Tools

Communication

Page 18: Building a site for people with big imaginations

2. Good Tools

Communication

Development

Page 19: Building a site for people with big imaginations

2. Good Tools

Communication

Development

Testing

Page 20: Building a site for people with big imaginations

2. Good Tools

Communication

Development

Testing

Management

Page 21: Building a site for people with big imaginations

Communication Tools

Campfire and IRC are real-time group collab toolsWikisIM is just a must

Page 22: Building a site for people with big imaginations

Communication Tools

Page 23: Building a site for people with big imaginations

Development Tools

Version Control System - Subversion - UNDO + many programmersAutomation tools - rake, shell scripts, make, ant, Capistrano - reduce chances of things going wrongDatabase Refactoring - Rails migrations, LiquidBase

Page 24: Building a site for people with big imaginations

Development Tools

Version Control System

Version Control System - Subversion - UNDO + many programmersAutomation tools - rake, shell scripts, make, ant, Capistrano - reduce chances of things going wrongDatabase Refactoring - Rails migrations, LiquidBase

Page 25: Building a site for people with big imaginations

Development Tools

Version Control System

Automation tools

Version Control System - Subversion - UNDO + many programmersAutomation tools - rake, shell scripts, make, ant, Capistrano - reduce chances of things going wrongDatabase Refactoring - Rails migrations, LiquidBase

Page 26: Building a site for people with big imaginations

Development Tools

Version Control System

Automation tools

Database Refactoring

Version Control System - Subversion - UNDO + many programmersAutomation tools - rake, shell scripts, make, ant, Capistrano - reduce chances of things going wrongDatabase Refactoring - Rails migrations, LiquidBase

Page 27: Building a site for people with big imaginations

Testing Tools

Always in maintenance modetests automate the vefication processtests make you brave (to change your code)

Tests must pass before checking insave embarrasement

Page 28: Building a site for people with big imaginations

Testing Tools

Unit testing

Always in maintenance modetests automate the vefication processtests make you brave (to change your code)

Tests must pass before checking insave embarrasement

Page 29: Building a site for people with big imaginations

Testing Tools

Unit testing

Functional testing

Always in maintenance modetests automate the vefication processtests make you brave (to change your code)

Tests must pass before checking insave embarrasement

Page 30: Building a site for people with big imaginations

Testing Tools

Unit testing

Functional testing

Continuous Integration

Always in maintenance modetests automate the vefication processtests make you brave (to change your code)

Tests must pass before checking insave embarrasement

Page 31: Building a site for people with big imaginations

Management Tools

Page 32: Building a site for people with big imaginations

Management Tools

What

Issues - Bugs and new features

Planning

Page 33: Building a site for people with big imaginations

Management Tools

What

Issues - Bugs and new features

Planning

How

JIRA, Trac, Spreadsheet

Page 34: Building a site for people with big imaginations

Management - Story Board

What is a story?

Page 35: Building a site for people with big imaginations

What is a story?

Features, fixes or nonfunctional requirementsAs an <actor> <action>i.e. As a User I can view my account balancei.e. As an Administrator I can delete a userNot over specifiedEstimated (1 hours -> 16 hours @ RB, but 1-21 days at other places)

Not over specified * oral communication is preferred so there isn’t a bunch of details in the story card, but a summary and a reference to other documentation if what you are implementing is detailed (like a tax schedule) - the card donor (owner) should be available for questions

Estimate * Group estimates are good - whole team including customer. It doesn’t take long until everyone understands the estimation process

Embrace Change * Customers change their mind as they learn more so embrace it - if it impacts the estimate then tell them and make them choose what it replaces

Page 36: Building a site for people with big imaginations

What is a story?

Features, fixes or nonfunctional requirementsAs an <actor> <action>i.e. As a User I can view my account balancei.e. As an Administrator I can delete a userNot over specifiedEstimated (1 hours -> 16 hours @ RB, but 1-21 days at other places)

Not over specified * oral communication is preferred so there isn’t a bunch of details in the story card, but a summary and a reference to other documentation if what you are implementing is detailed (like a tax schedule) - the card donor (owner) should be available for questions

Estimate * Group estimates are good - whole team including customer. It doesn’t take long until everyone understands the estimation process

Embrace Change * Customers change their mind as they learn more so embrace it - if it impacts the estimate then tell them and make them choose what it replaces

Page 37: Building a site for people with big imaginations

What is a story?

Features, fixes or nonfunctional requirementsAs an <actor> <action>i.e. As a User I can view my account balancei.e. As an Administrator I can delete a userNot over specifiedEstimated (1 hours -> 16 hours @ RB, but 1-21 days at other places)

Not over specified * oral communication is preferred so there isn’t a bunch of details in the story card, but a summary and a reference to other documentation if what you are implementing is detailed (like a tax schedule) - the card donor (owner) should be available for questions

Estimate * Group estimates are good - whole team including customer. It doesn’t take long until everyone understands the estimation process

Embrace Change * Customers change their mind as they learn more so embrace it - if it impacts the estimate then tell them and make them choose what it replaces

Page 38: Building a site for people with big imaginations

What is a story?

Features, fixes or nonfunctional requirementsAs an <actor> <action>i.e. As a User I can view my account balancei.e. As an Administrator I can delete a userNot over specifiedEstimated (1 hours -> 16 hours @ RB, but 1-21 days at other places)

Not over specified * oral communication is preferred so there isn’t a bunch of details in the story card, but a summary and a reference to other documentation if what you are implementing is detailed (like a tax schedule) - the card donor (owner) should be available for questions

Estimate * Group estimates are good - whole team including customer. It doesn’t take long until everyone understands the estimation process

Embrace Change * Customers change their mind as they learn more so embrace it - if it impacts the estimate then tell them and make them choose what it replaces

Page 39: Building a site for people with big imaginations

What is a story?

Features, fixes or nonfunctional requirementsAs an <actor> <action>i.e. As a User I can view my account balancei.e. As an Administrator I can delete a userNot over specifiedEstimated (1 hours -> 16 hours @ RB, but 1-21 days at other places)

Not over specified * oral communication is preferred so there isn’t a bunch of details in the story card, but a summary and a reference to other documentation if what you are implementing is detailed (like a tax schedule) - the card donor (owner) should be available for questions

Estimate * Group estimates are good - whole team including customer. It doesn’t take long until everyone understands the estimation process

Embrace Change * Customers change their mind as they learn more so embrace it - if it impacts the estimate then tell them and make them choose what it replaces

Page 40: Building a site for people with big imaginations

Management - Story Board

Story Board - what we are doing this week • Purpose: it is a communication tool - not just for the team but for anyone who is interested. • It does not have all the details - see issue tracker or talk to customer • 3 columns - todo, doing, done • all items start in todo and are order, in priority, from top to bottom • when someone picks a story, they move it to ‘doing’ and put their avatar next to it • while stories are being worked on the customer is asked if they are getting what they expect - constant feedback. Customers love it. • A story can move to done when - a) another developer has reviewed the work; and b) when the customer has seen the code working on a demo environment

Overflow

Page 41: Building a site for people with big imaginations

Management - Story Board

Story Board - what we are doing this week • Purpose: it is a communication tool - not just for the team but for anyone who is interested. • It does not have all the details - see issue tracker or talk to customer • 3 columns - todo, doing, done • all items start in todo and are order, in priority, from top to bottom • when someone picks a story, they move it to ‘doing’ and put their avatar next to it • while stories are being worked on the customer is asked if they are getting what they expect - constant feedback. Customers love it. • A story can move to done when - a) another developer has reviewed the work; and b) when the customer has seen the code working on a demo environment

Overflow

Page 42: Building a site for people with big imaginations

Management - Story Board

Story Board - what we are doing this week • Purpose: it is a communication tool - not just for the team but for anyone who is interested. • It does not have all the details - see issue tracker or talk to customer • 3 columns - todo, doing, done • all items start in todo and are order, in priority, from top to bottom • when someone picks a story, they move it to ‘doing’ and put their avatar next to it • while stories are being worked on the customer is asked if they are getting what they expect - constant feedback. Customers love it. • A story can move to done when - a) another developer has reviewed the work; and b) when the customer has seen the code working on a demo environment

Overflow

Page 43: Building a site for people with big imaginations

Management - Story Board

Story Board - what we are doing this week • Purpose: it is a communication tool - not just for the team but for anyone who is interested. • It does not have all the details - see issue tracker or talk to customer • 3 columns - todo, doing, done • all items start in todo and are order, in priority, from top to bottom • when someone picks a story, they move it to ‘doing’ and put their avatar next to it • while stories are being worked on the customer is asked if they are getting what they expect - constant feedback. Customers love it. • A story can move to done when - a) another developer has reviewed the work; and b) when the customer has seen the code working on a demo environment

Overflow

Page 44: Building a site for people with big imaginations

Management - Story Board

Story Board - what we are doing this week • Purpose: it is a communication tool - not just for the team but for anyone who is interested. • It does not have all the details - see issue tracker or talk to customer • 3 columns - todo, doing, done • all items start in todo and are order, in priority, from top to bottom • when someone picks a story, they move it to ‘doing’ and put their avatar next to it • while stories are being worked on the customer is asked if they are getting what they expect - constant feedback. Customers love it. • A story can move to done when - a) another developer has reviewed the work; and b) when the customer has seen the code working on a demo environment

Overflow

Page 45: Building a site for people with big imaginations

Management - Story Board

Story Board - what we are doing this week • Purpose: it is a communication tool - not just for the team but for anyone who is interested. • It does not have all the details - see issue tracker or talk to customer • 3 columns - todo, doing, done • all items start in todo and are order, in priority, from top to bottom • when someone picks a story, they move it to ‘doing’ and put their avatar next to it • while stories are being worked on the customer is asked if they are getting what they expect - constant feedback. Customers love it. • A story can move to done when - a) another developer has reviewed the work; and b) when the customer has seen the code working on a demo environment

Overflow

Page 46: Building a site for people with big imaginations

Management - Story Board

Story Board - what we are doing this week • Purpose: it is a communication tool - not just for the team but for anyone who is interested. • It does not have all the details - see issue tracker or talk to customer • 3 columns - todo, doing, done • all items start in todo and are order, in priority, from top to bottom • when someone picks a story, they move it to ‘doing’ and put their avatar next to it • while stories are being worked on the customer is asked if they are getting what they expect - constant feedback. Customers love it. • A story can move to done when - a) another developer has reviewed the work; and b) when the customer has seen the code working on a demo environment

Overflow

Page 47: Building a site for people with big imaginations

Management - Story Board

Story Board - what we are doing this week • Purpose: it is a communication tool - not just for the team but for anyone who is interested. • It does not have all the details - see issue tracker or talk to customer • 3 columns - todo, doing, done • all items start in todo and are order, in priority, from top to bottom • when someone picks a story, they move it to ‘doing’ and put their avatar next to it • while stories are being worked on the customer is asked if they are getting what they expect - constant feedback. Customers love it. • A story can move to done when - a) another developer has reviewed the work; and b) when the customer has seen the code working on a demo environment

Overflow

Page 48: Building a site for people with big imaginations

3. Simple Development Process

KISSAgile and Iterative - Scrum and XPProcess keeps everyone on the same page

Page 49: Building a site for people with big imaginations

4. Ship it!

If you don’t ship it, it is just an elaborate art project

Ship the simplest thing possible (at first)* RB gallery example* release early & often - good enough - good enough for your users, for future maintenance and your piece of mind (PragProg). Like an artist, you need to know when to stop.* bring customers on the emotional journey

Page 50: Building a site for people with big imaginations

5. Fun

Page 51: Building a site for people with big imaginations

RedBubble Practices

There are no rules, there are only guidelines - if it doesn’t help you, then change it!

Page 52: Building a site for people with big imaginations

RedBubble Practices

1. Good people

There are no rules, there are only guidelines - if it doesn’t help you, then change it!

Page 53: Building a site for people with big imaginations

RedBubble Practices

1. Good people

2. Good tools

There are no rules, there are only guidelines - if it doesn’t help you, then change it!

Page 54: Building a site for people with big imaginations

RedBubble Practices

1. Good people

2. Good tools

3. Simple Development Process

There are no rules, there are only guidelines - if it doesn’t help you, then change it!

Page 55: Building a site for people with big imaginations

RedBubble Practices

1. Good people

2. Good tools

3. Simple Development Process

4. Ship it!

There are no rules, there are only guidelines - if it doesn’t help you, then change it!

Page 56: Building a site for people with big imaginations

RedBubble Practices

1. Good people

2. Good tools

3. Simple Development Process

4. Ship it!

5. Have fun

There are no rules, there are only guidelines - if it doesn’t help you, then change it!

Page 57: Building a site for people with big imaginations

A week in software development

Monday

StandupCode Review

Tuesday

StandupFinalize planning

Wednesday

Early Morning StandupShowcaseClose it off

End of iteration ReviewFree time

Thursday

ReleaseKickoff

Start planning next week

Friday

StandupBeverages

An Iteration

Why do you want a good process? • a good process takes the day to day “what do we do now” conversations away so you can actually get down and do the work • Thursday is the start of the week, Wednesday is the end

Page 58: Building a site for people with big imaginations

What now?

Try Agile and Iterative Development

Try some new tools

Make a difference

Page 59: Building a site for people with big imaginations

Questions?

Page 61: Building a site for people with big imaginations

ResourcesBooks

“Pragmatic Programmer” by Hunt and Thomas

“Agile and Iterative Development” by Craig Larman

“A Rational Design Process: How and why to Fake It.” Clements, P., and Parnas, D

Scrum and XP from the Trenches - Henrik Kniberg

“The Art of the Start” by Guy Kawasaki

“Beautiful Code: Leading Programmers Explain How They Think”

Page 62: Building a site for people with big imaginations

Resources

Books

“Getting Real” - 37 signals

Websites

wikipatterns.com

Page 63: Building a site for people with big imaginations

Resources

Software

Subversion

CruiseControl.rb

Selenium

Buildix - VMWare virtual appliance for agile dev

JSUnit

PHPUnit

Page 64: Building a site for people with big imaginations

Resources

Software (more)

Rails

Capistrano

Rake

Rails Migrations & LiquidBase

Cake

Page 65: Building a site for people with big imaginations

Images

“Halo hula” - http://flickr.com/photos/rikabel/938699/“Gohper” - http://flickr.com/photos/janine-white/22328935/“Animal Tools” - http://flickr.com/photos/anavrin/194771480/“Bullets” - http://flickr.com/photos/rikabel/938699/“45 Freemont” - http://flickr.com/photos/thomashawk/130601011/“Big Red Button (Activated)” - http://flickr.com/photos/elliottcable/421568175/“”just two phonies”” - http://flickr.com/photos/21891888@N00/442674518/Stacked Focus Cogs - http://flickr.com/photos/balakov/763594852/Father of the Bride - http://flickr.com/photos/turekcsaba/663815522/DSC00360 - http://flickr.com/photos/makers/34995785/Different - http://flickr.com/photos/mwieczorek/427233916/Back in teh day - http://flickr.com/photos/ssmt/858582831/Flick - http://www.flickr.com/photos/7areega/305460999/haunted pirate - http://www.flickr.com/photos/j6photo/186650828/Are we talking about me yet - http://www.gapingvoid.com/0709arewetalking.jpg


Recommended