Agile at genius.com
 

Agile at genius.com

on

  • 487 views

Really cool preso on a topic close to home at Cazoomi and our ZOOMILite teams.

Really cool preso on a topic close to home at Cazoomi and our ZOOMILite teams.

Statistics

Views

Total Views
487
Views on SlideShare
483
Embed Views
4

Actions

Likes
0
Downloads
5
Comments
0

2 Embeds 4

http://gleanster.com 2
http://www.gleanster.com 2

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • As a marketing user I would like the sfdc standard field &#x201C;lead source&#x201D; to be a Genius standard field <br /> As a non-sfdc marketing user I would like to be able to use the &#x201C;lead source&#x201D; field in workflow conditions so that I can segment my workflow actions based on &#x201C;lead source&#x201D; <br /> As a non-sfdc marketing user I would like to use &#x201C;lead source&#x201D; field in workflow update field action so that I can change the field value in a workflow <br /> As a non-sfdc marketing user I would like to use &#x201C;lead source&#x201D; field in smart groups so that I can segment my groups based on the value of that field <br /> As a non-sfdc marketing user I would like to use &#x201C;lead source&#x201D; field in mail merge so that I can include the field value in emails that go to contacts and leads

Agile at genius.com Agile at genius.com Presentation Transcript

  • Evolution of Agile Development at Genius.com Drew Stephens, Ryan Ausanka-Crues, Scott Mersy
  • Genius.com Overview • Software-as-a-Service • Sales & marketing products • Languages – PHP – Perl – Java – C# – JavaScript • MySQL • ExtJS & YUI 2
  • The Bad Old Days • May 2007 – Unreliable release dates – Low quality – Unmaintainable code – Poor ops/dev/QA relationship – 0% test coverage 3
  • What Was Wrong? • Requirement waterfall • Assigned silo development • No automated testing • Developing on quicksand • No progress tracking • Dev & QA separation • Release piling 4
  • Comprehensive Agility Organizational Structure Process Framework Development Approach 5
  • Comprehensive Agility Organizational Structure Eliminate Waste Empower the Team Collaborative Layout Access to Execs Intelligence over Experience Allow Fun Increased Expectations Reduced management Educate Execs Process Framework Development Approach 5
  • Comprehensive Agility Organizational Structure Eliminate Waste Empower the Team Collaborative Layout Access to Execs Intelligence over Experience Allow Fun Increased Expectations Reduced management Educate Execs Process Framework Iterations Demos User Stories Daily Sync-ups One-piece flow Embrace Change Retrospectives Development Approach 5
  • Comprehensive Agility Organizational Structure Eliminate Waste Empower the Team Collaborative Layout Access to Execs Intelligence over Experience Allow Fun Increased Expectations Reduced management Educate Execs Process Framework Iterations Demos User Stories Daily Sync-ups One-piece flow Embrace Change Retrospectives Development Approach Coding Standards Collective Ownership Continuous Integration Collective Design Automated Testing Technical Backlog Design Metaphors YAGNI Pair Programming 5
  • Comprehensive Agility Organizational Structure Eliminate Waste Empower the Team Collaborative Layout Access to Execs Intelligence over Experience Allow Fun Increased Expectations Reduced management Educate Execs Process Framework Iterations Demos User Stories Daily Sync-ups One-piece flow Embrace Change Retrospectives Development Approach Coding Standards Collective Design XP Collective Ownership Automated Testing Continuous Integration Technical Backlog Design Metaphors YAGNI Pair Programming 5
  • Comprehensive Agility Organizational Structure Eliminate Waste Empower the Team Collaborative Layout Access to Execs Intelligence over Experience Allow Fun Increased Expectations Reduced management Educate Execs Process Framework Iterations One-piece flow Scrum Demos User Stories Embrace Change Daily Sync-ups Retrospectives Development Approach Coding Standards Collective Design XP Collective Ownership Automated Testing Continuous Integration Technical Backlog Design Metaphors YAGNI Pair Programming 5
  • Comprehensive Agility Organizational Structure Lean Eliminate Waste Empower the Team Collaborative Layout Access to Execs Intelligence over Experience Allow Fun Increased Expectations Reduced management Educate Execs Process Framework Iterations One-piece flow Scrum Demos User Stories Embrace Change Daily Sync-ups Retrospectives Development Approach Coding Standards Collective Design XP Collective Ownership Automated Testing Continuous Integration Technical Backlog Design Metaphors YAGNI Pair Programming 5
  • Agile Misconceptions 6
  • Agile Misconceptions “We’re iterative so we’re agile” “There’s no time for architecture design” “Our features are too big to fit into sprints” “Our code can’t be unit tested” “The daily meeting is a waste of time” “Agile is an excuse to micro-manage” 6
  • Genius.com Agile Milestones ... September 2009 Split into 2 teams January Hired brilliant build engineer May Hired supportive VP April New collaborative workspace 2008 March Introduce Scrum board February Scrum Master training December Start of on-time release streak October 2007 August Co-located dev & QA Nightly builds June First unit tests April First “iteration” 7
  • Hiring • Intelligence over Experience • Cultural fit • Enthusiasm • Motivated • Referrals • From RIT or HMC 8
  • Collaboration • Encourage non-work interaction • Team breaks story into tasks • Collective decisions • Self-assigned work • Co-located product management • Remove barriers • Hold team responsible • Conducive workspace 9
  • May 2007 10
  • February 2008 11
  • June 2009 12
  • Daily Standup 13
  • Scrum Board • 5 columns • Swim lanes for stories • Stories are color coded • Team commits to stories every 2 weeks • Production and previous sprint bugs • Team decides order of stories • Can only be on one open story • Don’t move on until entire story is done 14
  • Definition of “Done” • Task – Unit tests written and run – Code and tests checked in – QA verify it’s bug free – UI tests written and run – Security code review • Story – Product management sign-off – Potentially shippable – No open non-validated tasks – No technical debt 15
  • Prioritized Backlog • Maintained by product management • Aggregation of all features requested (users, sales, marketing, operations, developers, QA, etc) • Prioritized by product manager based on input • Higher priority = increased definition and granularity • Meet & greets w/ the team • Phrased as user stories “As a marketer I want to be able to schedule an email to go out in the future so that I don’t have to be at my desk for the email to go out at a specific time” • Acceptance criteria “1 month maximum, 1 hour minimum” • Everyone needs to understand tradeoffs 16
  • 17
  • Process Evolution • May 2007 – Unreliable release dates – Low quality – Unmaintainable code – Poor ops/dev/QA relationship – 0% test coverage 18
  • Process Evolution • May 2007 • December 2009 – Unreliable release dates – 13 consecutive on-time – Low quality major releases – Unmaintainable code – 90% reduction in production bugs – Poor ops/dev/QA relationship – 72% unit test coverage – 0% test coverage 18
  • 1 Release (2007) 19
  • 21 Release (2009) 21-a 21-b New product 20
  • 21 Release - Part 2 21 21-a 21-b 21-c 21-d 21-e New customer! 21
  • 22 Release 21 22 21-a 21-b 21-c 21-d 21-e 22-a 22-b New product 22
  • Great Resources • Our blog! - http://eng.genius.com • Mike Cohn - http://www.mountaingoatsoftware.com • BayAPLN - http://bayapln.org • Agile Alliance - http://agilemanifesto.org • James Shore - http://jamesshore.com 23
  • Have fun! 24
  • Tools We Use • 3rd Party • We Built – PHPUnit – PHP DSL for Selenium – Hudson – JS/CSS Packaging – PhpUnderControl – PHPUnit wrapper – Jira – DB Fixture Framework – SVN – Automated deployment – Eclipse – TestRun – Selenium RC – Capistrano 28