Sauce is a useful service but it doesn't address the test maintenance problem... And it is a big concern.
My advice: Do NOT use the Selenium IDE. write your own framework, using Selenium, which isolates changes when they occur. If someone changes the login page, you only need to change a login method in your test suite not all 200 rest cases! Look up the Page Objects pattern as one way of doing this
I'm using Selenium on a major project, and from the start refactored out common tasks. I record new tests using the Selenium IDE formerly, now the Sauce Builder plugin, then export to code and replace quite a lot with calls to our own much-simplified API (often cutting out huge sections of test code & replacing with one call).
Updating the tests even when we make significant changes to the website is must easier because of this approach.
One issue we ran into quickly... tests need to verify just one thing as much as possible, not long strings of actions that wander through the whole site. The problem is that there's considerable setup before testing that one thing -- creating users and getting them to the appropriate state, especially (worst of all when test cases require 3+ users to interact).
To address this I've set up some helper requests Selenium can make -- actions that aren't included in our production build -- to create/destroy test users of different types & in different states directly. I'm also thinking of adding a page that'll simply return a full dump of info on a given test user, so we can test that the end result of actions in the UI have resulted in the expected data.
It's all very much work in progress, but I'm convinced that with a little extra elbow grease added as pain points show up, we can keep a full suite of Selenium tests alive and useful.
I think it makes sense to get a lawyer at some point, but right now this would divert your attention away from your product, especially as you're bootstrapping it. As long as you have clear terms/policy statement outlining the usual (plenty of templates online) I think you'll be fine for now. Focus on the product, then worry about legals when you're ready.
I think that nearly all good developers feel their code isn't "good enough", so its nothing to worry about! This search for perfection will drive you to constantly improve and practice, which can only be a good thing!
Keep coding, and as always ask the developer community for help and advice, stackoverflow has certainly helped me a lot.
This is pretty awesome! Love the design, the docs in particular. We've been building something similar at slidereach - http://slidereach.com but the focus is on import from ppt/keynote/pdf rather than a markup-based presentation. Is this a more preferred route?
I'm glad I'm not the only one. Its far too easy to want to play with the latest and greatest tech, especially when you're already dealing with a bleeding-edge framework. And you're right, I did spend a long time setting up my 'perfect' project with automated deploys and tests...but that's for another post :)
Great article Joel. It is hard to get into that way of thinking when you're being a perfectionist over things, but you're right. Getting validation early and often will drive your featureset and refinements going forward.
I'm currently in the same boat, working fulltime for a UK accelerator/incubator project, and then working on SlideReach (http://slidereach.com) in my evenings and weekends. The big challenge I'm facing is of choosing what to work on in my limited time, but thats where getting feedback early and often should help.