When working within a team of programmers I have always found that maximizing collaboration between programmers in the design phase has great benefits down the road. Even if a programmer isn’t expected to work within the implementation of a specific design I find they still get great value out of knowing, at least at a high level, how each area of the codebase is meant to flow.
To that end I’m always on the hunt for better tools to help achieve this. I’ve yet to find the perfect combination of non-invasive tools across the entire programming workflow end-to-end as unfortunately many of the most powerful ones can tend to dictate what other tools you must use to keep compatibility.
However I believe I have found a good piece of the puzzle for at least the design phase of the programming workflow.
LucidChart is a web-based collaborative charting tool. They have a fairly massive base of chart types, of which they continue to add to. However my focus thus far has been their UML diagrams for code design and they work perfectly well. There are 3 key features that I have found make it a fantastic tool:
Our team of 5 programmers and a fairly complex video game codebase have thus far been able to utilize their free version. The free version is great in that the only limitation is the number of UML elements you can fit in a single page – 60 at the time of writing. That should be plenty for any medium sized design, and if not you can always just open another chart file and segment the design.
All of our document storage happens via Google Drive. I won’t say much for this service as it speaks for itself – Its the defacto standard for online document collaboration and free. LucidChart have developed a Google Drive App that allows one to store the chart files in Google Drive for automatic sharing and collaboration. We can create a new LucidChart as easily as a Google Word document.
The final and most important piece of the puzzle is of course the collaborative features of LucidChart, which are about as much as you could ask for. The charting is about as live as collaborating in a Google Word document. We can typically smash out the first pass of a design together remotely over Skype with nothing more than this setup.
Over-all, the LucidChart + Google Drive combination has turned out to be an extremely useful tool for us as a completely remotely indie team. I am of course always on the hunt for improvements so please feel free to contact me should you believe you have an even nicer solution!