the(art).of << fine.code

Technical Blog from the team at Redbubble.

Redbubble at LAST

| | Comments

At Redbubble we are about supporting the communities that love creating. Whether the creation is web products, set work or any engaging experience, it doesn’t matter. It’s our commitment to foster and nurture those that are passionate.

One of the initiatives in the web product arena is supporting the LAST Conference (@LASTConf) – a small, local grass roots event all about product development.

Craig and Ed the team at LAST work hard to get great speakers and sponsors that live and breathe product and if you have attended, you’d understand it’s a great day.

Agile Product Owners and Business Analysts Meetup

| | Comments

Gladesville Hospital Cameo No 1 by Rosalie Dale

*Gladesville Hospital Cameo No 1 by Rosalie Dale

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.

Alistair Cockburn Visits Redbubble

| | Comments

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.

This was his famous Draw the Drawing Game. It involved us splitting into self-organising teams of “artists” and “specifiers”. Specifiers would spend their time in one room, writing specifications of a drawing that the artists should draw in a separate room. They could only use textual messages between the groups (delivered to and fro by one of the specifiers). Speaking, drawing or gesturing was against the rules.

A Better Image Uploader With Canvas and HTML 5

| | Comments

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.

A Couple of New Open Source Gems

| | Comments

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.

User Research: Noticeability at Redbubble

| | Comments

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 the parts you think are important), or conversely if users are having trouble noticing things that are needed to achieve the goals they have on that page.

Responsive Redbubble

| | Comments

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 best fit. And after building a few small prototypes it was pretty obvious that the Redbubble site was a good candidate to use responsive design.

NewRelic Plugins - Monitor Everything

| | Comments

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.

Continuous Delivery at Redbubble

| | Comments

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 website deployment required more than a full day to complete. However, this quite often doesn’t translate into that mechanism being called into use that often. The challenge lies in the fact that to be able to release changes confidently as often as your mechanisms allow, many parts of your process need to be aligned.

I will give a brief walkthrough of our overall process, starting at the tail end and tracking back to the beginning.