Well, I’m finally giving up. I wanted it to work. It’s looks great, and the advertised features are very impressive. I have now spent about 3 to 4 days trying to get PlasticSCM up-and-running, and my work days are usually from 9am-5pm and 8pm-11pm, so that’s a lot of time.
Unfortunately, I just can’t get it working. I also have some serious concerns:
- There is one support guy in the USA. He’s fantastic, and knows his stuff inside and out. But there’s only one of him.
- Lots of little bugs and usability issues.
- I have a screenshot of PlasticSCM showing me that my revisions are all happening tomorrow, while the Vista clock is clearly showing today’s date (and the server and the client are both on my desktop where I took the screen shot).
- If you want to pull changes from another machine (my laptop in this case) you do a “pop”, because that apparently is the opposite of pushing changes to another server. If the support guy hadn’t told me this I never would have thought to apply a “stack-data-structure” analogy to grabbing changes from another machine.
- Right-clicking on the root of the repository and saying “Check-in (recursive)” doesn’t actually check-in all the changes. I discovered that changes to files that I had not explicitly checked out were completely (and silently) ignored. However, you can right-click on those files and then say “Check-in” and it will do so. So the check-in recursive command doesn’t actually check-in all the files you’ve changed, unless you are clicking on a changed file explicitly and then the check-in command will check it in. Software should be polite, and it should at the very least be consistent, and even better should probably ask if I want to include files I didn’t check-out and offer to show me the files. The software should adapt to my needs, not vice-versa.
(BTW, according to the support guy the solution is to click on the file root and say show changes, select them all, and then say check-in; that’s fine, but I really dislike the changing semantics of “check-in” and the silent failure to check-in modified but not explicitly checked-out files (like many other revision control systems will allow).
- I never did get the Subversion import working. They offered to do it for me if I sent them my subversion repository, but I just can’t bring myself to send all of my code to a 3rd party company without lots of legal paperwork in place.
- Their website is under heavy construction, and apparently things like the 1-800 number got forgotten. There should be strict processes for reviewing changes before pushing them out to the production website. It’s still not there and this is three days after I mentioned it to them.
- The documentation is dramatically wrong (see this post)
I know software has bugs – ALL software has bugs. My software has bugs. If the PlasticSCM date/time bug had been the only issue I’d encountered I’d have no problem paying for and using their product. But it wasn’t, it was all of the above and more. But in my previous job as a top-level systems architect and lead-developer with a very large finanical services company, it is really important not to mess up the basics, and with the right processes in place it’s not too hard either.
There are a few things I think they could do easily do better:
- They need more than 1 person on support
- For my business I use Ring Central, so if somebody phones the 1-800 number it goes directly to both my land-line and my cell phone at the same time.
- To be honest, I don’t really care if there is bad grammar in the documentation, I understand we live in a global world; it’s not terribly impressive, but I understand. However the documentation should not be flat-out wrong. Have the developer that wrote the feature either write the documentation for it (if their English is good enough) or have the developer check out the documentation after the technical writer has written it.
- Implement strict processes and controls for the website – it’s the first place a customer will come – spelling mistakes, broken forms and missing support phone numbers should never happen. There are lots of services to check that a website is up and running, including submitting forms; on the back-end any request e-mail with say “FROM TEST SERVER” and then a really long silly (constant) number could be automatically deleted. Additionally, before pushing out a new version of the website have somebody run through a check-list of features to test, including submitting forms.
- Do usability testing, and do it often. I do this as often as possible, and especially after implementing a new feature. My experience is that people are always very happy to help out and give you their advice! I’ll post more on usability testing soon, but it’s very easy to do and personally I find it very fun and rewarding.
I think that Codice Software have a potentially really great product, and I’ll definitely check out PlasticSCM in a few more versions. I think the easy and very visual branching is fantastic, and I love the distributed features (although sadly I didn’t get to try them out). I wish them all the best.
PS. The version I was trying to use is 2.8.163, and today’s date is 2009-12-08.