The challenge of getting 12 features to live; within 12 days in a row
For around 8 months now Codeweavers have been working on an exciting project for Alphabet, a leading provider of Business Mobility. As part of the web platform that Codeweavers have created for the company, Alphabet and Codeweavers decided to release a new feature for the platform every day for the 12 days before Christmas.
When Alphabet approached us about releasing a new feature each day as part of a 12 days of Christmas campaign I was extremely excited. I was certain we had the capabilities, resources and knowledge to achieve 12 features within 12 days but knew it would be extremely challenging and a proposal we have never been challenged with before.
Craig Judson, our Operations Manager
I think this is a good summary of how the development team felt as a whole. I’m a Front-end Developer and so this will be written with that perspective in mind – however working on new features from scratch is always exciting. We do spend a lot of time working with legacy code, or improving current features and so starting features from scratch is always interesting.
To begin with, we split into teams of two or three. Each team was responsible for one of the new features. The idea was that each team would complete each feature days before it was due for release and then move onto the next feature. Therefore, we could make sure all the code was deployed to live and then simply flick a switch (a config key), and make the feature live. Of course, things didn’t run as smoothly as that and we certainly faced some obstacles. Getting 12 features to live, within 12 days in a row was challenging! It was all about timing and sometimes we fell behind. As typical developers, we certainly underestimated how much time some features would take to develop. Even under time pressure it is still important to ensure the quality of our work and to ensure that as much of it as possible is test-driven. I think that’s something we’re good with at Codeweavers, however it certainly adds to the pressure when there’s a looming deadline everyday. The other issue we had is that we underestimated how long it would take to get so many new features to the live environment. We currently have a complex deployment mechanism that runs numerous tests as code goes up to the live environment; if there are any problems then deployment is stopped until these problems are fixed. This added to the time pressure and meant that we would have to work quickly to not only get the feature developed, but to also ensure that there was time to deploy it to live. Despite these small negatives there’s a lot that we did well. Ultimately we managed to hit our deadlines and get everything to live when intended. We definitely did the right thing by working as far ahead of schedule as possible and getting features to Andy, our Quality Assurance Manager as soon as we could. As a developer under pressure it’s easy to miss bugs that would be obvious to users; Andy helped us spot any issues and to prioritise these as necessary.
I believe that the 12 days of Christmas was certainly a success; we had some very good feedback from Alphabet and the dealers who would be using these new features. We hit all our deadlines and delivered everything as promised. There aren't many teams that could deliver so much new functionality on a complex app in such a small amount of time – certainly a great way to end the year.