Atlassian Ship What?

At Atlassian, we work hard to ship great products to our amazing customers. Another thing we like to do is set aside some time to let our brains run wild. Every last employee has some idea in the back of their mind about a product improvement and we think it’s critical to give them time to make those ideas a reality. ShipIt Say is a day, once a quarter, where we all set aside our day to day and run a 24 hour gauntlet to see what we can deliver in that time frame.

It’s also a great kick in the pants to finally build that thing you’ve been saying would make customers lives easier if it could just land on the backlog. We encourage people to form teams at the end get together, demo the final output and vote on a winner. The chance at glory gives you the push you’ve needed to finally prototype that idea that’s been rolling around.

For a bit more information on Atlassian ShipIt Days take a look on the About Us section of Atlassian.com.

Winning ShipIt

Clear Customer Value

The most important part of a ShipIt Day project that has aspirations of winning is to create something that shows clear customer value. Atlassian is full of engineers, so we value engineering quality and beautiful code but at the end of the day we’re all about customers. So while we enjoy a presentation on this cool new thing a computer can do, if we can’t figure out how it’s going to make a customers life easier it’s probably not going to win ShipIt.

Our most recent ShipIt Day was October 27/28 and several great things came out of it. The winner this time around was a Confluence Plugin called Autoconvert and we think it’s going to make quickly creating great content in Confluence even easier.

Autoconvert solves the problem of sharing links to other content within a Confluence page. Right now you might be thinking to yourself that there is no problem with linking to content. Creating a link is simple in Confluence. If you just want to share a plain old link, you can copy and paste it into the editor and autoformat will take care of making it into a clickable link and if you want to share a link to content within another Atlassian product you can even use macros so that the content is intelligently linked too, providing hover information about what’s behind the link.

The Autoconvert team decided that this way of creating links was broken. You shouldn’t have to know which button to press, or which macro to use when you want to create these `intelligent links` Confluence should know what content it can link to intelligently and just do the work for you.

That’s exactly what Autoconvert does. It enables Confluence to make decisions about the links you paste in. If it understands what you’re linking to, it will transform the link into the best possible experience for a user reading the page. If you paste a link to a YouTube video, the link will get transformed into an embedded player to show the video at that location. If the link goes to another Confluence page, the link text changes to the title of that page and will update should the page title ever change in the future.

Watch the Autoconvert demo video below to get a better idea.

Leverage Existing Tech

24 hours is not much time to churn out something interesting from scratch. In fact it’s nearly impossible. Instead a ShipIt project should leverage existing technology that at least one person on the team has a solid understanding of. This doesn’t have to be Atlassian specific code or product, we’re huge fans of open source and we love it when we discover a new project that’s going to help us ship something amazing.

With the recent launch of Confluence 4.0, Atlassian has been investing in our new Rich Text Editor for around a year with nearly every member of the Confluence team contributing to the editor in some way by the wrap up of 4.0 development. This makes the RTE a great launch pad for a ShipIt Day project. This is how the Autoconvert team was able to get so many intelligent link transformations in by the end of the 24 hour window. The core of Autoconvert is a simple editor plugin that extends the already solid autoformatting of links on paste.

Make It Extensible

This is a bit of social engineering that helps one to win an Atlassian ShipIt Day. As mentioned, we’ve got a very strong engineering culture and as such we love anything we can extend and customize to serve our own purposes. So making sure that you ShipIt project has extension or plugin points and talking about those when the final presentations roll around can help get you those few extra votes that count.

From a developers perspective Autoconvert is less about how intelligent it makes Confluence, but about how easy it makes adding more of this intelligence. The core plugin is actually just an extension point through which plugin developers can tell Confluence how it should treat links of certain types.
[cc lang=”javascript” theme=”dawn” escaped=”true” line_numbers=”0″]
//From any editor plugin
editor.exeCommand(‘addAutoconverter’, false, function(uri, anchor, done){
//provide a callback that calls done passing it a new DOM node.
if (uri.host.match(‘.*youtu\.be.*’)) {
var vidId = uri.path.substr(1);
var newurl = “http://youtube.com/watch?v=” + vidId;
done( $(node).attr(“href”, newurl).html(newurl) );
} else {
//not a URI that our plugin handles, just call done passing nothing.
done();
}
});
[/cc]
In 9 lines of code we’ve added handling for YouTube’s URL shortener youtu.be.

The excellent plugin tutorial Extending Autoconvert gives an explanation of each step in creating a Confluence extension that makes use of Autoconvert.

Learn Something

You’re going to need fans among the voters. People who when voting will mention casually to their friends that your team is the obvious winner, and keep in mind that these fans probably pitched their own ShipIt project just a few minutes ago. These fans come along pretty naturally when you do all points mentioned above.

  • Create Customer Value
  • Leverage Existing Tech
  • Demo The New Shiny
  • Make it Extensible

But it’s really not about winning at all. Autoconvert won ShipIt and when presented with the opportunity to give a speech every member of the team said thanks into the mic and passed it along. We’re all pretty happy about the fact that we work with people who want to create new shiny stuff that will actually have an impact on users.

With that in mind it’s critically important to do something on ShipIt Day that you can actually learn from. With Autoconvert some of us learned a bit about how easy it is to write an extension for the Confluence RTE. It’s also the first that that some of us have used a style of programming called continuation passing. We actually thought that these two points were interesting enough that we open sourced the code for Autoconvert it’s up on GitHub here.

Join Us For ShipIt Day

Could you win ShipIt Day without breaking a sweat? You should come work for Atlassian. We’re on the lookout for several different types of awesome.

 

Fresh ideas, announcements, and inspiration for your team, delivered weekly.

Subscribe now

Fresh ideas, announcements, and inspiration for your team, delivered weekly.

Subscribe now