Skip to content


Analysis of the Austin Website RFP MSO0036

I attended the City of Austin Website RFP vendor pre-bid meeting yesterday and have made a further review of the RFP. I wrote up a summary of the RFP with my personal commentary and analysis.  You can read it online at scribd or download the PDF here.  For your convenience I have also made available for download the city document (MSO00360500.doc) on which my summary is based.  I make no representation, however, that this is the official, true, and final copy of that RFP document.  You can get the official version of this and other documents relating to this RFP at the City of Austin Vendor Self Service System.

[Update 8/14: added Scribd link.

Posted in Austin. Tagged with , , , , .

Review of Austin Website RFP

I have spent more time with the City of Austin RFP, specifically file MSO00360500.doc.  In spite of its billing as a requirements gathering project, the RFP has more to do with implementation than with requirements.

If you look at the deliverables, these are requirements work:

  • customer profiles and personas
  • content analysis – what will be used and what needs to be created
  • gap between current and best practices

Though they talk about “content” analysis, it is surprising that there is nowhere in any deliverable for specifying the transactional functionality of the system, e.g. paying bills, filing forms, etc.

The rest of the deliverables I would consider design, development, and even implementation:

  • information architecture and portal framework, including workflows, diagrams, and wireframes.
  • branding and creative including logos, Web art, photos, icons, color palettes and related CSS files
  • legal fine print: terms of use, privacy, etc.  (This shoud be done by the city’s legal department)
  • technology plan with recommendations for development technologies
  • implementation project plan (?!?) with milestones, timelines, and operational costs for first five years
  • governance plan for how the portal will be managed by the city.  Also includes a Center of Excellence, whatever that is
  • recommendations on use of social media

I did not find any verbiage yet that precludes the vendor of the RFP project from bidding on the implementation project.  In fact it seems that if this first project is going to set in stone such things as development technologies and CSS files, the only vendor who would be suitable to do the implementation would be the same one who does this project.

An interesting note.  In Section 1.3.3, Buyer’s Responsibilities, they do not list providing access to people and documentation of current systems as one of their responsibilities.  This is probably their most important responsibility.

Posted in Austin. Tagged with , , , .

RFP for Austin Website

The RFP will be out soon and will show what the city is planning to do.  I spent some time on the city website and called Purchasing, and here is what I have learned about how to get the RFP.

The city maintains a “Vendor Self Service” site at https://www.ci.austin.tx.us/vss/Advantage.  You can browse it without logging in.  I was told the city typically puts new RFPs up on Mondays, but not always.  The UI is not great, but here is how to find the previous RFPs for the city Web site.

- Click the Public Access button
- Click the Business Opportunities link
- Click the Search for Solicitations link
- There are four search fields.  Each must have a value even if only * (wildcard).  The department Communications and Technology is 5600.  There is a “comodities” code for Web page design service: it is 91596. To find the previous RFP’s, put an * (asterisk) in the Description and Commodities fields, RFP* in the Number field, and 5600 in the Departments field.  Select Status of Closed and hit Enter.

You can also register as a vendor and supposedly be emailed when the RFP is available.  Presumably the Commodity and Department codes will be the same for the new RFP, but I don’t know that to be true.

Questions?

Posted in Austin. Tagged with , , .

City Briefing

I attended the city’s briefing Wednesday night and the presentation that CIO Gail Roper made to the City Council on Thursday.  PDF of slides from Wednesday meeting.

Some encouraging items:

  • They apparently understand that the data for the site is coming from a variety of disparate systems. Gail referred to the Website as the “lipstick” and the legacy systems as the “pig.”
  • They also understand that there is a good deal of process re-design that must be undertaken
  • The RFP is going to be written so that small payments are made for individual deliveries.  But they are still expecting the winning bidder to be a single company.  They said the RFP will “encourage” extensive use of sub-contractors, but they did not say how it would do that.
  • There RFP will not require the use of any specific product or technology (e.g. Plone).
  • They understand the importance of providing data to the community so that mashups and other uses can be made of it.  They are enamored with a Washington, D.C. project called Apps for Democracy that aims to stimulate the community to make apps from city data.  (See the Digital Public Squarevery impressive.)  The Portland, OR and Seattle, WA sites were also cited as good models.  (Check out Krime Labb to see a current mashup with city data.)
  • There wining vendor will not be required to post a bond.
  • They are working with a local advisory group (including Gary Chapman of U.T.) and Gartner Group to get feedback on the RFP before releasing it.
  • They plan on using a Service Oriented Architecture (SOA).
  • They said change in “IT governance” is required to make this plan work, but did not give specifics.
  • Mick Osborne is the purchasing person on this project.  The RFP will be available to those registered on the city’s vendor Web site.

Some questions and concerns:

  • It is not clear whether the city intends to do all the process re-engineering and SOA work themselves, or whether this effort will be part of the RFP.  It would be a mistake if the RFP is for a project to build the front-end onto a back-end that is being re-engineered and SOA’ed by the city in parallel.
  • Gail said the RFP would be out next week, with a vendor selection by mid-August.  But Matthew Esquibel said  the scope of the RFP has not yet been determined.  Also they are talking as if the advisory group that has yet to be constituted.  They also said they would be soliciting more requirements input from real estate developers, and youth and neighborhood groups.  These statements seem to contradict one another.
  • The RFP will include an evaluation matrix.  Will the evaluation criteria give any preferential treatment to: (1) bids that use a lot of sub-contractors versus ones that will do all the work in house; (2) bids that include a lot of the work being done in Austin; or (3) bids that include a good deal of open source software?

Posted in Austin. Tagged with , , .

City of Austin Website Discussion(s)

It appears to me – being new to this discussion and still learning the history – that the conversation about the new City of Austin Website is actually several different conversations.   It might help the dialog to consider these somewhat independent issues separately.  I do not claim to know the answers to most of the questions below, but I have learned that you have to know the questions before you can find the answers.

Question 1: Should the Website be built completely or mostly by Austin-based companies and people?

The answer depends on how you view the trade-off between having the best quality Website to serve the constituents versus investing in the Austin software development sector.  The perspective of the Austin taxpayers should carry the most weight if this project is funded solely out of tax money.  If on the other hand some organization promoting Austin high-tech wants to contribute funding (e.g. Chamber of Commerce, Austin Ventures), then the project should rightly showcase local talent.

Question 2: What should the Website do?

The city did a survey of nearly 2000 citizens over 18 months ago and produced a PowerPoint showing the results and suggesting feature priorities (available at AustinGO).  The OpenAustin group has created a Web presence using IdeaScale, Twitter, and Facebook (none of them Austin-based companies) to allow free and open input about what the site should do.

Input is raw data and is useful but is not the same as a set of requirements.  What is the process whereby the input will be converted to requirements?  Did the most recent RFP adequately express the right set of requirements?  Crowdsourcing approaches can help get more data from more people, but it needs to be processed into requirements.

Question 3: What are the legacy systems that will provide data to and get input from this new Website?

This is not a greenfield project.  The city currently has a Web site with 40,000 pages and a great deal of data.  How will the new Website integrate with and/or migrate from these systems?  How will it pull together the different Websites that the city has today?

Question 4: Should the Website be built, to the greatest extent possible, with Open Source software?

This question is being debated throughout the government and private sectors, and it will not get resolved by this project.

However, I personally believe there is tremendous benefit to using Open Source software for a Website.  Some think a project like this will cost a lot less with Open Source.  While the overall cost may be somewhat less than with proprietary products, the real benefit is the ability for the city to shift expenditures from the vendor to internal investment.  The sometimes very significant money spent with the proprietary vendor can instead be spent on increasing staff skills in understanding, using and modifying the Open Source software.  This results in the city having more control over its own destiny.  Rather than waiting for the vendor to add features, the city can make any changes it need in the Open Source projects it is using.  The city also benefits from changes made by others.

And there are additional benefits to open collaboration.  See the next question.

Question 5: Should the work product of the project be released as open source software?

I have a strong opinion on this topic.  Regardless of whether the system is built using Open Source or proprietary (e.g. Microsoft, Oracle) software, the work product should be made available to the community as Open Source. For example, if the project builds a particularly clever way to display traffic information or to pay utility bills, then that solution could benefit other towns and cities.  Also others may make improvements that the city could benefit from.

If the public is paying for this project, the work product should be public too.  One exception might be if the software would expose some aspect of the city’s operation that is confidential.  But in an open government policies, then there should be few of those if any.  Another exception might be if, during the course of the project, the city made an invention that could be patented and used to generate revenue for the city.  But does the city want to be in the software business?

Question 6: What specific technologies should be used in the Website (e.g. Plone)?

Specifying products or technologies that must be used in the solution limits the number of organizations and people who are available to build the solution.  Except as it relates to required legacy integrations, the solution provider should be allowed to propose any product or technology.  If the city thinks the proposed products and technologies have downsides, that will count against the bid in the review process.  The city should let the vendors know what it’s biases will be in evaluating the proposals.

Question 7: Where and when should the Website provide only information rather than functionality?

When should the city spend the time and money providing Web pages for functions and when should it instead only provide data through an API?  Going to the City of Austin Website from a browser is natural for many activities, like paying utility bills, getting permits, learning about the workings of the government.  But I don’t think about going to the city Website for airport flight info, though it is available in the current site.

In building sites like this, the focus too often is on what will be seen in the browser and not on what can be accessed through an API and Web services.  Increasingly users are spending time in sites like Facebook and expecting information they want to come to them.  Hundreds of thousands of “mashups” have been built with all sorts of data.  For each function in the site, the question should be asked: what is the relative importance of the browser function versus the available data?  Given limited resources, some funcitons might be better provided only as API’s, possibly with simple “refereence” implementations to help mashup developers use them.

(Thanks to Dixon Dick for his edits.)

Posted in Austin. Tagged with , , .

Open Source City Government Web Sites

There seems to be some discussion about how willing city governments are to embrace open source software.  The information below is not the result of exhaustive research, nor is it meant as an endorsement of the products mentioned.  In fact I know very little about Plone and Alfresco except that they are open source Content Management Systems that have a lot of functionality and large followings.

The only city I found to be using Alfresco is Lausanne, Switzerland (marketiing case study pdf here).

Several cities and towns – at least 50 – have used Plone for their Web site.  In fact a separate open source project, PloneGov.org, has been created to host code that implements typical government functions.

Here are some fairly large cities whose public Web presence is based on Plone.

Interesting to note the website of our very own Governor, Rick Perry, uses Plone:

Rick Perry Website

The city of Newport News is not only built using opensource Plone, but makes its
entire code base available for download as part of the Plone-based Open eGov project

Newport News Open eGov project

This project apparently has been used by four other governments.  But the project seems to have been dormant since 2007.

Posted in Austin. Tagged with , , .

The Home Cloud

I just got my PogoPlug and I really like it. It has started me thinking about whether there is a “Home Cloud” similar to the storage and services clouds being offered by Flickr, Salesforce.com, Google, Yahoo, Microsoft, Amazon, etc.

For those of you who do not know what it is, the PogoPlug is a small plastic brick that has a power plug (110V) and two jacks: Ethernet and USB. You connect it to your home network and plug in USB storage. That storage is securely available to you anywhere on the Internet. You can read and write the storage from a Web page and you can also install the storage as a drive on your networked computer. There is even an iPhone app!

Each PogoPlug has a unique key which you use to register your device at the service’s Web site. The site provides a portal where you can manage the storage. You can share a folder (and all its sub-folders) with someone from the portal by putting in their email. It sends them a URL with which they can access your folder. The problem with this approach is that anyone can use that URL, so anyone who gets it can access your system. The product needs the ability to create a community where people without PogoPlugs can be invited to join and access can be given (and withdrawn) in a way that the access cannot be passed on to others.

The PogoPlug could be a bellwether of a counter-trend in the way people use the Web.  Seems like in the last 50 years or so the computer industry pendulum swings back and forth between personal and shared control of resources such as storage and computing.  Recently we have been swinging towards sharing on the Web.  First homes and business put their data online with email and photos.  Next came ASP model where a single app like Salesforce.com is run “in the cloud.”  Now we are moving to clouds of more generic computing offered by Amazon, Microsoft, and Google.

Putting your data out in the cloud sounds great until your cloud provider goes out of business and you lose all your data. We don’t expect Google or Microsoft to disappear any time soon, but the recent data loss at Magnolia is a good lesson in what can happen when your data is lost by your data storage provider. And who knows what those providers are doing with the data? Does anyone really read all those Terms of Service agreements?

There is a vast amount of USB storage in people’s homes and businesses that is primarily used as backup and to serve photos, music, and video and other files to local computers. If you already have the storage for backup and local serving, why not make it available to yourself and possibly some of your friends on the Web? It seems like a logical step.

I don’t know anything about PogoPlug’s financial and business situation, and I don’t have a vested interest in them, but I think they have the potential to do well. Of course, there is always the question: what happens if PogoPlug goes out of business? Aren’t you just as tied to them as you would be with Google? To address this I believe the PogoPlug folks need to open-source (or license) the protocols they use in their box so that anyone else can offer a PogoPlug portal or build a PogoPlug device. I believe in the long-run they have a much better chance for a home-run success this way, though they need to figure how they keep from getting squeezed out of that picture.

Another company I have run across is Tonido. They are similar to PogoPlug in that they allow to use your home resources from the Web. But the resource they allow you to share is not your USB drives but your desktop computer. If you install the Tonido software on your desktop (Windows only now) and register at their portal, you can get secure access to your machine from the Web. This is NOT login access like that provided by GoToMyPC and others. Instead you can only talk with the Tonido application. That is until someone hacks it.

The application currently gives you access to any of the storage your desktop can reach, so in that respect it mimics PogoPlug – without the hardware plug. But it also provides some software tools on top of that storage so that you can serve music and photos. Tonido has an architecture where more mini-apps can be plugged into their application and available to run over the Web.

I find the Tonido approach less attractive for a number of reasons. First, the target audience (leading edge technology people) are increasingly not having desktop machines at home to connect with, but are using theie laptop as their sole computer. But even these people probably have USB drives. Secondly if you are going to use your home desktop as a resource over the Web, why not get login access to it and use the REAL applications that are installed on it? Admitedly you don’t want to share this access with friends and colleagues like you can with Tonido, but if all you are sharing is the data, PogoPlug does that without tying up the computer.

Kleiner Perkins investment DropBox addresses some of the same issues by making data on your computers available on the Web and on other computers.  But it falls more in the category of a storage cloud than the home cloud.  Of course many NAS products, such as those from Buffalo, can make their storage available over the Web, but they are more expensive and not nearly as widely owned and deployed as the simple USB drives PogoPlug works with.

I have created a little product-feature matrix to help show how these products differ in creating the Home Cloud.

Comparison of the different methods of using the Home Cloud

Comparison of the different methods of using the Home Cloud

It will be interesting to see if the Home Cloud catches on and how far it might progress. Please let me know what you think.

Posted in Uncategorized. Tagged with , , , , .

jQuery in Action book Ruby and Rails backend

The book jQuery in Action by Bear Bibeault and Yehuda Katz, has a lot of terrific code examples in the form of labs. Most are standalone, but those that relate to AJAX need a server. The code downloadable from the book’s Web site provides JSP pages and some PHP pages for this, but I wanted to use Rails.

This project is a Rails backend for the HTML files in Chapter 8. The goal was to make as few changes to the provided HTML and javascript files as possible. The resulting app, therefore is not RESTful and does not use jRails.

The files from the book are all located in the appropriate places for a Rails app e.g. javascript files are in
/public/javascripts. There in only one controller called ‘only’ that contains all the actions used by the HTML files. The modified HTML files are in the ‘only’ view directory.

Changes to the downloaded files were limited to those that were absolutely required to be compatible with a Rails app. For reference the original files downloaded from the book site are contained in /doc/JQIA FILES.

The app is only intended to be run in development mode.  The default page is an index page that allows you to link to the example pages from the book (modified).

The code is on github.   To use it:

- get it on your machine as a Rails project
- create a MySQL database called jqia_dev
- run the migrations
- load the test fixtures into the development database
- start the app
- enjoy

The code is released under the Creative Commons Attribution-Share Alike 3.0 United States license.

Posted in Ruby and Rails. Tagged with , , , , , , , .

Django versus Rails

(Originally posted Tuesday, January 27, 2009 at 10:59pm)
I just saw an excellent presentation about Django and how it differs from Rails.  It was given by Brandon Taylor of Razorfish at the January Austin on Rails meeting .

My take-away is that in some areas it does more and in some areas it does less, but it is certainly more flexible. Overall programmers from a Java background will probably find it more comfortable. Of course if you prefer Python to Ruby its the obvious choice.

Posted in Ruby and Rails. Tagged with , , , , , .

Selenium IDE and Ruby/Rails

I am working on a Ruby on Rails application called UnPtnt with Dave Rauchwerk.  The app was not  built using BDD (behavior driven design) and so I am in the process of adding testing after the fact.  I have been learning RSpec, but that tool seems to have much greater utility when used during the design instead of after the app is built.

To get some test coverage quickly I have turned to the Selenium IDE add-on for Firefox.   This is an open source tool that is used to test user interface interactions.  It is part of the larger OpenQA suite of tools.

As usual I have suffered from a learning curve and the process would have gone better if I had known then what I know now.  So I thought I would provide some tips I had to learn the hard way.  They are in no particular order.

Dataset. It is important to have a rich set of data that you use for all tests.  I did this by using the application to put in some data and then saving a backup of the MySQL database.  I restore this backup before running the test suites.

Suites. Of course many of the tests create additional data, so it is important to put the tests into suites in the correct order so that later tests depend on the data created in earlier tests.

Click and AJAX. There are two versions of the click action: one which waits for a page load to complete and one that does not.  Capturing actions with automatic recording does not always get you the one you wanted.  And another issue is that on AJAX calls you need to wait for the server interaction to be complete before proceding, but there is no page load.  Follow these rules.  (1) if the link is a non-AJAX link, it should use clickAndWait.  (2) If it is an AJAX call, it should use click.  (3) For an AJAX call, after the Click, include an action that waits for some event. I usually use the waitForValue action that waits for some value returned by the AJAX call.  You can also use waitForElementPresent or waitForElementNotPresent if you AJAX adds or removes an element.

Click Specificity and XPATH. When automatically recording I find the system records clicks in the least specific way.  For example if you have two links on a page that have the same text, say “edit”, it will record either click as a click on the link with text \”edit\” (click link=edit) which will always click the first edit link even when you mean to use the second.  You can override this behavior by specifying the target of the click to be an XPATH expression.  It is real easy to get the correct expression for any element on your page using a Firefox plugin called XPather.  You can also use a DOM expression, but I find using XPATH easier.

Assert versus Verify. Many commands come in these two flavors.  The difference is that the assert flavor will stop the test if it  fails where verify only loggs the error.  The assert versions do not show up on the context menu, so I use the context menu to add a verify command, and then manually change it to assert if desired.  I tend to put asserts in places where you clearly cannot continue, like checking that a link exists before clicking it.

Batch Testing. Selenium IDE can also create Ruby files that will run the tests in the background.  I have not tried that yet, but if I do I will report on progress.  An alternative to the Selenium IDE Firefox add-on is Molybdenum, which the author claims it is like Selenium but without the ability to create Ruby files.  I have not tried it.

Posted in Ruby and Rails. Tagged with , , , , , .