This morning I finished up the infrastructure setup for our project. A bunch of under the hood work. Definitely required some propeller-head skills. The goal of this work is to get us to a working prototype as soon as possible. There are a couple links to some good agile testing articles, and the rest of this one is a quick list of what we did on Friday and today.
Pre-Project Setup Stuff
Most of what we have to do to kick off this project really doesn’t fall under the project time line (like setting up source control), because it is a one-time setup. But we still had to do it, so it is still here. And it could easily apply to your dev team if you aren’t using subversion, or rails, etc.
Here’s what we have working now:
- Subversion (svn) source code repository set up on our server
- RSA-encrypted bash shell access for simpler scc operations
- svn and TortoiseSVN set up for local development, project started, some simple code checked in. Dev-process operational
- Aptana/RadRails IDE set up and working (not integrated to svn, but workable)
- Apache, MySQL, Mongrel, Ruby, Rails, RSpec set up for local dev
Most of it is standard developer stuff, but RSpec is pretty interesting as an approach for supporting test driven development. RSpec proponents describe it as behavior driven development (BDD), but coming at this from a product management perspective, it is a form of requirements verification that differs semantically from stereotypical developer unit testing. Will share some examples later, when there’s something working. For now rest assured that test development is concurrent with (or preceding) code development, as part of our continuous integration approach – another key component of our agile project.
To set expectations, I expect to have at least one working version of the first release prototyped and available this week for feedback from a select group of alpha-users. The only barriers are learning ruby and rails and rspec, learning capistrano (rails deployment tech), resolving any unanticipated issues with the server setup. Writing the code and tests is the easy part.
OK, so this is just cool. Here’s the output from running some Rspec tests.
C:\dev\svn\ratings>spec -f s spec/models
Multiple users
– must not have the same login ID
– must not have the same email address
A user, in general,
– must have a login ID
– must have an email address
– must have a password
– must have a strong password
Finished in 0.36 seconds
6 specifications, 0 failures
Looks really nice.