Open standards most important
Colin Hutcheson wrote:
"The question is not proprietary software versus open source, its really whether it makes sense to have access to source code to improve a software package."
I'd argue that more important than open source are open standards which allow communication between a variety of software packages from a variety of sources. Open standards promote a component-based approach too and component reuse. This then extends into the whole notion of interfaces between components, which can be negotiated, up into service orientation. The ability for services and components to interact, negotiate, and communicate will be key in the complex world of local and national government tools and communications. Wrappers can be placed around existing legacy systems providing communication facilities meaning that all manner of government services could be more automated and streamlined. At this point business process engineering comes into play.
It is certainly useful to have access to the source code for a package and it is theory possible to then extend it or maintain it after the original developers have moved on it is actually very difficult to do so in practice as most things are not sufficiently documented to allow anything more than relatively superficial changes for a reasonable cost:feature basis and sometimes starting from scratch can be more cost effective. Often you may be reliant on a particular tool being taken up by new developers that have a sufficient interest in discovering how the code works. (Of course loss of support is an issue with close source as well). If the tools and components are responsible for relatively small bits of functionality within an overall workflow implementing particular standard bits of communication then rewriting from scratch if required becomes a more tractable task.