Agile Project Management with Google Docs, Git and Redmine

At Evolving Web, Redmine is at the core of our project management methodology. Redmine’s extensibility makes it the open source tool of choice for scoping, tracking and maintaining projects. Today, we're highlighting some of the integration that's possible between Redmine, Google Docs and Git. This piece is complementary to our post on Customizing Redmine in Agile Project Management.

We’re big fans of Google Docs at Evolving Web. Most of our documentation is created in Google Documents, Spreadsheets and Drawings. The efficiencies and transparency of browser-based collaborative writing have completely changed how we write and document our work. Other advantages include revision history, user colour coding and advanced commenting features. Given our reliance upon these tools, it was important for us to integrate it with Redmine to maintain and manage our project flow. There's no point in creating documentation if it isn't being used as a basis for application development.

Google Spreadsheets + Redmine

We start a project by documenting the technical specifications in a Google Spreadsheet. This document evolves from many exploratory discussions with the client, and continues to be updated throughout the project. Once consensus on the specifications has been reached, we make a Spec issue in Redmine for each spreadsheet line item and Redmine tickets are created as sub-tasks of the Spec. (Many agile teams call them Stories, we call them Specs.) Now here's the cool part: Within Redmine, we’ve written custom code that pulls in entire sheets or just a single live row from the spreadsheet into the corresponding Spec issue in Redmine. This allows us to be confident that the developers are building according to the latest approved specifications. (UPDATE: We've released a Redmine plug-in if you want to try this at home.)

Google Spreadsheets Redmine

If a line item is edited in the spreadsheet, the change is immediately reflected in the embedded Redmine view. This customization resolves one of the major limitations of Redmine: multiple team members can't edit the same ticket at the same time. Embedding a row from a shared doc is more practical. Creating issues per spec item is also useful for tracking the feature’s development, time logged against it (Redmine is also our time-tracker), and in some cases serving as evidence of its existence when major changes are made to the spreadsheet.

Google Docs + Redmine

In addition to the Google Spreadsheets integration is our work with Google Documents. Using similar custom code, we’ve been able to embed entire documents into issue descriptions and updates.

Google Docs Redmine

This has proven to be a significant time-saver since any references to the document in the issue can be easily confirmed via the embedded view. If only part of a large document needs to be embedded in an issue, we create a table of contents in the Google Document, and then link to that unique anchor URL in the RM issue. The resulting view is of the document starting from the referenced header. (In the future, we'd like to experiment with live editing of the Google Doc within Redmine.)

Git + Redmine

Redmine offers tight integration with Git, our version control system. Each ticket includes information regarding when the relevant code was updated and links to the code changes made by the developer. This feature allows us to remain nimble when collaborating between developers and provides a basis for technical QA throughout the development process.

Git Revision Redmine

An important aspect of Redmine’s Git integration is the visibility that it gives to content files that we use to populate a site. Whenever we build a major site, it often needs to be populated with data from a legacy site or other sources, which we pull into CSV files (usually one per content type). Similarly, large translation sets are often received as a spreadsheet. When we receive these documents, our developers use Git to track each file and update the files in Git when we receive an updated version. Git exposes these files to Redmine, allowing managers access to a timeline of when documents were received and how they change over time.

Git Repository Redmine

(Another plug for Google Spreadsheets: sharing a spreadsheet between the dev shop and the client team is a great way to define, populate and QA the site content prior to import. Its much more practical than sending and merging Excel files as email attachments.)

While our customization has focused mostly on Google Docs and Git, we find Redmine’s built-in flexibility very encouraging. With a little work, almost any tool can be integrated into this framework, making project management and maintenance that much simpler.

This post was written by Simone Pereira and Aran Rasmussen.

Comments

Wow, nice article! Digg the techniques for keeping things linked and up to date. Such a challenge in large projects! I may just have to give this a try on my next project. *bookmarked*

I am also happy with Redmine. Any chance you would share your custom code?

All the best,
Guy Saban

Sirkitree: Thanks for the kind words! It's really made a big difference in our documentation management.

GS: Yes, we'll work on a follow-up post with more details.

Hey great article, little problem though - your redmine link has an extra http. We too use Gdocs & Git, I'll have to look into the redmine option a bit more -- thanks for the tip!

Been leaning at RM+GD myself so thank you very much for filling in the blanks. Also looking forward to your follow up post and being able to test your custom code.

/thomas

Thanks for catching that, Shannon! It should be fixed now. I think you'll really love Redmine once you play around with it a bit.

Excellent work and thanks for sharing. I really like google spreadsheets for doing top-down design of projects, and estimating. Now I'm intrigued if we could do automated integration into our project management tool of choice. Great ideas!

This article has nothing to do with agile development.

We have just moved from OA (can't always eat your own dogfood) to Redmine this week and are loving it. We have similar workflow to you wrt to Gdocs spreadsheets for defining our specification and making time estimates. Would truly love to see your code for the integration between Google spreadsheets and Redmine issues.

Can you share the custom code for redmine and google docs/sheet integration?

Amazing! you made me install Redmine immediately on my test server, I still prefer such tools over the thousand SaaS tools. Will wait for the scripts!

Good Work !
We are tinking about new project management tool for our web division and it's on the scope !
Where can we find the cutom code ?