When I started at my previous job, we were small-time. Sites were ASP or (horrors) ColdFusion talking to an Access database, and even that was only for fancy clients who wanted a record of the Contact Us form submissions from their site. We got a little bigger and a little better and we started rolling out small tools to manage pieces of sites (typically press releases or job postings). Again, ASP talking to Access. Like Mike Mulligan and his steam shovel, the more we worked, the better we got and then, like Mike, we dug ourselves into trouble. We built a site for a client with enough web traffic that Access couldn’t keep up (hard to imagine, I know).
Enter SQL Server. We tried to keep up the pretense this expensive piece of software was a one-time thing, but success here bred more work and attracted more clients who could justify the expense of a machine and a SQL Server web connector license or whatever the hell it’s called. This left reusable bits of code all over, but we didn’t have that many clients who needed their own server. We sucked it up and added a shared SQL Server for mid-sized clients so we could keep using the same code. At this point, some of the most inventive work being done in development was justifying why a new site wouldn’t work with Access. It wasn’t long before that second shared SQL Server came on line. Our codebase was driving our hardware and platform decisions.
This ossifies a company: if you can’t take on jobs smaller than six figures because you can’t hide the software licensing costs, you lose out on smaller jobs. That doesn’t look like a problem to a company in this state because they’ve developed a mindset that says, “We only work on projects that are worthy of our time and platform” (at The Daily WTF, this would be called “enterprise-y”). There was no reason we couldn’t have put MySQL or Postgres on Windows and gotten 90-100% of the same performance for free. Small projects don’t add a lot to cash flow, but they can be portfolio pieces, they can turn into bigger jobs, they can create connections that lead to bigger jobs. If they do none of those things, they do wonders for development teams. They’re calisthenics. Clients with small budgets don’t have small plans; they want everything the guy at the next table is having, they just don’t want to pay his tab. “Do more with less” was the derisive slogan of the final season of The Wire; when it comes down from management, it is worthless. But when it’s baked into a (well-managed) project, it can force developers to step back and figure out how they can recreate the code they’ve been cutting and pasting in a smaller space. That’s the kind of challenge that not only keeps developers learning, but keeps them interested and in fighting trim.
April 10th, 2008 at 12:41 pm
SQLExpress is an excellent bridge point between Access and full SQL Server.
Why did you not consider this?
April 10th, 2008 at 12:47 pm
We did kick around the idea of SQL Server Express a few times, but that came on the scene far after we had made the transition. Working at a mainly-Microsoft shop meant working with clients who were already on MS gear and I think there tends to be a built-in suspicion of “free” software (the reverse of this CodingHorror post). It’s like audiophiles who insist on Monster Cable under the assumption that higher prices ensure higher quality. Great work can be done on any platform, but it’s not inherent in any platform.
April 10th, 2008 at 3:12 pm
Oddly enough, ASP.NET’s extensive caching really makes hosting a web site with Access as the database backend a viable choice.
Of course, this depends on the type of queries (stored blog entries vs. 200,000 product search).
April 10th, 2008 at 9:07 pm
I had written a toy ASP app in 2002 or so that used Access as its backend database, which crashed even with no usage :/.
I’m a pretty huge OSS advocate, but there is something to be said for building a support contract.
April 11th, 2008 at 6:56 am
ASP.NET’s extensive caching really makes hosting a web site with Access as the database backend a viable choice
Yeah, I’m a huge fan of how easy it is to cache with .NET and how many options you have, but even then you’re still limited by the bandwidth Access can move.
there is something to be said for building a support contract
Absolutely, but is that really true with databases? They’re pretty settled technology and those Web Connector licenses were around $20,000. That would buy a lot of support/ contractor hours if something did go pear-shaped.