Sprintly Logo

At the end of August I blogged about some of the tools I use when freelancing. In this post I am going to go into a little more depth on how I use Sprint.ly to manage my projects.

If you haven't heard of it before, Sprint.ly is an online project management tool that is great for small teams, or freelancers, that use an agile software development process. The application costs $9 per user, per month.

Disclaimer: I'm not getting paid to write this post.

I am going to take you through how I use Sprint.ly to track requirements, keep the status of project items up-to-date and how I manage sprints. This is by no means a comprehensive exploration of Sprint.ly but hopefully this post will give you a great idea of how using Sprint.ly can improve your workflow.

Tracking Project Tasks and Managing Requirements

Sprint.ly is fairly opinionated. The application has been setup for teams that follow an agile development process. If you're more accustomed to working with a more traditional waterfall process, you can stop reading here.

In Sprint.ly there are four types of project items: Stories, Tasks, Defects and Tests.

Stories - Stories (you may know these as user stories) describe a particular behaviour or process that your application needs to accomodate. I use stories to describe each of the different features that an application needs to have. The great thing about Sprint.ly is that it forces you to think through your stories. When adding a new story the form is split into three sections. Who, What and Why. The figure below shows an example of the new story form.

Stories are also really useful for tracking client requirements. The first thing that I do after having a review meeting with a client is to come back and add all of the feedback I have received from the client as stories in Sprint.ly. This way I can be sure that I deliver on everything that we have agreed to.

Tasks - Task items are useful for tracking general tasks that are related to the project. You can also assign tasks to a particular user story so if your story described a particular feature, you could use tasks to outline each component of that feature.

Defects - Defect items are used to track, well”¦ bugs. These items are particularly useful if you link up your VCS (more on this later).

Tests - Test items are used to describe tests for your system. These can be really useful for making a pre-launch checklist or describing the tests that you need to write if you follow a Test Driven Development (TDD) programming methodology.

Get Sprint.ly Talking with your VCS

My favourite feature of Sprintl.y by far is it's VCS integration. This allows you to update the status of items directly from your commit messages. You do this by placing keywords in your commit message followed by the ID (or IDs) of the item(s) you want to update. You can find a full list of available keywords in the sprint.ly help docs. The two keywords that I use the most are Ref and Fixes. Here is an example of a commit message that would update an item.

Fixed bug in article view controller. Fixes #23.

A link to this commit will then show up in the task comments on Sprint.ly, as shown in the image below.

If you use GitHub you can setup this integration by going to the project admin and adding a new webhook that pings your project url every time a new commit is pushed. You can find your project url on the 'Projects' page in Sprint.ly.

Update Sprint.ly has an official GitHub service that allows for a tighter integration than is available when simply using WebHooks. You can setup the service in the 'Service Hooks' section of your project admin.

There is also a command line tool available that allows you to access your Sprint.ly tasks directly from the terminal, eliminating the need to switch to your browser to get task numbers. The tool also includes a commit-msg hook that allows you to select the task you are working on when making a commit. https://github.com/nextbigsoundinc/Sprintly-GitHub

Big thanks to @JoeStump for pointing these out.

Splitting your Stories into Sprints

One of the biggest elements of an agile development process is the concept of 'sprints'. These are short periods of time in which you (or your team) works towards clearing a pre-defined set of tasks. In theory, at the end of a sprint you should be able to deploy your application into production. (This is not always realistic, but it is a good goal to aim for).

For the projects I undertake I usually split up the development into one or two week sprints, depending on the size and complexity of the project.

To manage the development tasks for a particular sprint I simply tag items as 'sprint #1', 'sprint #2', etc”¦

At the beginning of a sprint I move all of the items related to the sprint into the current column in the dashboard.

If you want to search for items belonging to a particular sprint you can easily filter by the relevant tag.

Summary

I've now been using Sprint.ly to manage my projects for a little over six months and it has become an indispensable part of my development workflow. I accept that this is not going to be suitable for all teams out there but if you follow an agile development methodology (or are interested in agile) Sprintly makes a great alternative to other applications project management tools, such as Pivotal Tracker or Basecamp.

Matt West