When I started work for the NSSF the complexity of what I did was pretty simple — just dealing with a simple news web site and a few registration sites tailored to the three meets NSSF runs. This lead to our processes being just enough to "get the job done". Most people working with me from the foundation didn’t have experience with things like formal test procedures, requirements, etc, so they didn’t really see the benefit in these things. Also with the projects being relatively small it was hard to justify the overhead. A lack of process put extra stress on me though — frequent was the massive midnight change to something that had to go out tomorrow, and then the next-day cleanup because I didn’t have time to test it fully.
However one thing has begun to change all this — customers.
Now HeadCount (the meet registration system I developed for NSSF) has people using it besides just them. Where in the past they were willing to take some flack if I pushed out a change that caused some errors when people registered for NSSF’s own meets, now we have to answer to other people. Having to answer to other people who paid for your service changes things.
The change I’m implementing, and probably the most important, is how we test. I’m moving away from their old mentality of "yeah, I played around with it and it looks good, publish it" to a more formal process. Now we have a dedicated bug tracker, an SVN repository, and I’m working on test procedures that have to followed before we push anything out to the live server. It will add some more work for me and one or two people at NSSF, but in the end it’s worth it, and hell it should have been done years ago.
Although, I’m kind of happy that I didn’t try to do it earlier. Had I done it even a year or two ago I would have been stuck setting up a lot on my own. However now, thanks to the Web2.0/Ruby-on-Rails/omg-API rush, I’ve found two web-based solutions to take care of the larger things needed for this kind of process. Lighthouse is an excellent bug tracking application, and Beanstalk is a great SVN repository host with a web front-end. And of course thanks to web developers waking up and realizing APIs are good, the two applications can sync up and make my life even easier.
Coincidentally a few days back Scott Stevenson wrote about an upcoming SVN client app I hadn’t heard about, Versions. Right now the best SVN app on the mac is probably svnX. While it gets the job done, it’s klunky. It doesn’t really feel like a "real" mac application. Versions is the first mac SVN application that actually looks like it will make using SVN pleasant on the mac. Sounds like a beta should be out soon, I’m really forward to trying it out.