Successfully reported this slideshow.

Building a site for people with big imaginations

2,808 views

Published on

The processes and techniques used at RedBubble

Published in: Technology
  • Be the first to comment

Building a site for people with big imaginations

  1. 1. BUILDING A SITE FOR PEOPLE WITH BIG IMAGINATIONS RedBubble
  2. 2. Mark Mansour Software Developer Head of Technology at RedBubble Agile and Iterative development proponent
  3. 3. Who are you?
  4. 4. How hard can it be to build a web app? Did not have a shippable product Code was over engineered Features were over specified Too much administration
  5. 5. Web App Development what makes web app dev hard?
  6. 6. Web App Development not sure what makes web app dev hard?
  7. 7. Web App Development not sure can’t say what makes web app dev hard?
  8. 8. Web App Development not sure can’t say details evolve what makes web app dev hard?
  9. 9. Web App Development not sure can’t say details evolve complex details what makes web app dev hard?
  10. 10. Web App Development not sure can’t say details evolve complex details change direction what makes web app dev hard?
  11. 11. New Product Development not sure can’t say details evolve complex details change direction
  12. 12. What is the best way to build a new product?
  13. 13. 1. Good People communicate provide solutions respectful can learn managers getting out of the way org encourages gtd and gtr
  14. 14. 1. Good People communicate provide solutions respectful can learn managers getting out of the way org encourages gtd and gtr
  15. 15. 2. Good Tools
  16. 16. 2. Good Tools Communication
  17. 17. 2. Good Tools Communication Development
  18. 18. 2. Good Tools Communication Development Testing
  19. 19. 2. Good Tools Communication Development Testing Management
  20. 20. Communication Tools Campfire and IRC are real-time group collab tools Wikis IM is just a must
  21. 21. Communication Tools
  22. 22. Development Tools Version Control System - Subversion - UNDO + many programmers Automation tools - rake, shell scripts, make, ant, Capistrano - reduce chances of things going wrong Database Refactoring - Rails migrations, LiquidBase
  23. 23. Development Tools Version Control System Version Control System - Subversion - UNDO + many programmers Automation tools - rake, shell scripts, make, ant, Capistrano - reduce chances of things going wrong Database Refactoring - Rails migrations, LiquidBase
  24. 24. Development Tools Version Control System Automation tools Version Control System - Subversion - UNDO + many programmers Automation tools - rake, shell scripts, make, ant, Capistrano - reduce chances of things going wrong Database Refactoring - Rails migrations, LiquidBase
  25. 25. Development Tools Version Control System Automation tools Database Refactoring Version Control System - Subversion - UNDO + many programmers Automation tools - rake, shell scripts, make, ant, Capistrano - reduce chances of things going wrong Database Refactoring - Rails migrations, LiquidBase
  26. 26. Testing Tools Always in maintenance mode tests automate the vefication process tests make you brave (to change your code) Tests must pass before checking in save embarrasement
  27. 27. Testing Tools Unit testing Always in maintenance mode tests automate the vefication process tests make you brave (to change your code) Tests must pass before checking in save embarrasement
  28. 28. Testing Tools Unit testing Functional testing Always in maintenance mode tests automate the vefication process tests make you brave (to change your code) Tests must pass before checking in save embarrasement
  29. 29. Testing Tools Unit testing Functional testing Continuous Integration Always in maintenance mode tests automate the vefication process tests make you brave (to change your code) Tests must pass before checking in save embarrasement
  30. 30. Management Tools
  31. 31. Management Tools What Issues - Bugs and new features Planning
  32. 32. Management Tools What Issues - Bugs and new features Planning How JIRA, Trac, Spreadsheet
  33. 33. Management - Story Board What is a story?
  34. 34. What is a story? Features, fixes or nonfunctional requirements As an <actor> <action> i.e. As a User I can view my account balance i.e. As an Administrator I can delete a user Not over specified Estimated (1 hours -> 16 hours @ RB, but 1-21 days at other places)
  35. 35. What is a story? Features, fixes or nonfunctional requirements As an <actor> <action> i.e. As a User I can view my account balance i.e. As an Administrator I can delete a user Not over specified Estimated (1 hours -> 16 hours @ RB, but 1-21 days at other places)
  36. 36. What is a story? Features, fixes or nonfunctional requirements As an <actor> <action> i.e. As a User I can view my account balance i.e. As an Administrator I can delete a user Not over specified Estimated (1 hours -> 16 hours @ RB, but 1-21 days at other places)
  37. 37. What is a story? Features, fixes or nonfunctional requirements As an <actor> <action> i.e. As a User I can view my account balance i.e. As an Administrator I can delete a user Not over specified Estimated (1 hours -> 16 hours @ RB, but 1-21 days at other places)
  38. 38. What is a story? Features, fixes or nonfunctional requirements As an <actor> <action> i.e. As a User I can view my account balance i.e. As an Administrator I can delete a user Not over specified Estimated (1 hours -> 16 hours @ RB, but 1-21 days at other places)
  39. 39. 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
  40. 40. 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
  41. 41. 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
  42. 42. 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
  43. 43. 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
  44. 44. 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
  45. 45. 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
  46. 46. 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
  47. 47. 3. Simple Development Process KISS Agile and Iterative - Scrum and XP Process keeps everyone on the same page
  48. 48. 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.
  49. 49. 5. Fun
  50. 50. RedBubble Practices There are no rules, there are only guidelines - if it doesn’t help you, then change it!
  51. 51. RedBubble Practices 1. Good people There are no rules, there are only guidelines - if it doesn’t help you, then change it!
  52. 52. 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!
  53. 53. 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!
  54. 54. 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!
  55. 55. 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!
  56. 56. A week in software development An Iteration Thursday Friday Monday Tuesday Wednesday Release Standup Standup Standup Early Morning Standup Kickoff Beverages Code Review Finalize planning Showcase Start planning next week Close it off End of iteration Review Free time 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
  57. 57. What now? Try Agile and Iterative Development Try some new tools Make a difference
  58. 58. Questions?
  59. 59. Mark Mansour mark@stateofflux.com
  60. 60. Resources Books “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”
  61. 61. Resources Books “Getting Real” - 37 signals Websites wikipatterns.com
  62. 62. Resources Software Subversion CruiseControl.rb Selenium Buildix - VMWare virtual appliance for agile dev JSUnit PHPUnit
  63. 63. Resources Software (more) Rails Capistrano Rake Rails Migrations & LiquidBase Cake
  64. 64. 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

×