views:

598

answers:

9

We have Product Backlog in an Excel Spreadsheet that we also commit to SVN, so everyone can open use it and update to latest version.

The problem we have is:
How do you enable Excel spreadsheet to be simultaneously used by many people and not override each other's data. Some kind of merging data? Is it at all possible?

We would like to keep our data in Excel spreadsheet since it provides all the functionality we need. We tried Google spreadsheets that are much better in terms of collaboration, but they don't support cell drop-down values...

EDIT
I've found out that I can also save my Excel file in XML format (XML Spreadsheet 2003). This format preserves all formating, formulas, conditional styles etc. Only graphs fall out, but I can live with that. I suppose that SVN Merge tools more or less support XML file merging when multiple people work on it.
So I thought of this feature, but I don't know how much does Excel change XML document between saves. Maybe it reorders a lot of stuff hence making it impossible for merge tools to work with expected results. Anyone has any experience with this?. It would basically make it possible for multiple people working on the same file.

EDIT2
I've tried managing Excel spreadsheets in a plain XML file (XML Spreadsheet 2003 file format) that makes it possible for SVN to merge it since it's a text file. I've learned to not use conditinal formatting, because it doesn't always work, so you'll have problems reopening the file. Also graphs won't be preserved.
Testing outcome: I've tried simultaneous work on the same XML, but Excel works with these files in no particular order (looks like it converts it to Excel and back to XML when saving it), so even if you make a small change to data, your XML will look completely different. So this format is a no go for collaborative purposes with merge capabilities.

+3  A: 

Excel has a built-in share/merge capability (search the help for "share workbook") but it's meant for live copies on shared drives. Still, for this particular problem that might be a better solution than SVN.

David Moles
This is a small project, so we use web hosted SVN service. We don't have any servers (always on) to share our documents on. Is there any public free hosting for this as well?
Robert Koritnik
I still give you a +1 for providing a different solution using Excel. Even though we can't really use it at the moment.
Robert Koritnik
Thanks. If you google something like `windows "network drive" cloud` you'll find a bunch of startups offering stuff more or less like that, some of them with free or at least cheap starter accounts -- though I don't know how good any of them are, or how well they'd work for this use case.
David Moles
You might also look into WebDAV hosting -- it should be possible to treat a WebDAV server as a network drive.
David Moles
@David: Tried that already. Sharing is somehow fine, but there can only be **one** writable copy and people would have to be disciplined to open, change and close the file. Merging solves this problem perfectly. But only on text files.
Robert Koritnik
A: 

Excel doesn't support the scenario you described, you need to use a multi-user database, or an proper work-tracking system. There are some hosted ones you can try (Jira, FogBugz) but you're not going to get multi-user with Excel (unless you use the shared spreadsheet option, but as David Moles said, that's meant for shared xls files on a file server).

Neil Barnwell
Most of the tools I've seen are a bit over-engeneered for our needs which would mean more management as needed. And we don't want to waste precious time on management.
Robert Koritnik
A: 

SVN allows eveyone to get the latest version and work on the latest version without a "checking out" / "make read-only". This enables multi-users working the same file, and would assume that the Merge features only work on Text docuements (code files) (This is based on my possibly limited experience with SVN)

Its probabaly time to upgrade from an Excel system to a more systematic multi-user database system.

Mark Redman
+6  A: 

Excel data can be merged but it's somewhat hard and error prone.

What I've found useful is to put the svn:needs-lock property on that kind of hard-to-merge files. The file will be read-only by default to communicate "do not edit this" and acquiring a svn lock makes it a read-write file, while preventing other users from acquiring a lock at the same time. It's a communication mechanism, not a 100% foolproof merge conflict prevention mechanism.

More information in svnbook.

laalto
Good tip for SVN + 1...but prevents the multi-user aspect in this case.
Mark Redman
@Mark: it prevents multi-SIMULTANEOUS-users, doesn't really prevent multi-users.
Robert Koritnik
A: 

I wonder if you're using the right tools for the job. Perhaps you should be investigating some Scrum tools to help you manage your projects.

Excel works well in a simple, non-shared scenario but I would investigate something more powerful to allow your team to manage the scrum process simultaneously.

Brian Agnew
We are a small team. 3 people. 2 developers, 1 tester. So it does fit our environment I guess. We're mostly concerned about overwriting eachother's data. I'll take a look at your link anyway.
Robert Koritnik
A: 

After hearing about this project on several podcasts, I've started using Zen. It's based on a kanban board.

Brad Bruce
A: 

I'm pretty sure TortoiseSVN has some hooks (merge-docx.js, et al) which enable you to merge complex file types like office documents.

Or perhaps something like this (at a push)

Jim T
A: 

have you looked at the Greenhopper planning backlog tool.

ooo
A: 

You could try XLLoop. This lets you write excel functions (UDFs) on an external server. It includes server implementations in many different languages.

So instead of keeping the data on your spreadsheet, you could have it stored in an external database then create a template excel sheet that calls the functions on your server. This will allow the data to be automatically updated and also allow multiple people to use the sheet at the same time.

BTW, I work on the project so let me know if you have any questions.

Peter Smith
How come there's no C# support? at least documentation doesn't mention it.
Robert Koritnik
This is all fine and dandy, but if I had to develop my own stuff to connect to XLLoop I'd rather write a web interface for it. It would probably be better and easier (especially when I'd use ExtJS's set of rich controls). But I'd do it in a different way then anyway. More in a kanban style. It's more intuitive to development process.
Robert Koritnik
server-side development in C#? seriously?
Peter Smith