Last Wednesday, we hosted a meet-up of the Agile Product Owners and Business Analysts group. The title of this meetup was “Validated Learning and Outcomes Using Lean Startup and Agile“. At Redbubble, we believe that sharing the knowledge and the experience we have is important for the community. We are grateful to have such capable and keen people around us and hosting an event like this would allow us to make the world a better place. We also wanted to talk about how we practice Lean Startup and Agile principles to achieve our goals of increasing value to our customers.
Some time ago, we stumbled on a way of looking at organising development teams courtesy of Spotify. According to this paper (PDF, and also an excellent read), Spotify organise their teams in several orthogonal ways. Redbubble is quite similar.
A couple of weeks ago we were honoured and excited to welcome Alistair Cockburn, one of the authors of the Agile Manifesto, into Redbubble HQ. It was a hastily arranged, last minute opportunity, and we were thrilled that Alistair could spare the time for us out of his busy trip to Melbourne. Alistair took over Level 2 (none of our meeting rooms were big enough for the occasion). He told us a bit about himself, his views on Agile Software Development (he describes it as a “co-operative game”) and ran an exercise with us.
At Redbubble, we are dependent on artists uploading new designs and illustrations. Naturally, we’d like to make this as easy as possible. Previously, the process to do this was to download a template, position their work offline, upload, save, check the final product and repeat. For designs that need to be in a particular position this could be an extremely painful process! In order to lower the hurdle for new users and decrease the frustration level for our long-time artists, we introduced a new uploader which takes away the need for templates and allows for preview and positioning of the design on the product before upload.
The success of Ruby has always been dependent on high quality open source libraries. The best known example is of course Rails. The codebase at Redbubble is mainly a monolithic Rails application with very few independent modules. While looking at possible architectures to move forward (which is outside the scope of this article) we also decided to start open-sourcing some of the code, small and large, that make our site run. We’re happy to present our first couple of open-sourced gems, KeyVault and ConditionalCapistrano.
Here at Redbubble, we do more than just sling code around all day long. We’re always interested in finding out more about our users, how they interact with the website, and what it is they’re actually trying to achieve when they’re on it. Now throw in some Arts and Crafts. What we get out is what’s called a Noticeability Study. This is an interesting User Research/UX technique which is designed to reveal which parts of a web page users actually notice. It is also incredibly quick to run – we’ve found we can run through one of these in less than half an hour. From this you can start to make inferences about what parts of your design are actually important (rather than
Redbubble has been around for a while now and we haven’t made any efforts to give our visitors on phones and tablets an awesome experience – a better experience than looking at a full sized page zoomed out! So to that end, we recently spent a decent amount of time to make Redbubble more mobile friendly. Responsive or Native? When developing a mobile site, there are basically three options available: Build a native app. Create a separate mobile site. Convert the existing site over to a responsive design. Since we didn’t have the expertise to build a native app and a separate mobile site would only mean we had to support two codebases, we decided pretty early on that the responsive way is the
We’ve previously posted about measuring what’s happening on Redbubble, but with NewRelic’s new plugin system our lives just got a bit easier. We’ve been using NewRelic for a while now and frequently make use of it’s application and server monitoring for diagnosing problems. Generally the timescales it keeps data for are sane, integration with other tools is good and the UI is easy to use. There are already a plethora of plugins waiting for you to install, although NewRelic’s definition of a plugin is not what we expected. The plugins are small applications (agents) that poll your apps and report back to NewRelic using your licence key and an agent_guid for identification. So installation isn’t all that straightforward, depending on what you want to monitor.
I recently had cause to reflect on the fact that our engineering teams regularly release code changes into production multiple times within a single day and felt it worthwhile to elaborate on what that means and how it has changed the way we work as a business. This practice is known as Continuous Delivery. Continuous Delivery is a logical extension of the Agile philosophy especially the practices of Extreme Programming. It requires a high degree of automation and a trivial deployment process. It also requires courage and the willingness to not take the easy way out in your overall processes. Most deployment mechanisms can actually be run multiple times within a single day – it would be rare that a
A little while ago, we realised that at having information about what was happening on Redbubble right now would be useful for many things; including tracking and alerting us to the sorts of issues that wouldn’t necessarily be caught by more traditional means (such as Airbrake alerting). Having come across this post by Etsy, we looked at statsd as a way to collect this information in a quick way without adding much processing overhead.