• The future of SUMO development

    by  • 27 December 2010 • Articles

    Just this month, the SUMO development team completed our transition to our new platform, Kitsune. This small release represented the culmination of nearly a year of great work, and I couldn’t be prouder of the team.

    At first, as the end of the tunnel approached, and we weren’t sure what we’d be doing next, I felt a little like Inigo Montoya: I’d been in the rewrite business so long, now that it’s over…

    2010 was a year of investment in our code, and in our infrastructure, both hardware and software. We moved our code from svn to git; started using Hudson to run our comprehensive unit test suite; centralized our configuration to simplify deployment. Now it’s time to start taking advantage of that investment.

    In that spirit, I want to issue a John Kennedy-style challenge: by this time next year, I want SUMO to deploy continuously.

    There is a lot of work to do to get there.

    • Pushing code to production needs to be automated, for all but the biggest, downtime-requiring changes.
    • We need to expand automated test coverage to include our front-end and JavaScript code.
    • Our code reviews and standards will need to be even higher.
    • We’ll need to redefine the relationship between development and QA.
    • When there are problems, we need the agility to respond quickly and the focus to learn from them and improve.
    • We’ll need to be able to dark launch and flip on features, preferably with the flexibility to test with small groups.
    • We’ll need to reevaluate our branch management and staging environments.
    • We’ll need to rethink how we organize and prioritize work.

    And unlike 2010, we’ll have to make these investments and improvements while maintaining a fast-paced development schedule.

    This is not something the SUMOdev team can do alone: this is a challenge for us, for our ops team, and for QA as well. I look forward to working more closely with these teams as we chase this target.

    Continuous deployment will bring a number of benefits—many of the requirements I just listed are benefits and solid goals by themselves—especially for contributors.

    • Bugs are fixed for everyone as soon as they’re fixed for us.
    • We can respond to issues faster.
    • Code will be tested at production scale.
    • Our processes will continually improve.
    • We’ll reduce the load on individuals from IT and QA.

    I call this a challenge because it will not be easy: it will be hard. It will push the bounds of our experience and our ingenuity. SUMO will be better, and we will be better.

    How do we get there? Frankly, I don’t know yet. There are some clear, actionable items, like front-end testing and feature flags, and there is some brainstorming to do. There will be unanticipated hurdles to overcome and we will almost certainly make some missteps, and we will have to work around those.

    In 2010, we pushed ourselves in terms of how much we could get do, and while we accomplished an incredible amount, that’s not a healthy pace to set for another year. In 2011, I want us to push ourselves in terms of what we can do, and how we do it.

    2011 will be a great year for SUMOdev. And with this challenge, I just want to say: Game On.

    • http://embrangler.com Paul C

      Ha! Nice one James. I will be immensely proud of SUMOdev, IT, QA and all other parties involved when (not if) we succeed!

    • http://fredericiana.com Fred

      Nice writeup of the recent accomplishments and future challenges for the SUMO project. I am looking forward to working with you as these changes happen to the benefit of our as-of-yet-unnamed development team.

    • http://dailycavalier.com William

      Congratulations on your accomplishments in 2010. Moving to Kitsune is a huge win as you’ve mentioned in previous posts, and it really sets up the SUMODev team for even more fantastic goals in 2011.

      Continuous deployment will be a huge victory for SUMO, and I’m really glad you’re planning on tackling that next. Not only will it be easier on resources from other teams, but it has an immediate impact on those who visit the site and contributors.

      While a few Mozilla web properties support continuous deployment, I believe they’re all static sites. Correct me if I’m wrong, but this would mean that SUMO would be the first dynamic Mozilla site to support continuous deployment. It will certainly be challenging, but it would set a great example (and help figure out the kinks of CD) for other Mozilla sites to follow.

      I’m excited about 2011 for SUMO.

    • http://jamessocol.com/ James

      Thanks, guys! I’m already incredibly proud of our team, but I know with a little challenge we can get even better.

      @William: You could call Mozilla.com CD, but yeah, only static things, and without the robust, defensive infrastructure that an app will require.

      Happy New Year!