Toolkit or Not Toolkit?

In every programming activity there are decisions to make. Do you add a small bit of code here that’s an exceptional case or rewrite the code to be cleaner? Do you use an IDE, wizards, toolkits, or code on your own and build your own tools?

I ran into this most recently while producing this web site. The first incarnation was handcoded html. You can still see it if you go to wandercoding.com/oldindex.html. It wasn’t too hard to write it up (the site’s just not that complicated), but the real issue came with maintenance and updating content. My internet connection in my upstairs office is glitchy – sometimes it works, sometimes not. So, this means I often have to come downstairs to update the files, then ftp them to the site. I’ve found the ftp server and my link to it to be also glitchy and incredibly slow. On top of that, every new post required an addition to the main page, the archive page, and adding a new page for the new post. Nothing horrible, but more stuff to maintain. Allowing people to add their own comments would have required more coding (and not in html), so that would have meant more work as well.

I’ve been reading through other blogs lately and have heard good things said about many blog sites and software. I tried one out myself and created cornelljudo.wordpress.com. It was simple, allowed me to generate something that was more like a complete website than just a blog, and had lots of available themes to let me change the style of the site without more handcoding. Nice. Since it was a breeze to install on my web server, I decided to give it whirl.

Now, updating the site is a cinch. All the files are on the site. WordPress handles the updating, archiving, menu additions, and styles (although I may do some handcoding to make the site more unique and stylish).

Every decision you make in your work involves tradeoffs. Will this toolkit save time or take time? Is this reinventing the wheel or not? Be sure to include both design, learning, and maintenance time in your evaluation. Still not sure? Do a rapid prototype by starting your own design – just a few days at most – to see how hard it’s really going to be. Start recording all of the things you’ve learned and develop a list of tasks you’ll need to do to make it complete. You can also start using the alternative toolkit and see how progress goes there. Make this a rapid prototype as well. Chances are, you’ll make more progress using the toolkit or other automation device. Remember, however, that this exercise is to make an informed decision. The real analysis of the toolkit is to understand how you’ll really be implementing it. What is it missing? What does it do that’s set in stone and what’s flexible? What will maintenance be like? Is the company supporting the software stable? Where are the gotchas? Are there any showstoppers?

When you’ve compiled a list for both alternatives, sit down with someone else and explain the choices. They should play devil’s advocate with you and help you really sort out the best answer without your initial biases. Then you’ll feel like you’ve made a more informed and intelligent choice.