I am a structural engineer at a small consulting firm. But even though we’re small, we crank through a relatively high number of projects year in and year out. In 2007 we quoted on approximately 230 projects. Of those, we turned over 150 of them into projects. Even though some of those are relatively small projects, our throughput is fairly high.

We run a lean ship with under 15 people total including both draftsmen and engineers. Because of this, there is not a lot of time left over to spend on “sharpening the saw”. But still, every once in a while I force myself (as others here do) to take stock and see if we can be doing anything more efficiently (for instance we make heavy use of custom spreadsheets to speed up the calculation of gravity, wind and seismic loads).

However one problem that continually eludes me is how to track and use past project information. We’ve got a simple project list created in Excel which keeps project number, project title and client information. We’ve also got a not-so-simple Excel spreadsheet that tracks the engineer and draftsmen involved in each project and which tries to track the sketches and drawings issued for each project. This latter one sees limited use just because it’s clunky and a pain in the ass to use (as are most spreadsheets I find). In both cases I can do some basic search, but they are generally inflexible, and of limited use if I want to extend the functionality store other things.

I wanted to have a simple database that contained more free form project information like who the contractor was, what type of cladding the building had, whether it had a overhead crane or an underground parking garage, what type of foundations were used etc. I wanted to be able to easily enter a variety of project notes and free form information. Then two years down the road, I wanted to be able to search on ‘underground parking’ or ‘architectural precast’ and get a list of past projects that involved those things. We spend a lot of time trying to figure out what past projects utilized some type of wall finish or some type of specialized foundation. Having that information somewhat at hand would save boatloads of time for me.

So over the past 12 years (yes, that’s how long I’ve been here - yikes!) I’ve been looking for a good way to build a simple, flexible and useful project database. Not necessarily something company wide, but something I can build on my own that might prove useful (to me at least and maybe to others later) as it develops. To give you an idea of how long ago this went through my head, the first attempt I made at it used something that Borland produced called ObjectVision. [Shiver]

Along the way, I tried writing several simple flat file database apps myself using C, C++, Borland CBuilder, and even Python and wxPython. While each and every one had good intentions, they ended up satisfying my interest in programming much more than my desire for an actual working result.

A year or two ago I considered trying a wiki-style of information gathering, trying out an app called Wikidpad and a couple of other similar solutions. They had their merits, but I never found them compelling enough to stick with more than a couple of days. And they didn’t really fit the bill for what I was looking for.

However, the recent Floss Weekly podcast with Ward Cunningham (the inventor of the wiki) inspired me to have another look at the venerable wiki. And that little spark, aided by a long-ago mention of TiddlyWiki by Dave Yates on one of his LottaLinuxLinks podcasts put it back in the front of my brain. After a little reading over on the TiddlyWiki site to get my head around it, I saved out the blank wiki to my local hard drive and gave it a shot.

I am blown away. I won’t say that I have found the ultimate solution (you rarely do in things like this), but the sheer flexibility, simplicity and free-form nature of the thing just simply astonished me. Within a half hour this afternoon, I had the start of a really useful project information wiki.

Still, there are things to figure out. I’m not entirely sure what things need to be CamelCase and what things don’t - an overall architecture question I guess. But the search is just so simple and useful that it really doesn’t matter anyway. I’m trying to figure out a simple standardized order of information for each project, but that doesn’t even seem to matter all that much. As long as I name each project in a similar way I can search by project number, partial project name, or by any information (full or partial) in the wiki item itself. Brilliant!

I may not end up with something that is astonishingly beautiful or organized, but man it seems frigging useful already.

Perhaps I’m jumping the gun. Maybe I’m just overly tired and slightly delerious, but if you’ve got a similar task at hand, just go check out TiddlyWiki. You might be surprised how useful a local wiki can be. It’s really truthfully only a right-click SaveAs away, since the installation of it only consists of saving a single html file to your hard drive.

I’ll try and provide an update on things in a week or two to see how it goes. Hopefully I can make hay with this thing, but given my track record over the past dozen years on this, it may all go south very quickly. :)