The total cost of your government project… easy… right?

I had an interesting conversation with a fellow County employee today about the importance of figuring out total cost of ownership and return on investment.

Neither of these topics are particularly interesting in and of themselves, but in the current economic times they make all the difference in whether a government project will be funded.

First, there is the question of total cost of ownership. What does it take to get to this number? Many people would stop at the cost of licensing—especially if they have an old server lying around and the software in question is open source. After all, open source is free… right?

The notion of free software sounds great, but there is more to it than that as any proponent of open source software will tell you. Software takes support. Paid employees provide that support. So when figuring out cost of ownership, every manager should take a moment to figure out the cost of support.

Automation through technology is a wonderful thing, but while technology may drive down the costs of tasks that were formerly completed by people, the implementation and support of that technology will usually mean an increase in IT costs. Factoring IT costs into the cost of ownership is critical to knowing just how much you’ll spend over the life of the technology implemented.

Total costs for a typical open source IT project include infrastructure, implementation and support. Infrastructure is the hard costs of the servers, storage and power used by the software. Implementation is the people time it takes to get the solution in place—it sometimes takes years to pay off that initial cost if the software is difficult to implement or complex. Support is the time it takes to maintain a piece of software. Support starts out high, decreases as software becomes familiar to its users, and then increases as time passes and the software gets closer to retirement.

So, if you think that six year old piece of hardware slated for retirement is going to save you money… you might want to think again. That server is going to cost more to support. It will crash more; it will have more security issues; it will use more power. Just like our health care system, older things cost more to maintain and keep alive. Though there is something to be said for not having to spend the time in purchasing a new server—and no, my health metaphor doesn’t extend this far.

Another option to consider would be a software as a service solution (SaaS). SaaS solutions have the advantage of a larger customer base. The more customers to which you provide a service, the lower the cost. This is why a server at Amazon Web Services can cost so little per hour of use. Lots of server admins are using that service and driving down the costs of storage and power, which Amazon can pass on to us. SaaS can take the same savings a level deeper and provide a lower cost for providing a service that could be internally provided because of the scale of service.

What about return on investment? The project I was discussing with my colleague today was a chat server that ostensibly would reduce the call volume for his department. That same software would increase the options for citizens to use his service. It might have the reverse affect of increasing traffic because people would be more wiling to chat with an “operator” than to call them. In this latter scenario, it might mean increased costs for the investment—a negative ROI.

Would that negative ROI be acceptable if the public was happy with the increased service? Tough call.

In the end, I think this project shows a lot of promise. It really would have the potential for reducing call volume and increasing the number of citizens served by the same number of government employees. It is that sort of innovation that we need at times like these. We also need to be mindful of the total cost of innovation and what we are getting in return.

Drupal at Multnomah County Oregon

Executive Buy-in

In October of 2009, Multnomah County hired their first position dedicated to the development of open source technology and solutions. (That would be me.) This mid-level management position was tasked with identifying and vetting open source software, hiring open source developers and managing IT applications for the general government line of business.

General government is a broad term that includes departments like County Management (which includes County HR, finance, payroll, benefits, assessment, recording and taxation, etc.) , Community Services (wich includes animal services, bridge maintenance, road maintenance, elections, and land use planning), elected officials, the county attorney’s office and, to top it off and round things out, the public and intranet website platform for all departments. Similar development groups exist for the health, human services and public safety related departments.

Three areas were identified as a starting point for the use of open source technology: digital document management, rapid application development and blogging for the Multnomah County Library. General content management for the public website was considered off the table as a redesign project that included an upgrade to the latest version of Vignette Content Portal was already underway.

Drupal was initially identified as the platform for rapid application development and content management for internal solutions such as Intranets and collaborative workspaces. At that time, we could use Drupal as a CMS, just not as the CMS as we had invested so much into Vignette.

A Change in Direction

A year into the website redesign, it became increasingly clear that while we had optimized our processes for migrating from Vignette 7.3 to Vignette 7.5 (if you are a Drupal user, think Drupal 5 to Drupal 6—same concepts, but big changes), we were not able to hit the pace necessary to complete a site-wide redesign by our target date of February 2011. We had given ourselves two years for the project and revised it to three years because of the sheer scope of moving every individual site that was either Vignette or static HTML into this system. At the time I considered this an insane amount of time. I was used to rolling projects in months (if not occasionally weeks)… not years.

Of a greater concern was the difficulty we had in training our end users to edit their Vignette content. While Vignette scales well to heavy traffic and has a solid enterprise reputation, it is not an intuitive system for non-technical end users. Vignette lacks a strong rich text editor and image handling out of the box and its system of “projects” and “channels” is simply not a lexicon that is easily picked up by end users.

In mid-April 2010, myself, the County web manager and the project manager for this project put together a convincing argument to shift our migration efforts from Vignette to Drupal. I took two developers to DrupalCon in San Fransisco—nicely timed—for a crash course in Drupal development. I wanted to get my two leads up to speed on the latest trends in configuring a large-scale Drupal website as quickly as possible. At the time, I was the only one in the group with experience with Drupal.

A target for an initial pilot was set for July 1st to launch two sites: public affairs and our jobs site that HR maintained. Fortunately, I was able to hire an open source developer with tons of Drupal experience in June, but the pilot that launched received only a cursory review from him before we were schedule to go live.

We hit our target launch date with a fully-functional, highly-scalable website that served up for 65,000 pageviews in the first month.

Upon completion of a successful and on-schedule pilot, the redesign effort was completely shifted to Drupal. As of January 3rd, 2011, roughly six months from the completion of the pilot, 45 sites were launched on the new Drupal platform. 16 sites remain; eight of which are are in progress. The effort from each site launch has moved from web development and engineering to content migration. Content migration is completed primarily by departmental editors assisted by a team of two part-time interns, a part-time training specialist and the county web manager (responsible for helping departments restructure their content and planning site publication schedules).

A new “site” within the County’s Drupal installation takes approximately two minutes to create and publish. A typical site migration takes less than a week—including site reorganization.

The Platform Behind the Progress

Multnomah County’s Drupal platform is built on Amazon’s Elastic Computing environment. The EC2 image in use is preconfigured with Pressflow (an optimized version of Drupal that takes advantage of advances in MySQL and PHP) with special configuration to take advantage of packages such as Varnish for HTTP caching, Memcached for MySQL caching, and APC for PHP caching.

The development environment follows best practices using Subversion [note: we moved to git in 2012] for code revisioning in a four stage deployment process to allow for localhost development, a quality assurance server, a user acceptance testing server and the public production server. The database backed up automatically every two hours. Twice a day, production backups are copied between all environments. The production and UAT environments are hosted out of Amazon’s Western zone with elastic IPs that allow for manual fail over between environments in five seconds or less without waiting for DNS propogation. The testing environment is hosted out of Amazon’s Eastern zone for disaster recovery fail over that is geographically isolated.

UplinkEarth is possibly the worst host ever… that’s saying a lot

UplinkEarth managed to make an enemy out of me today. I don’t use them for my personal blog or any new sites. Frankly, I’m not using Coldfusion much anymore and I don’t particularly care for Windows servers. I rely on Dreamhost and Media Temple for my hosting needs these days. (Yeah, I know that Dreamhost decided to charge me for 2009 a year in advance a couple of months ago, but they fixed the issue and my site was never down—just my available balance on my credit card.) Continue reading

My resumé is out of date

My resumé is very much out of date. For those of you wondering, I now work for The New Group. (Don’t hold our website against me—I would use a lot less Flash. It is getting updated soon.)

It has been a crazy first month at a company that is in the midst of some interesting changes and rapid growth. I’m really looking forward to the ride, though I can’t say I felt that way two weeks ago.

For those of you in the midst of change, give it a few weeks. It is amazing what you will learn if you allow yourself to go through at least one month worth of change with a group of people. I am really impressed with the team I am going to be working with. I can’t wait to see what we create.

Nearly painless upgrade to WordPress 2.5

I just completed a nearly painless upgrade to WordPress 2.5. I say “nearly painless” only because I managed to trigger a page error when attempting to upgrade a couple of plugins. (Apparently you have to deactivate a plugin before you upgrade it, which is a reasonable requirement, but it doesn’t say “deactivate first” anywhere.)

Technically, the actual 2.5 upgrade went off without a hitch thanks to WordPress Automatic Upgrade. Everything in my template just worked, which I couldn’t say after the 2.3 upgrade earlier this year.

So what is my favorite new feature? Well, so far it has to be the automatic plugin upgrade, but I am looking forward to using some fo the media features and the media browser is a clear improvement.

Permablitz: a faster way to permaculture.

Front steps - newly finishedTreehugger is touting Permablitz: Near Instant Permaculture for the ‘Burbs. I don’t live in the ‘burbs, but I do live in a high density Portland neighborhood.

My goal by the end of this summer is to have a highly productive front lawn. The first step in that plan is the walkway seen in this photo.

Next is a rock retaining wall so that I can level things out and start planting.

An impressive means of transport

Pedicab RickshawWhile speaking with Jon Maroney at the last Mobile Portland event, he mentioned that he was hoping to get a rickshaw or similar pedal-powered vehicle for picking up clients from the airport. Jon, I think I’ve found your transport. The highly convertable Cycles Maximus Trike seems like the perfect fit for bike-friendly Portland.

Now who’s going to import it? Clever Cylces? This seems right up their alley.