Roberts conversational guide to running ShipIt
Hi there, and welcome to Robert Massaioli’s guide for running a ShipIt. A ShipIt is an internal competition in which anybody can compete in an attempt to get their desired feature out into your customers’ hands. The event is called “ShipIt” because the goal is to create a feature and then “ship it” to customers in a day. Very simple!
I work for Atlassian, where the name ShipIt was coined and it all began. Running ShipIt events is part of the DNA of Atlassian as a company; as of the time of writing the very next ShipIt event will be ShipIt 25. I have been involved in the running ShipIt since ShipIt 20 and have competed in ShipIts before that. It is for this reason that I am so passionate about ShipIt, and I hope that I can make you feel the same way about ShipIt too.
It is my not-so-secret hope that our profession as a whole will eventually adopt the ShipIt idea as something that every software company should “just do”.
This article will, with any luck, impart everything that you need to know in order to run your own ShipIt. I’ll talk you through a ShipIt step by step and provide tips on every phase of the operation. If this document does not cover something, then please do not hesitate to raise a comment below and I will endeavor to answer your questions promptly.
Why should I run a ShipIt anyway? What is the value?
At Atlassian we see the value of a ShipIt as rather self-evident and proven; many projects that we now sell as products had their roots as ShipIt projects. To name a few:
- JIRA Capture
(A whole new product)
- Automagic Colour Schemes
(A useful timesaver)
- The ShipIt (Hackathon) app
(Something that helps run a ShipIt made in a ShipIt)
The ShipIt Voting Plugin (Something that helps run a ShipIt made in a ShipIt)
These are just three of the many improvements written (or started) in ShipIt time. And there are many more ShipIt projects that are purely inwards facing and help Atlassian’s internal processes.
I include this section because, whether running your first ShipIt or your 25th, eventually somebody asks the question: is all the time that we spend running ShipIt projects worth it? Atlassian’s answer would be a loud and strong “Yes!!”
Now, if I was planning on running my first ShipIt within an organisation and somebody asked me this question, my response would be: why don’t we just give it a try and see the results for ourselves? I would suggest that you take the same approach: try it and see. Don’t take my word for it; give it a shot and see what happens.
If that reasoning does not cut it for your company and you still need to justify the expense, here are the core reasons that a ShipIt is valuable:
- Employees are empowered to fix the problems that they know exist in their organisations but never have the time to address.
The vast number of ShipIt projects that I have seen aim to scratch an itch: to fix that problem that has been around forever and never gets fixed because “nobody has the time right now”. Not only that but empowering employees to fix the issues that they see as valuable says a great deal about trust and how much you value the people that your organisation has hired.
- ShipIt is bottom-up research for your company.
Instead of picking a select few people to perform R&D operations for your company over a long time in the hope that they will generate something useful, give that power to everybody in your business for a much shorter time. Watch as people will invent the features that they wished were in your products and reap the rewards of more useful products to your customers.
- ShipIt breaks down the silos in an organisation — it gets everybody talking to each other across teams.
In many large companies, you often hear that different parts of the organisation never talk to each other. A ShipIt flips that paradigm on its head. In a ShipIt project, you have many people with goals that often stretch across multiple facets of the organisation. Projects like that require communication with whichever people can help get the job done. In a ShipIt everybody comes together to ignore company boundaries and just get the job done!
- ShipIt builds community.
Most major companies are really just a bunch of smaller companies that decide to wear the same banner. There are no doorways into other teams or getting things done other than through management. This creates artificial bottlenecks that simply do not need to exist. In a ShipIt these bottlenecks are broken down, everybody talks directly to the people they need to talk to. All chains of command are ignored and, instead, people swarm on projects. Management, development, QA, support, marketing, sales and more: everybody just forgets their titles for one day. Instead, they all join a project and just get the job done. The collaboration creates social connections that will prove useful and fun for years to come. Above all, ShipIt builds community.
Hopefully, I have convinced you that running a ShipIt is a good idea and would be of great value to your company. It is a significant expense, but continued investment in ShipIt pays itself back tenfold in the amount of value it brings to your company.
Preparing to Run a ShipIt Day
The decision to run your first project was a big one, and it may have been a challenge to convince everybody that it was a good idea and get this far. So congratulations on making it this far! Now the preparation for the event can begin!
When running a ShipIt project, it usually makes sense to plan exactly how it is going to work in advance; you will find that everything flows much more smoothly if you do. At Atlassian, we always time our ShipIts to end on a Friday evening so that everybody can go home straight afterward and rest over the weekend. We tried other days of the week, and it’s just a bad experience. Trust us on this one: time your ShipIt to finish on a Friday evening. If you have multiple offices in multiple geographic locations (like Atlassian does), then let each geographic location end on the last day of their working week.
Here is what the ShipIt timetable looks like for a regular Atlassian ShipIt event (in later sections I will go into these phases in more details and explain how to plan them out):
Thursday 9:00 am — The earlybirds / cheaters start their ShipIt projects.
Some people get upset when this happens; they consider it unfair, and they have a valid argument: don’t start before the whistle is blown. But from my perspective, the point of ShipIt is to ship something to customers, so I don’t mind when people begin a few hours early. From experience, it does not provide an advantage either way so feel free to run your ShipIt as strictly or freely as you please.
Thu 11 am — ShipIt officially begins!
We usually try and get a 24h countdown going on all of the TV screens around the office to add to the sense of progress.
Thu 6 pm — Dinner and Drinks!
Atlassian usually orders a ton of pizza of all different kinds to satisfy everybody. You may choose the dinner of your choice but make sure there is something for everybody. (Think vegetarians, vegans, kosher, peanuts and other allergies or whatever dietary restrictions your coworkers may have)
Friday 9–10 am — Coffee cart in the foyer.
Atlassian likes to hire a barista to serve coffee in the morning. For those teams that have stayed up all night to complete their projects this is much appreciated.
Friday 11 am — ShipIt officially finishes, and teams should stop working on their projects.
Teams start preparing their demos. This is surprisingly important. Often people are tempted to keep working up to the last minute, but this is a bad idea. It just results in projects that break in the demos because of “last minute fixes”. Encourage people to stop working on the project in the last few hours and work on the presentations instead. After all, the presentation of your project is what you will be judged on by your peers.
Friday 2 pm — ShipIt Semi-Finals begin!
Usually, each of the demos runs for three minutes, each with a two-minute gap for teams to swap out and take the stage. The teams are also split up into four to six separate rooms, generally with 10–15 teams per room. Usually, the top two winners of each round progress to the finals, resulting in around ten finalists.
Friday 4 pm — The final presentations begin.
Each team is given 5 minutes to present, and everybody is in one room. There are still two minutes given between demos for people to swap over. Then voting happens, the winner is selected and the prizes awarded.
Friday 5:30–6pm — The closing celebration begins.
There is usually plenty of drinks and finger food available. Everybody has a big social catchup and eventually go home when they please.
As you can see it is a pretty fast-paced event. The bit that you may not have expected is that even though the point of ShipIt is to “ship a product to customers in one day” the actual event itself will take two full working days to complete.
The next sections break down the preparation tasks and how far in advance you should work on them.
Side note: Atlassian chooses to run ShipIt events once per quarter (every three months). There is no particular reason for this cadence; it just happens to be the most natural cycle of ShipIt events that the company settled upon. Feel free to run your ShipIt events with any amount of separation between but give yourself at least two months so that you can have the time required to organise and plan.
Two months before ShipIt
Pick an Organiser
The first thing that you should know is that ShipIt takes a good deal of planning and preparation; expect to be planning it two months in advance and to run it like a regular company event. You should seek to get help. At Atlassian we usually have two or three people working together to prepare every ShipIt with one person as the “driver” who is ultimately responsible for making it happen. We also rotate the responsibility of running each ShipIt between our larger teams to share the effort. For example, the JIRA team might run one ShipIt, and the Confluence team might run the next. The ShipIt responsibility round-robin also requires us to pass around in-house guides for running ShipIts; I am hoping that this document makes it unnecessary to create such a guide for your organisation and you can use this as your go-to document.
Create a ShipIt Project Register
Now that you have somebody that is going to help drive this ShipIt within your company, you need a place for people to register their projects. You need this registry for the following reasons:
- To know who is participating and what they will be working on.
- To know which teams exist so that you can vote for them.
- To assign teams to rooms so that you can have semi-finals and finals
(you still need to allocate teams to rooms even if there is only one room so that people know where to present their project demos).
At Atlassian, we like to use our products to address problems, and as a result, I have written the Hackathon app for JIRA Cloud.
To create a ShipIt project in JIRA do the following:
- Ensure that you have a Cloud version of JIRA running.
- As an administrator of the JIRA instance, install the “Hackathon for Cloud” app from the Atlassian Marketplace via the Universal Plugin Manager.
- Follow the Hackathon for Cloud “Getting Started” guide.
Building Security Communication and Planning
It may not happen at all at your ShipIt events, but at every Atlassian ShipIt, we have people who love the project that they are doing so much that they decide to pull an all-nighter just to turn their dream into a reality. But, depending on your office, you may have security concerns to worry about. If you are in a large building, then you will have to alert building management and organise the correct security for the event. If you are in a smaller office then you should provide instructions on how to lock up the building correctly and turn off the lights.
You may be tempted to prevent people from staying overnight all together, but I would try to avoid that if at all possible: if somebody wants to stay the night to work on their project during ShipIt then you should let them. Just take whatever precautions you need so you can make sure that everything is still secure when that happens.
Ultimately your building security is going to be specific to your own company and how things operate where you work. I just wanted to remind you that you should not forget that aspect of the planning.
A month before ShipIt
Create Shipment Orders
Hopefully, you have given yourself two months of time to plan this event because getting people to create their Shipment orders in advance is usually a tricky process; people love to procrastinate. So starting planning early is critical. But what is a shipment order?
A Shipment Order is a description of the project that a participant is planning to accomplish during ShipIt.
When you use the ShipIt voting plugin, each participating team creates a Shipment Order by creating a JIRA Issue in the ShipIt JIRA Project that you created in the previous step. The JIRA issue represents one or more people working together to accomplish a goal; the JIRA issue becomes the Shipment Order / ShipIt Project, and I will use these terms interchangeably.
A Shipment Order should contain:
- A catchy and short title (so that it can be read in full on a mobile phone).
- A healthy description of what the team wants to achieve with their project.
- The people that are going to work on this Shipment Order in the Team Members field. The person that created the JIRA issue should include themselves in the team members field if they intend to work on the project as they would then be a team member.
Here is what these details will look like in JIRA as compared to how it will look when people go to vote on the ShipIt Project (using the Atlassian Hackathon for Cloud app).
Even though the mobile description seems small, the screen will scroll so people can put as much in the description as they please.
Now, this is important: creating a Shipment Order before the ShipIt day should be considered mandatory. A Shipment Order is a promise. The participants promise that they will compete to the best of their ability to achieve the project that they set out to complete. It does not matter if they do accomplish it or not; what matters is that they commit to it in advance. If a person does not have a Shipment Order, then the implication is that they are not participating in ShipIt at all. Instead, they will be doing BAU work and maybe participating in the voting at the end.
The most important insight in this section is to make sure that you get people creating their Shipment Orders as early as possible. Advertise it far and wide and don’t let people forget about it. Even so, do not be surprised if the majority of people leave the creation of their Shipment Orders to the last minute. At Atlassian, roughly 50% of the total Shipment Orders are created in the previous 24 hours leading up to ShipIt.
Run Brownbag Sessions
For many of your potential participants, this will be the first time that they have ever competed in a ShipIt project and they may not know what to expect. For this reason, you may want to have brown bag sessions. A brown bag session is a very casual meeting for people that are looking for projects they can take on during ShipIt or for people that have a project idea but are looking for team members.
One of the organisers of the ShipIt should run the brown bag session. Advertise it around the company, try to invite as many people as possible and make it clear what the gathering will be about. You should also come prepared to the meeting with a list of 5–10 potential ShipIt project ideas. That way you can suggest a few project ideas for people that don’t have any ShipIt ideas of their own. With any luck, this will help participants develop their ideas.
At Atlassian we like to run the brown bags in the following way:
- Quickly introduce everybody in the room to each other by going around in a circle and saying names.
- Ask anybody if they have any ShipIt project ideas that they would like to share. When they do then write them up on the whiteboard / screen. If nobody shares straight away this is where you whip out your small list of ideas.
- Ask everybody which ideas they would like to take/join and then let them go and create their shipment orders together.
Ideally, a brown bag session does not take longer than 30 minutes.
Please bear in mind that sometimes nobody will show up for a brown bag session; that is not a bad thing. Sometimes people just don’t show up because they already know what they want to do or think they are too busy to take the time.
Organising Mid-ShipIt Dinner
On the evening of the first day, all of the participants that have chosen to stay this late will be pretty hungry and in need of food. Atlassian always provides pizza at this point; it is something of a tradition, and it is a highly practical meal. Pizza comes in all shapes and sizes, can be easily split among many people and can cater for vegetarians and other people with dietary requirements. I would personally recommend pizza for this reason, but any other type of food that meets these requirements would be great too.
Providing drinks is also a necessity. Atlassian provides water, soft drinks, and beer, but you are free to provide whatever combination that you prefer. Having something to drink (like soft drinks) always goes down well and is the minimum required if you want people to gather socially.
At this gathering, everybody is usually on a high from the day’s events and is sharing war stories of their failures and successes. It’s a fun night, and I highly recommend staying there and joining in the fun.
Also, remember that the dedicated people will want to stay the night and keep working on their pet project. Make sure that you cater to these awesome people because they could use the support!
Organising the Morning-After Coffee
When the participants come in the following morning, they are going to be pretty tired from the previous night’s events, and nothing turns them into happy campers more than a free coffee from the foyer as they come into work. Atlassian likes to hire a barista for that purpose in the morning, and sometimes other little special things happen. Keep the surprises flowing, and you will have grateful co-workers. The coffee is usually available between 9–10am at Atlassian, but you can play with the times to find something suitable for your company.
Preparing the ShipIt Prizes
After you have run the ShipIt and everybody has voted on the ShipIt Projects then it is time to award the prizes: you will need to make sure that you have prepared these prizes in advance so that they are ready to hand out to people.
At Atlassian, we have a major prize for the person that gets the most votes, and they (or their team) get the largest award of the ShipIt to share amongst themselves. When we ran our first few ShipIts, this was the only prize available. It made sense to only have one prize when there were only 20–30 people competing. But as ShipIt has grown, we sought to add more prizes to reward other awesome teams that were competing.
The other prizes that Atlassian presents include:
- “The Customer Prize”
We invite somebody that uses our products to do their job, and they pick the project that they like. The idea is that they usually pick the project that would be the most useful to them in their day to day work. It is a great honour to get this award because a real customer has told you that your project is worth shipping. If you want to give an award like this too then keep in mind that the invitation process and finding people from an external company takes time. So start early on this prize. (And even though the customer gets to choose the winner, you should provide them with the trophy/prize to present.)
- “The Founder Prize”
Our CEOs award their prize to the project that they think makes the best business sense.
- Team / Goal Prizes (rarer)
And then we have a varying number of prizes that are created by teams within the company. For example, Atlassian’s performance team has a prize that is awarded to the team that creates the best increase in performance in our products. Atlassian’s Security team offers a similar award for anything that increases security, and the Cloud team awards a prize for the project that manages to minimise resource utilization the most. These prizes are aimed at accomplishing company-specific goals.
It is up to you what prizes you present after the winners have been selected, but make sure you plan the prizes in advance and who is going to present each prize. And make sure you have a camera handy — you get great shots of people smiling when they accept prizes. Everybody loves prizes!
Organising the Closing Celebration
The closing celebration is a lot of fun — the winner has the adoration of their fans! Everybody digs into some finger food and maybe a few drinks, and everybody is happy that another successful ShipIt has been run. For this event, you don’t have to provide too much, usually just something to drink and a few snacks.
Even though it is a fun event to stay for, by this time people are tired. It is a Friday evening, and a great many people are looking forward to resting and enjoying their weekend. The best thing to do at this point is to celebrate with what energy people have left and then let everybody have a great relaxing weekend. And this is why it is so critical to have the ShipIt end at the end of the working week (Friday for most). When Friday evening arrives, as a participant, all you feel like doing is having a nice relaxing rest. ShipIt is an absolute ton of fun and I love it, but it can be exhausting too.
A week before ShipIt
Preparing the Presentation Rooms
Depending on how many people compete in your ShipIt, you are going to need one or more presentation rooms when it comes time for people to demo their ShipIt projects. You are going to need to ensure that every single presentation area has the facilities to run a ShipIt. If you have an IT team, enlist their help.
At Atlassian, we ensure that every room has a large screen (TV or projector) that can be used for showing the demos and slides live. The large screen will also be used to display the leaderboard when the time comes. We also ensure that there are connectors for all of the laptop types to those screens in every room. If it is a particularly large room with microphones and an audio system, we check that before ShipIt begins too. It should be possible for the teams to just walk into the presentation rooms and start showing their demos. Nothing kills the mood (and the timing of the day) like a long extended problem getting the presentations running. Make sure that this is working in advance.
I also like to place posters in every single presentation room that tells people what to do when it comes time to vote and what URL to use for voting. I also use a URL shortening service to shorten the URL provided by the ShipIt Voting Plugin so that people find it easy to type on their mobile phones. This aids the transition between presentations and voting.
On the day of ShipIt
All of the previous topics have been about preparing to run a ShipIt (and there was a lot to discuss), but this is the first topic where we actually get to investigate what happens when a ShipIt begins. As you can see from the itinerary above, ShipIt starts at 11 am on Thursday; you should try and start it with some fanfare. Don’t be afraid to play some noises/music in the office on all floors, send out emails and messages in the company-wide chat. Hijack the PA system if you can. Let everybody know that the time to start working on ShipIt is now and may the most awesome project win!
At this point, if you have extra screens lying around put some countdowns on them for 11 am the following day. That way people can get a visual indication of how long they have until the time is up and presentations begin. At Atlassian, we like to hijack the TV wallboards of every single team in the company and display a countdown on them.
This is also an important time in your use of the Hackathon for Cloud app. You will need to to do the following:
- Ensure the current rounds for your rooms are set to “Round 1”, representing that the first round of voting has begun and is now available.
- To be voteable, every team needs to belong to the current round and be assigned to a room. Make sure you have assigned all teams to their presentation rooms by using the Hackathon app.
Once this has been completed, you will be ready for the presentations and voting when the time comes.
Presentation Planning Time
A regular ShipIt is supposed to end at 11 am on Friday, but the presentations are not until 2 pm that same day. This means that teams have three hours to have lunch and prepare their presentation and demo. The presentation is arguably the most important part of a ShipIt project, and a good demo can garner a great many votes. Therefore you want to encourage participants to make their demos as awesome as possible. Three hours dedicated to presentations is the minimum time participants should allow for their presentations.
Within Atlassian, the importance of a demo is so high that some teams call ShipIt “presentation based development”. Many teams also adopt a “fake it till you make it” strategy and simply mock out everything so that it looks like their project works when really it is just a proof of concept with some parts faked. And that is perfectly okay — everyone does the best that they possibly can with the time they’re given in a ShipIt. And if a project is worth mocking up and gets votes then people have obviously decided that it is worth doing properly.
The key message here is: invest in your demos and presentations. They are important.
Semi-Finals and Finals
If you have 20–30 teams, then chances are that you are going to want to start running a semi-finals round to split people up. After all, if 20 teams demo for three minutes each, and there is a two-minute gap between teams, then that is about an hour and fourty minutes of presentation time. If you have fewer than 20 teams, chances are that you can get away with just having a finals round in a single room.
This stage is important and involves using the ShipIt Voting Plugin. After all of the teams have finished their presentations, you should direct everybody in the room to go to the voting link that was provided by the plugin. Hopefully, you have put that link up in a visible place and shortened it using a URL shortening service. If you are feeling adventurous, then you could also generate a QR code for the voting link and put that up on the screen and walls.
At the same time that you tell people to start voting you should open the ShipIt Leaderboard on the main screen of the room. But do not lock the room yet: that will stop the voting. Instead, you should see the number of votes that have been currently placed in this room, and it should change over time as people place more and more votes. Eventually, however, it should plateau and stop changing so frequently; this should take less than ten minutes. When it stops changing so frequently, then it is time to lock the voting for the current round. This prevents people from placing more votes in the current room.
At this point you will be ready to reveal the results. Press spacebar once to reveal third place, press it again to reveal second and press it a third time to reveal first place and the remaining teams. This process lets you perform a “big reveal” to the enjoyment of the crowd.
If you are running a multi-round ShipIt, after the winners are decided, use the ShipIt Project Transition Page to move the winners into the next round and the others into the unsuccessful state. Then run the finals much in the same way as the semi-finals.
What to do with successful ShipIt projects?
If you have made it this far then a tremendous congratulations is in order; you have managed to successfully run a ShipIt within your company. No mean feat and you should be showered with the adoration of all of your fans (or just get a fantastic weekend of relaxation). However, despite the fact that ShipIt has been completed and the winners chosen, you may not have actually shipped these projects to customers yet. And some projects will be so huge that they still require work and testing. There are various methods that you can use to try and get a ShipIt project to complete:
- At Atlassian one of the major reasons that we created 20% time was to finish off ShipIt projects and get them to customers. That could work for you too.
- Provide managers with “Get out of BAU and continue working on your ShipIt” tokens that they can hand to the lucky projects that the managers want to finish. The tokens give roughly one or two weeks of extra time to the project to help it complete.
- Planned Innovation Weeks: in the future, maybe between two projects, let your entire team have an innovation week in which you give them the time to finish off their ShipIt projects.
These are just three ideas for helping your successful ShipIt projects finish and get them to the same level of quality that you would expect from something that you usually deploy to customers. The fundamental idea here is to give teams more time to get the work done if they have created a project that everybody believes has legs. You can choose to give these teams more time in whichever way that you choose, but I strongly recommend planning for this time in advance if you want to realise the full benefits of running a ShipIt.
Well done hardy adventurer, you amazing shipiteer you! There was a large amount of content to get through here — all of it important in some shape or form and all designed to help you run your own ShipIt. The guidelines that I have laid out here are just that: they are guidelines, and you should feel free to change them to suit your organisation better. Just make sure that you keep the fundamental idea of ShipIt constant.
A ShipIt is supposed to be a fun, social event whereby a group of people can take 24 hours to build whatever scratches their itch in aid of your organisation. It is an empowering exercise that helps your people solve the issues that they always dreamed of fixing. Ultimately, it is about getting many great improvements to your customers for the benefit of all. If you run a ShipIt like this, then you are going to have a good time. No! A great time! This is ShipIt we are talking about here!
Thank you for taking the time to read this guide. Somewhere else in the world I am smiling knowing that some other people are about to have as much fun in a ShipIt as I have had. If this guide does not answer any questions that you have about ShipIt, then please contact me and I will be more than happy to respond. I will also update this guide for next time so that everybody may benefit from the question.
Good luck, have fun, and may your ShipIt Projects be awesome!