Howdy ya’ll. Have you had a nice day?
I recently returned from a whirlwind trip to our corporate headquarters in Virginia and my body is still adjusting to the 10,000 mile -5/+5 time zone change a week on.
We got a lot done in a very productive week and it was great to meet some of the new techs in person. You don’t really appreciate how big IPS is until you visit the headquarters. We’ve got room for around 60 employees and the air-conditioning power to make a polar bear feel cold.
We discussed a lot about development and how to move into a more professional methodology. As you’re probably aware, Brandon Farber relocated (along with his wife and two children) to VA to become part of the IPS team. Brandon has huge experience with IPB and is a very tidy coder who has some great feature ideas and concepts.
Brandon is taking over the day-to-day IPB maintenance and will play a part in large future releases. This frees me up to work on IP.Dynamic and on the more architectural elements of our product line-up.
This change has forced us to rethink how we handle development and future releases. Adam, Rikki and Josh have been using SVN (subversion, a CVS-like system) for a while - and now I’ve joined the party with Brandon. This allows us to check-in our own code changes without killing each other’s code. We’ve also set up a main trunk and point release branches to ‘freeze’ releases and to allow a quick rollback point if things go badly wrong.
We’ve also implemented development changes at a management level. Firstly, and most importantly, we’ve set up a QA (quality assurance) department which will be handed a release before it’s made public. The QA team will go over the release and either green-light it, or send it back for changes. This will mean much less production bugs and a much better end result.
The second change is that we don’t write a line of code without a product specification (I’m writing the IP.Dynamic and IPB 3.0.0 specs currently). These specifications are like blue-prints for the product and explain the features and how the features work (Joel Spolsky has some interesting things to say on product specs).
Writing out these specifications has already saved time coding by working out the raw logic before touching BBEdit. Often, I’ve found myself re-working bits of code simply because the logic doesn’t work or I’ve changed my mind on how a feature should work. The spec irons out all those mistakes. Another plus is that we have one blue-print to work from. The PR department will know which features are planned and how they work, so developers won’t get a call from downstairs asking “Hey, is this going to be a feature in a future version?…” anymore. This is a good thing.
As a footnote to SVN, I am comfortable with the command line interface, but found svnX a joy to work with. This is a Mac OS X GUI for SVN and makes refreshing, committing, adding files and viewing changes much easier.
Click on the image below for a large version. Or not. The choice is yours.

17 comments
Comments feed for this article
October 10, 2005 at 12:09 pm
Ben
its good that you have recuited brendan, he is an exellent modder, and will make ipb even better!!
October 10, 2005 at 2:01 pm
The Jedi
I appreciate these efforts to be more serious than ever. I think it’s a good thing not to redevelop IPB each time you want to do a major release.
October 10, 2005 at 2:34 pm
Lewis
Wow, I didn’t realise the extent of IPB’s size.
October 10, 2005 at 4:29 pm
Rob
Matt, you may be interested in in this Finder plugin that acts like TortoiseSVN/CVS — it puts file icon badges on versioned items and has a contextual menu interface to allow you to manipulate your working copy.
I personally find it better than any application because it doesn’t create any new windows! With SCPlugin and BBEdi’ts SVN tool integration, it’s the best way (for me) to manage my code.
You can check it out at http://scplugin.tigris.org/
At the moment, the website may appear inactive, however there’s activity on the developers mailing list and a new version is in the works.
October 10, 2005 at 5:15 pm
James
Interesting entry. Hope you’ll be back to your blogging activities now…
October 10, 2005 at 9:55 pm
Cybertimber2005/Cooldude7273
We can’t ask EVERYTHING of him can we?
Nice to here you were in the area Matt. Was it nice weather? I know its gotten a bit cooler here in North Carolina (Raleigh area).
Cold enough to make a polar bear chilly? Wow… I ask you to take a trip to my school and see if you feel the same… 66 is too cold to learn in.
October 10, 2005 at 10:03 pm
Matt
Blake had the upstairs / dev room aircon to 68 - and that was coooooold.
Yeah, I’ll be back blogging again. I already have a few entries rolling around that I want to get out of my head.
October 10, 2005 at 10:46 pm
Cybertimber2005/Cooldude7273
68? Blake! That makes some ideas flow out like surup in the middle of January!
Speaking of “the upstairs”… pictures?
October 11, 2005 at 3:49 am
Anonymous
bfarber a tidy coder?? have a look at he sourcecode of his Links System, it’s a real mess
I don’t want to be disrespectfull, I like him a lot as a person and respect him for who he is, but what you post there Matt is really exaggerated.
October 11, 2005 at 6:34 am
Andre
Counter point on specs by L. Torvalds:
http://kerneltrap.org/node/5725
October 11, 2005 at 9:29 am
Matt
…and Joel Spolsky on Torvalds feelings on specs: http://www.joelonsoftware.com/articles/NothingIsSimple.html
“When Linus Torvalds bashes design, he’s talking about huge systems, which have to evolve, or they become Multics. He’s not talking about your File Copy code. And when you consider that he had a pretty clear road map of exactly where he was going, it’s no wonder Linus doesn’t see much value in design. Don’t fall for it. Chances are it doesn’t apply to you. And anyway, Linus is much smarter than we are, so things that work for him don’t work for us normal people.”
October 11, 2005 at 6:32 pm
Frank0051
What is BBEdit, what does it do, and where can I find it? Should I “Yahoo!” it
October 12, 2005 at 6:08 pm
Lewis
It’s a popular code editor for Linux. A google search should tell you more.
October 12, 2005 at 6:09 pm
Lewis
What I don’t understand is, why you’d rather wait a day for someone to tell you about it then do 5 minutes research. I never have understood why people do that.
October 12, 2005 at 8:55 pm
Anonymous
5 minutes ?
I thought it would need about 20 seconds…
October 13, 2005 at 5:56 pm
Matt
BBEdit is on Mac only…
October 19, 2005 at 6:58 pm
Iris
I congratulate Bfarber to join the team, and i congratulate IPB in becoming better and better,
Small side note, i wish u would take a look at the security of IPb , especially the part with the little boxes at the end in each forum where massfunctions can be done.
Its so easily hijacked by scriptkiddies and prevention is none.
Brandon coded that part for me , so it asks for the user password BEFORE exeting the massmove or delete or whatever command.
Its so easy to integrate, standard into IPB , which makes me feel that it should be a standard item.
Ask Brandon about it, he knows about it as he coded it for me.
Life would be so easier for all, and many forums suffer from those XSS attacks for whatever reason.