SlideShare una empresa de Scribd logo
1 de 21
Chrome Release Cycle




 Author: Anthony Laforge (laforge@chromium.org)
Our Philosophy

• Think of any major website, even the fancy Web 2.HTML5
  ones... do they have version numbers?
• We took the same approach to our client software as an
  online web service.
• That is... we treat releases as a means of getting features out
  to users and not goals in and of themselves.
• It's about flow.
How Our Users Work

• Users sign up for Chrome release channels based on the
  level of stability they want.
• Updates happen automatically in the background.
• New features and functionality just flow in without any effort
  on the user's part.
How the Chrome Team Works


• Developers work almost exclusively on a single central trunk
  (possible due to our try bots and continuous build
  infrastructure)
• Our branches stem from points on the trunk
• We stabilize branches by pulling in changes from trunk (i.e.
  everything lands on trunk first)
Where we started (v1-4) - On Paper
In practice, for that final beta...we'd

• Cut a branch (when we thought we had everything)
• Merge about ~500 patches (since we didn't have everything)
• Spend weeks stabilizing and re-stabilizing issues.
• Ended up working 1-3 months to get a release out the door,
  always certainly missing our 13 week plan.
• And at the end finally shipping something we were happy
  with... but that left us pretty drained (i.e. the bad flow)
The chain of events

• We'd hold releases, sometimes our branch points, until
  features were done, which meant...
• Lots of changes got queued up on the trunk, which caused...
• Engineers merging lots of changes to the branch, which led
  to...
• Instability on the branch that we had to deal with and that
  meant...
That chain of events...

• Long lived branches, which...
• Made supporting the branch (i.e. merging changes) more
  difficult as we drifted further from the trunk...
• All of which led to...
   o Unpredictable release cycles, with date targets we could
     never hit, and....
   o Engineers who were always in a rush to get their features
     into "this" release since we couldn't make any promises
     about the schedule
Which led me to think...

• I need a long vacation.
• There has to be a better way.
• What's causing things not to flow smoothly?




                               ...Yes...In that order.
Primary Goals
• Shorten the release cycle and reduce the life span of a
  branch (make merges easier)
• Make releases more predictable and easier to scope
• Reduce the strain on the entire team




   Good                              Bad
Goal to Plan - Getting down the cycle

• Originally set out a plan to simplify the 12 week cycle, 6
  weeks on dev, 6 weeks on beta, and then to stable.
• Once diagrammed, using blocks to represent the weeks,
  realized that with 3 channels you could have two overlapping
  releases running at once, which could get us a stable release
  ~ every 6 weeks.
Block diagrams
It was a start, but it wasn't the full answer

 • Sure, turning the wheel faster would make some things, like
   merges, easier.
 • But without addressing the scope problems, the flow wouldn't
   be any better and would continue to interrupt releases.
 • Things wouldn't be any more predictable and the whole cycle
   would just fall apart (more puddles, less of a stream).
Goal to Plan - Controlling Scope



• The pace of the schedule sets the boundaries for the amount
  of work that can be completed.
• It's important to have specific points in the schedule to review
  features and cut scope.
• Establish clear expectations (and engineering practice) to
  developers that any features not ready to ship at branch will
  be disabled (i.e. we only cut post branch, never add).
Plan to Pitch
• Reached out to the various cross functional groups on the
  Chrome team, who would all be impacted, before
  approaching our executives.
   o Engineering, QA, Product, Marketing, Support,
      Localization, Security, etc...
• There were a lot of concerns to address, but the exercise
  forced a lot of thought on the implications of the schedule
  change.
• It took time, but it made the pitch easier to present to the
  leadership and the rest of the team.
Concerns
• Would large feature development still be possible?

  "Yes, engineers would have to work behind flags, however
  they can work for as many releases as they need to and can
  remove the flag when they are done."
• Can the engineers keep up?

  "Their pace won't need to change, since features can be
  disabled there should be no milestone pressure, things ship
  when they are ready."
• What would a world look like where we didn't base our
  marketing on releases?

  "We market features, not releases."
And so we implemented it

       11 week overlapping schedules.
Our General Rules

• The branch point is the end of our development cycle
• Features only get disabled post branch point
• Features should be engineered so that they can be disabled
  easily (1 patch)
• Only stability, security, and critical regressions can ever
  block a release
Things we struggled with
• Overcoming team inertia (particularly when we cut scope)
• Saying no consistently to the team
• Fighting the urge to return to date driven management
  decisions
• We initially didn't solve the trunk->dev->branch time to patch
  problem (daily channel helped).
• Setting the right burn down point (i.e. branch point).
• Disabling features.
Key Lessons


• Having clear and concise rules is important.
• Predictable schedules cut down on communication costs and
  team confusion.
• It takes work and fore-thought to disable features.
• Diligent feature tracking is important.
Conclusion
• Speed alone isn't always the right answer, it's about keeping
  things running smoothly.
• For us, scope was getting in the way of that goal.




   We basically wanted to operate more like trains leaving Grand Central Station
(regularly scheduled and always on time), and less like taxis leaving the Bronx (ad
                             hoc and unpredictable).

Más contenido relacionado

Similar a Chrome release cycle

Chrome发布周期
Chrome发布周期Chrome发布周期
Chrome发布周期36Kr.com
 
How do we drive tech changes
How do we drive tech changesHow do we drive tech changes
How do we drive tech changesJaewoo Ahn
 
Transitioning to Kanban: From Theory to Practice
Transitioning to Kanban: From Theory to PracticeTransitioning to Kanban: From Theory to Practice
Transitioning to Kanban: From Theory to PracticeTechWell
 
Product Management at Contactually
Product Management at ContactuallyProduct Management at Contactually
Product Management at ContactuallyContactually
 
Introduction to Agile - Scrum, Kanban, and everything in between
Introduction to Agile - Scrum, Kanban, and everything in betweenIntroduction to Agile - Scrum, Kanban, and everything in between
Introduction to Agile - Scrum, Kanban, and everything in betweenPravin Kumar Singh, PMP, PSM
 
DevOps: Automate all the things
DevOps: Automate all the thingsDevOps: Automate all the things
DevOps: Automate all the thingsMat Mannion
 
Does this FizzGood? Improve velocity, predictability & agility by asking a si...
Does this FizzGood? Improve velocity, predictability & agility by asking a si...Does this FizzGood? Improve velocity, predictability & agility by asking a si...
Does this FizzGood? Improve velocity, predictability & agility by asking a si...Jon Terry
 
Agile: the Good, the Bad and the Ugly - Webinar by Clarke Ching Agile - Septe...
Agile: the Good, the Bad and the Ugly - Webinar by Clarke Ching Agile - Septe...Agile: the Good, the Bad and the Ugly - Webinar by Clarke Ching Agile - Septe...
Agile: the Good, the Bad and the Ugly - Webinar by Clarke Ching Agile - Septe...MARRIS Consulting
 
Spectrum2018 agile roadtrip_med
Spectrum2018 agile roadtrip_medSpectrum2018 agile roadtrip_med
Spectrum2018 agile roadtrip_medMary Elise Dedicke
 
User Centered Agile Development at NASA - One Groups Path to Better Software
User Centered Agile Development at NASA - One Groups Path to Better SoftwareUser Centered Agile Development at NASA - One Groups Path to Better Software
User Centered Agile Development at NASA - One Groups Path to Better SoftwareBalanced Team
 
User centered agile dev balanced team 2013
User centered agile dev balanced team 2013User centered agile dev balanced team 2013
User centered agile dev balanced team 2013Jay Trimble
 
Iterative Development Process
Iterative Development ProcessIterative Development Process
Iterative Development ProcessAjay Shrivastava
 
Conquer CI Server! - Re-establishment of Order and Nurture of the Solid Organ...
Conquer CI Server! - Re-establishment of Order and Nurture of the Solid Organ...Conquer CI Server! - Re-establishment of Order and Nurture of the Solid Organ...
Conquer CI Server! - Re-establishment of Order and Nurture of the Solid Organ...Rakuten Group, Inc.
 
From Dev and Ops to DevOps - reconfiguring the plane in flight.
From Dev and Ops to DevOps - reconfiguring the plane in flight. From Dev and Ops to DevOps - reconfiguring the plane in flight.
From Dev and Ops to DevOps - reconfiguring the plane in flight. Mike Wessling
 
JIRA 101 - Over(our)head No Longer!
JIRA 101 - Over(our)head No Longer!JIRA 101 - Over(our)head No Longer!
JIRA 101 - Over(our)head No Longer!Frank Caron
 
"Scrum in large Organizations" SwissRe, March 17 2014, Zurich
"Scrum in large Organizations" SwissRe, March 17 2014, Zurich"Scrum in large Organizations" SwissRe, March 17 2014, Zurich
"Scrum in large Organizations" SwissRe, March 17 2014, ZurichBianca Legorreta
 
Paul Szews Process Simplicity Pays Big
Paul Szews   Process Simplicity Pays BigPaul Szews   Process Simplicity Pays Big
Paul Szews Process Simplicity Pays Bigpszews33
 

Similar a Chrome release cycle (20)

Chrome发布周期
Chrome发布周期Chrome发布周期
Chrome发布周期
 
Beyond scrum of scrums scaling agile how it works
Beyond scrum of scrums scaling agile how it worksBeyond scrum of scrums scaling agile how it works
Beyond scrum of scrums scaling agile how it works
 
How do we drive tech changes
How do we drive tech changesHow do we drive tech changes
How do we drive tech changes
 
Transitioning to Kanban: From Theory to Practice
Transitioning to Kanban: From Theory to PracticeTransitioning to Kanban: From Theory to Practice
Transitioning to Kanban: From Theory to Practice
 
Product Management at Contactually
Product Management at ContactuallyProduct Management at Contactually
Product Management at Contactually
 
Introduction to Agile - Scrum, Kanban, and everything in between
Introduction to Agile - Scrum, Kanban, and everything in betweenIntroduction to Agile - Scrum, Kanban, and everything in between
Introduction to Agile - Scrum, Kanban, and everything in between
 
DevOps: Automate all the things
DevOps: Automate all the thingsDevOps: Automate all the things
DevOps: Automate all the things
 
Does this FizzGood? Improve velocity, predictability & agility by asking a si...
Does this FizzGood? Improve velocity, predictability & agility by asking a si...Does this FizzGood? Improve velocity, predictability & agility by asking a si...
Does this FizzGood? Improve velocity, predictability & agility by asking a si...
 
Agile: the Good, the Bad and the Ugly - Webinar by Clarke Ching Agile - Septe...
Agile: the Good, the Bad and the Ugly - Webinar by Clarke Ching Agile - Septe...Agile: the Good, the Bad and the Ugly - Webinar by Clarke Ching Agile - Septe...
Agile: the Good, the Bad and the Ugly - Webinar by Clarke Ching Agile - Septe...
 
Spectrum2018 agile roadtrip_med
Spectrum2018 agile roadtrip_medSpectrum2018 agile roadtrip_med
Spectrum2018 agile roadtrip_med
 
Kanban for ODDS
Kanban for ODDSKanban for ODDS
Kanban for ODDS
 
User Centered Agile Development at NASA - One Groups Path to Better Software
User Centered Agile Development at NASA - One Groups Path to Better SoftwareUser Centered Agile Development at NASA - One Groups Path to Better Software
User Centered Agile Development at NASA - One Groups Path to Better Software
 
User centered agile dev balanced team 2013
User centered agile dev balanced team 2013User centered agile dev balanced team 2013
User centered agile dev balanced team 2013
 
Iterative Development Process
Iterative Development ProcessIterative Development Process
Iterative Development Process
 
Conquer CI Server! - Re-establishment of Order and Nurture of the Solid Organ...
Conquer CI Server! - Re-establishment of Order and Nurture of the Solid Organ...Conquer CI Server! - Re-establishment of Order and Nurture of the Solid Organ...
Conquer CI Server! - Re-establishment of Order and Nurture of the Solid Organ...
 
From Dev and Ops to DevOps - reconfiguring the plane in flight.
From Dev and Ops to DevOps - reconfiguring the plane in flight. From Dev and Ops to DevOps - reconfiguring the plane in flight.
From Dev and Ops to DevOps - reconfiguring the plane in flight.
 
JIRA 101 - Over(our)head No Longer!
JIRA 101 - Over(our)head No Longer!JIRA 101 - Over(our)head No Longer!
JIRA 101 - Over(our)head No Longer!
 
"Scrum in large Organizations" SwissRe, March 17 2014, Zurich
"Scrum in large Organizations" SwissRe, March 17 2014, Zurich"Scrum in large Organizations" SwissRe, March 17 2014, Zurich
"Scrum in large Organizations" SwissRe, March 17 2014, Zurich
 
Kanban for Business
Kanban for BusinessKanban for Business
Kanban for Business
 
Paul Szews Process Simplicity Pays Big
Paul Szews   Process Simplicity Pays BigPaul Szews   Process Simplicity Pays Big
Paul Szews Process Simplicity Pays Big
 

Último

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Último (20)

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

Chrome release cycle

  • 1. Chrome Release Cycle Author: Anthony Laforge (laforge@chromium.org)
  • 2. Our Philosophy • Think of any major website, even the fancy Web 2.HTML5 ones... do they have version numbers? • We took the same approach to our client software as an online web service. • That is... we treat releases as a means of getting features out to users and not goals in and of themselves. • It's about flow.
  • 3. How Our Users Work • Users sign up for Chrome release channels based on the level of stability they want. • Updates happen automatically in the background. • New features and functionality just flow in without any effort on the user's part.
  • 4. How the Chrome Team Works • Developers work almost exclusively on a single central trunk (possible due to our try bots and continuous build infrastructure) • Our branches stem from points on the trunk • We stabilize branches by pulling in changes from trunk (i.e. everything lands on trunk first)
  • 5. Where we started (v1-4) - On Paper
  • 6. In practice, for that final beta...we'd • Cut a branch (when we thought we had everything) • Merge about ~500 patches (since we didn't have everything) • Spend weeks stabilizing and re-stabilizing issues. • Ended up working 1-3 months to get a release out the door, always certainly missing our 13 week plan. • And at the end finally shipping something we were happy with... but that left us pretty drained (i.e. the bad flow)
  • 7. The chain of events • We'd hold releases, sometimes our branch points, until features were done, which meant... • Lots of changes got queued up on the trunk, which caused... • Engineers merging lots of changes to the branch, which led to... • Instability on the branch that we had to deal with and that meant...
  • 8. That chain of events... • Long lived branches, which... • Made supporting the branch (i.e. merging changes) more difficult as we drifted further from the trunk... • All of which led to... o Unpredictable release cycles, with date targets we could never hit, and.... o Engineers who were always in a rush to get their features into "this" release since we couldn't make any promises about the schedule
  • 9. Which led me to think... • I need a long vacation. • There has to be a better way. • What's causing things not to flow smoothly? ...Yes...In that order.
  • 10. Primary Goals • Shorten the release cycle and reduce the life span of a branch (make merges easier) • Make releases more predictable and easier to scope • Reduce the strain on the entire team Good Bad
  • 11. Goal to Plan - Getting down the cycle • Originally set out a plan to simplify the 12 week cycle, 6 weeks on dev, 6 weeks on beta, and then to stable. • Once diagrammed, using blocks to represent the weeks, realized that with 3 channels you could have two overlapping releases running at once, which could get us a stable release ~ every 6 weeks.
  • 13. It was a start, but it wasn't the full answer • Sure, turning the wheel faster would make some things, like merges, easier. • But without addressing the scope problems, the flow wouldn't be any better and would continue to interrupt releases. • Things wouldn't be any more predictable and the whole cycle would just fall apart (more puddles, less of a stream).
  • 14. Goal to Plan - Controlling Scope • The pace of the schedule sets the boundaries for the amount of work that can be completed. • It's important to have specific points in the schedule to review features and cut scope. • Establish clear expectations (and engineering practice) to developers that any features not ready to ship at branch will be disabled (i.e. we only cut post branch, never add).
  • 15. Plan to Pitch • Reached out to the various cross functional groups on the Chrome team, who would all be impacted, before approaching our executives. o Engineering, QA, Product, Marketing, Support, Localization, Security, etc... • There were a lot of concerns to address, but the exercise forced a lot of thought on the implications of the schedule change. • It took time, but it made the pitch easier to present to the leadership and the rest of the team.
  • 16. Concerns • Would large feature development still be possible? "Yes, engineers would have to work behind flags, however they can work for as many releases as they need to and can remove the flag when they are done." • Can the engineers keep up? "Their pace won't need to change, since features can be disabled there should be no milestone pressure, things ship when they are ready." • What would a world look like where we didn't base our marketing on releases? "We market features, not releases."
  • 17. And so we implemented it 11 week overlapping schedules.
  • 18. Our General Rules • The branch point is the end of our development cycle • Features only get disabled post branch point • Features should be engineered so that they can be disabled easily (1 patch) • Only stability, security, and critical regressions can ever block a release
  • 19. Things we struggled with • Overcoming team inertia (particularly when we cut scope) • Saying no consistently to the team • Fighting the urge to return to date driven management decisions • We initially didn't solve the trunk->dev->branch time to patch problem (daily channel helped). • Setting the right burn down point (i.e. branch point). • Disabling features.
  • 20. Key Lessons • Having clear and concise rules is important. • Predictable schedules cut down on communication costs and team confusion. • It takes work and fore-thought to disable features. • Diligent feature tracking is important.
  • 21. Conclusion • Speed alone isn't always the right answer, it's about keeping things running smoothly. • For us, scope was getting in the way of that goal. We basically wanted to operate more like trains leaving Grand Central Station (regularly scheduled and always on time), and less like taxis leaving the Bronx (ad hoc and unpredictable).