« January 2005 | Main | March 2005 »

February 28, 2005

Customer Starts with Custom

Customer interaction hubs (CIHs) integrate all of an organizations customer touch points into a single system. As I've considered this idea, it was fairly obvious to me, for example, that most companies could benefit from a tighter integration between their pre-sales portal and their customer service portal:

As an example of kind of customer sales tool I'm thinking of, the other day, I was on the Comcast site trying to see if they now have service in my neighborhood (they've been digging up streets and lawns for months). I was answering various questions and getting information back from the site. I realized that there was precious little difference, either technically or conceptually, from a pure-play post-sales customer service portal and Comcast's pre-sales tool. Pre-sales or post-sales, the customer interaction ought to be coordinated and integrated to give the best experience.
From Phil Windley's Technometria | Customer Interaction Hubs
Referenced Mon Feb 28 2005 20:51:24 GMT-0700

Recently, however, a story in CIO magazine about Enterprise Value Award winners turned me on to a whole new level of understanding about what the term "customer interaction hub" might mean. The most important things to get straight: "customer starts with 'custom.'"

If you read the stories of the four winners, what you find are ingenious ways that these companies, Foley & Lardner, ABF Freight System, AT&T and ConocoPhillips, have found to let their customer use the company's back-end systems--the ones that manage the business processes--to create customer solutions.

As an aside, Hossein Eslambolchi, who's featured int he article, is the guy that AT&T sent into clean up Excite@Home's network and email problems back in the day--this is one tough, but smart, hombre. It doesn't surprise me to see him on the other side of a well-run network.

For example, the article talks about law firm Foley and Lardner's system for creating custom extranets for its clients.

[I]magine the delight of Textron when national law firm Foley & Lardner gave the company's real estate division a way to handle most of its own due diligence and document preparation for purchases and sales.

The Textron division buys and sells resort and golf properties throughout the United States, and real estate transaction laws and document requirements vary by state. Foley & Lardner built an extranet for Textron with state-specific checklists of buyer and seller transactions and documents, including contracts and nondisclosure agreements, which the firm keeps up-to-date for each state. Foley oversees Textron's transactions and offers advice as needed. But for many routine transactions, Textron can efficiently manage on its own.
From Nice Doing Business With You - - CIO Magazine Feb 15,2005
Referenced Mon Feb 28 2005 20:55:57 GMT-0700

Shipper ABF has a similar tale:

Listening to customers led ABF to allow customers to use the website to reroute their shipments en route, if necessary. ABF customer Karen Beseda, logistics manager of Teragren, which makes bamboo flooring and panels, calls this option "phenomenal." "With other companies, they need it in writing, so you have to send a fax," she says. "Sometimes they do it right and sometimes they don't. I've had shipments go totally bottoms up because of human error." Beseda says she can resolve shipment problems with ABF in five minutes on average, whereas handling problems with other shippers usually takes much longer.
From Nice Doing Business With You - - CIO Magazine Feb 15,2005
Referenced Mon Feb 28 2005 20:57:58 GMT-0700

There's a definite Web services flavor to much of this. The article explains:

At ConocoPhillips, the lubricants division is making life easier for customers by accepting orders directly out of customers' ERP systems by using FTP. Similarly, both AT&T and ABF are giving customers the option of system-to-system connections via XML. ABF is using XML and Web services to allow customers who need direct access to shipment data and applications to incorporate shipping functions into their own websites and back-end systems. And at AT&T, customers can link their systems directly into AT&T's via XML through a process the company calls eBonding. So when customers' systems detect a problem on a network, they send a trouble ticket instantaneously to the AT&T system, which automatically sends status information back into the customer's system in almost real-time. Customers can also use eBonding to embed AT&T's inventory management tools as well as ordering and status functionality into their own systems.
From Nice Doing Business With You - - CIO Magazine Feb 15,2005
Referenced Mon Feb 28 2005 21:01:50 GMT-0700

Similarly, I work closely with a local company, Aradyme that does data cleansing work. We've recently put in a system to allow each customer to have their own custom portal to see the status of their data and give feedback on individual items in real time. Putting the customer into the workflow has done wonders to keep them happy, but it also gives the company better information with which to do its work.

In each of these examples, customers are getting custom solutions and are able to reach inside the company and affect the back-end processes that make the business run. In some cases, the solutions are sophisticated Web services, but in others, they're just Web sites that are closely integrated with the business processes that customers care about.

The article lists four critical customer self-service success factors:

  1. Remove humans from routine business processes to reduce the risk of error.
  2. Link customers' systems directly into yours to increase efficiencies.
  3. Listen to what customers want and need.
  4. Gear the systems to customers' level of tech savvy.

These are good, but there are some pre-requisites to even those:

  1. Get your base services, like desktops and networks, in order. You can't pro-actively add value to customer interactions if you're constantly putting out fires at the help-desk.
  2. Understand your business processes. You can't add value to business process you don't understand.
  3. Align your IT systems with your business processes as closely as possible. By this, I don't mean in some abstract way. I mean it literally. If each business process touches a dozen IT systems, you've got no hope of flexibly meeting business demands since every request will involve futzing with the entire infrastructure.

Most importantly, get out of the one-size-fits-all mentality that plagues IT shops and techie thinking. Get the custom back into customer.

I've got a companion piece over at Between the Lines.

9:16 PM | Comments () | Recommend This | Print This

I Am a Maker

I was thinking over the weekend that there are two great sources of joy in my life: my family and making things. I love to build, be it organizations, programs, woodworking projects, or my yard. So, it was with giddy anticipation that I opened the first issue of O'Reilly's new magazine "Make" when it arrived in my inbox this afternoon. I was not disappointed.

The magazine features multiple projects and dozen's of smaller articles about making things--everything from a backyard monorail to a system for attaching a camera to a kite and taking aerial photographs. This is the kinds of stuff that made Popular Electronics, (the original) Byte, and Circuit Cellar so much fun to get each month. I'm sure I'm going to enjoy this just as much.

2:50 PM | Comments (1) | Recommend This | Print This

HB109 Status: Out of the Senate

HB109, the bill that reforms IT in Utah passed a floor vote on the Senate with one, minor amendment that the Senate Government Operations and Political Subdivisions Committee added. The amendment further limits the definition of "executive branch agency" to not include elected executive branch officers such as the Attorney General and Auditor. That's a minor change, so I expect the House to agree. Assuming the Governor signs it, HB109 will be law. Interesting that the UPEA didn't put up more of a stink on this. I have to admit, this is fun to watch--from a distance.

9:01 AM | Comments () | Recommend This | Print This

February 26, 2005

Technical Reviews

For the last week or so, I've been working on incorporating the technical reviews of my digital identity book into the draft. I'm also trying to finalize it for O'Reilly. I found the best way to catch small typos (and I make a lot) is to read the draft out loud to myself. That's really time consuming. In the old days, before spell checkers, I used to read things backwards to force myself to look at each word for spelling.

2:02 PM | Comments (2) | Recommend This | Print This

February 25, 2005

Debunking SAML Myths and Misunderstandings

Via Dave Fletcher, an article debunking SAML myths.

9:04 PM | Comments () | Recommend This | Print This

More on XMLHttpRequest

Bill Bercik has a nifty little tutorial on using XMLHttpRequest. His purpose is "to demonstrate through a series of baby steps just how easy it is to use the XMLHttpRequest object." The example is a simple form that fills in, using XMLHttpRequest, the city and state after you type the zip code. He does it in seven steps:

  1. Create the form
  2. Add the event handler
  3. Create the XMLHttpRequest Object
  4. Talk to the server using an HTTP GET
  5. Build the zip-code database
  6. Build a PHP handler to respond to the GET request and return the right values from the DB.
  7. Clean up the code to handle exceptions

There's no need to use XML in this simple example, but he shows how to do it anyway, since more complex examples will need it.

The trick to XMLHttpRequest is that it has a method, onreadystatechange that lets you register a function to handle the return request. So, the event handler fires off the HTTP request and then the code sits back and waits for the response. Once you know how to create the XMLHttpRequest object (and that's mostly cut and paste) and see how to use it, the rest is pretty straightforward.

9:03 AM | Comments (2) | Recommend This | Print This

February 24, 2005

CTO Breakfast

I realized this morning when I was getting ready to go over the CTO breakfast that I forgot to send a note to the mailing list earlier this week. I put it on my blog, but then missed the list. My apologies.

In any event, we still had a good group show up this morning and had a great discussion. As usual there was a good group of new people and they added some interesting topics to the mix. Some of the things we talked about included:

Hope you can make it next month on Thursday the 24th. That will be the last Thursday meeting we'll have for a while. In April, we go back to Fridays.

10:29 AM | Comments () | Recommend This | Print This

The Little JavaScripter

Douglas Crawford sings the praises of The Little Schemer - 4th Edition and shows that many of the Little Schemer exercises can be done in JavaScript. You may not really want to know Scheme, but, as Douglas points out, you do need to be better at recursion and this book will teach you that. Now with Douglas's translations, you can do it using your favorite JavaScript interpreter.

7:05 AM | Comments () | Recommend This | Print This

February 23, 2005

The Magic Behind Google Maps

If you read Jon Udell's latest column on Google Maps, you might have jumped right into Firefox and tried to get XML output from your map. Alas, as Jon points out on his blog, Google apparently disabled that feature. Jon gives a couple of pointers for people trying to figure out how its done:

A final note about this column: Google Maps' client-side wizardry is way cool, but the real heavy lifting -- as Wil Rivers wrote me to point out -- happens on the back end. "The product underlying Google Maps is the Drill-Down Server from Telcontar, along with associated mapping software," Wil writes. "For a description of Google's implementation of this product, see http://www.giscafe.com/magazine/index.php?run_date=21-Feb-2005, and for a description of the server itself, see http://www.telcontar.com/products/dds/index.html."
From Jon Udell: Google Maps pushes the envelope
Referenced Wed Feb 23 2005 09:25:08 GMT-0700

9:21 AM | Comments () | Recommend This | Print This

Finding Replacements for Passwords

At the RSA conference, Bill Gates called, again, for an end to passwords and vendors hawked all kinds of gadgets to make that a reality. An article at c|net examines why passwords are still popular. My own summary of why passwords continue to be the authentication solution of choice is simple: they're good enough.

This is a reason that Bill Gates ought to understand. He's made billions selling products that were good enough, even as many recognized that they had significant faults and there were other solutions that were better. Passwords cause no end of grief, but in the end, most users find them a good tradeoff between security and inconvenience. The lesson for CIOs: spend money making your password system effective (from a security standpoint) and efficient (from a help desk standpoint) and you'll probably end up where you need to be.

9:01 AM | Comments () | Recommend This | Print This

February 22, 2005

Leavitt on Interoperability Governance

Mike Leavitt, Secretary of HHS, gave a speech today at AFCEA International's homeland security conference in Washington, D.C. He listed some key points that deal with interoperability governance:

"Any enterprise that is trying to plot its way right now in the Interoperability Age has a finite amount of time, capital and opportunities," he said. Leavitt listed several elements that he believes will improve the chances of success for any project:
  1. A "common pain" or common problem that provides a compelling reason for stakeholders to come together and find a solution.
  2. A "convener of stature," meaning that a well-respected person or group would bring varied interests to the table.
  3. A committed leader to be an honest broker and to keep things on track
  4. Openness, transparency and voluntary participation.
  5. A critical mass of stakeholders.
  6. Representatives of substance, who have sufficient authority and decision-making ability.
  7. A clearly defined purpose and goal.
  8. A formally written charter that outlines governance structure, outcomes, funding contributions and is signed by the highest levels of the participating agencies.
From Leavitt sees interoperability
Referenced Tue Feb 22 2005 20:21:42 GMT-0700

This is a song that Leavitt's been singing for a long time. It's not often you hear a Cabinet Secretary speaking about interoperability. Leavitt knows this stuff and really believes it.

8:20 PM | Comments () | Recommend This | Print This

Programming for Kids

Don Box is trying to decide which programming language to teach his kids. His list of candidates includes: lisp, ML, Smalltalk, and Ruby. Personally, I'd recommend Scheme in the DrScheme IDE.

4:24 PM | Comments () | Recommend This | Print This

Using XMLHttpRequest

Here's a little tutorial on using Javascript's XMLHttpRequest from O'Reilly. Here's another one from Apple Developer Connection. I haven't had much time lately to play with this, but its on my list. XMLHttpRequest is one of the tools that Google uses to make Gmail's user interface richer and one of the tricks CanyonBridge Technologies uses to create rich applications in a thin client.

3:35 PM | Comments () | Recommend This | Print This

HB109 Out of the House

HB109, which reforms IT in Utah state government passed the House today with one amendment. Rep. Ralph Becker's amendment, which essentially gutted the bill, failed. The bill is now before the Senate Government Operations and Political Subdivisions Committee.

The amendment further restricts the transfer of a current employee with merit status. Under the amendment, only employees transfered to positions with "duties ... substantially similar to those in the employee's previous position" retain merit status. This gives the new Executive Director (CIO) more power in crafting the new Department and will ensure a bigger percentage of its workers are at-will employees.

I don't think this goes far enough, but its probably as good as its going to get. I know that some in State government think me callous for saying that, but its not out of lack of concern for people who might lose their jobs. I empathize with them--I've been there. However, I think its more important to the taxpayer that the new department work and work efficiently. The "merit" system has created a welfare system out of the State employment system and that's not fair to the taxpayers or the employees. I wish the bill codified in some way that the new at-will employees will be better compensated, but that's not there either--that will be left to the discrecion of the new CIO. Unfortunately, I know what happens when you try to pay people what they're worth in State government.

2:35 PM | Comments () | Recommend This | Print This

Web Services Tutorials

I'm conducting a two-day workshop next week on Web services for a group of IT executives and architects (yes, an interesting mix). Our goal is to get them started on an interoperability framework of Web services (and related) standards for their organization. I'm looking for some good introductory material on the WS-* standards that I can send them before we get started. Any suggestions would be appreciated.

11:12 AM | Comments (1) | Recommend This | Print This

February 21, 2005

CTO Breakfast This Thursday

We'll be holding this month's CTO Breakfast this Thursday at 8am at Canyon Park's food court. Hope to see you there.

Meanwhile, today I'm taking the kids skiing. Sundance got 21 new inches over the weekend.

8:13 AM | Comments () | Recommend This | Print This

February 18, 2005

HB211 Is Out of the House

Electronic voting has been a hot topic here in Utah over the last several months. I've been involved in the debate, testifying last October to the Utah Legislature and writing an op-ed piece. The issue was an imminent purchase of new voting equipment and an RFP on the equipment that didn't insist on a voter verified paper ballot. Yesterday, the Utah House passed HB 211, Integrity of Election Results Amendments sponsored by Rep. John Dougall. HB211 does the following:

  • requires that voting equipment produce a permanent paper record that is available for the voter's inspection prior to the voter leaving the polling place that  (A) shall be available as an official record for any recount or challenge conducted with respect to an election where the automated voting system is used;  (B) shall include a human readable format which shall be the ultimate record of the voter's intent;  (C) may also include a machine readable format which may be the same as the human readable format; and (D) allows voting poll watchers and counting poll watchers to observe the election process to ensure its integrity.
  • requires that the Lt Governor assemble a voting equipment selection committee whenever voting equipment will be purchased and requires that the Lt. Governor ensure that the committee includes persons having experience in: (i) election procedures and administration; (ii) computer technology; (iii) data security; (iv) auditing; and (v) access for persons with disabilities.

This bill isn't perfect but I'm firmly of the opinion that its the best bill we could get this session and its certainly better than leaving it all up to chance. There are a few holes; for example, under this bill, I think its possible the State could purchase equipment that makes recounts extremely costly. At some point, however, you have to trust that the people who have to make such recounts work will find it in their best interest to purchase systems that make recounts as easy as possible. eVoting activists will worry about a lot of the details, but I think the bill indicates a clear intention from the legislature that the voting system be trustworthy and establishes enough requirements that the Elections Office can fill in the rest.

Now, its on to the Senate where Curt Bramble is the sponsor.

8:46 AM | Comments (1) | Recommend This | Print This

February 16, 2005

Building Interactive Web Programs with Continuations

Supposed I asked you to build a program to grab the current exchange rates from the Federal Reserve Bank in New York (FRBNY) in XML, prompt the user for the currency to exchange dollars for, then prompt the user for the dollars to convert, and then display the result. You might write a program that looks like this:

  1. get the rates from the Federal Reserve Bank
  2. show the first prompt and record the currency choice
  3. show the second prompt and record the dollar amount
  4. query the XML to extract the right information using the user input
  5. calculate the result and display it

In fact, other than grabbing and querying the XML, any beginning programming student could write this program. You could probably do it in under 5 minutes in your favorite language.

Now, suppose I asked you to convert your program to a Web application. Still a five minute job? Hardy, and the increase in time is more than just the problem of building the Web pages. What you'd probably do is put each of those steps into a separate script and then bind them all together with a little state machine in the CGI program that jumped to the right script based on state variables that you encoded in the URL, a hidden field, or a cookie. Sadly, it wouldn't end up looking anything like the program that you'd write if you were just grabbing the input from a terminal.

The problem with programming Web applications is two-fold:

  1. The data from each page has to be managed independently and stored in a persistent manner that lives beyond execution of the CGI script.
  2. The state of the program has to be managed explicitly by the programmer.

When you think about it, Web programming is a lot like assembly language programming--lots of gotos and ad hoc mechanisms for managing data. Dave Weinberger wrote a book called "Small Pieces Loosely Joined" to describe the Web. The problem is that that's just what Web-based programs look like as well. Dijkstra must be spinning in his grave.

This leads to the question: what if I could write programs for the Web that were "structured" in the programming sense of that word? The result would be Web programs that were more natural to write and easy to read. You'd no longer have to maintain the state of your program outside the language and the data could be kept in variables, where it belongs. The answer is: you can.

There's a concept in programming languages called a continuation. A continuation is a function that represents the entire forward evaluation of the program from some point in the program. Here's a simple example. Suppose I'm evaluating this expression:

(+ 4 (* 5 6))

Before I can determine the final sum, I have to compute the product of 5 and 6. So, after the value of (* 5 6) has been computed, we can ask "what remains to be done?" The remaining work can be represented by the following function:

(lambda (x) (+ 4 x))

This is the continuation of the computation from the point immediately after the product is calculated. Some languages make such continuations first-class values and consequently you can get your hands on them and store them in variables so you can do things with them later.

If the language used to program the Web application, and the server, support continuations, the program doesn't have to terminate to interact with the user. Rather, it can suspend its operation at the point where user interaction is needed and capture the continuation. That continuation can then be used to resume the operation of the program when the user submits the page.

To see how this looks in a real example, let's return to the programming problem I posed at the beginning of this article. I've coded it up as an interactive Web program in Scheme, because Scheme supports continuations. Take a minute and give it a try. Here's the main body of the program:

(let* (
    ;; get the rates from the federal reserve bank
    (rate-list (get-xml-fr-url (make-rate-url)))
    ;; Show the first page and record the currency choice
    (country-id (extract-binding/single 
             'country-id (get-rate-page rate-list)))
    ;; show the second page and record the prompt amount
    (amount (extract-binding/single 
             'amount (get-dollars-page rate-list country-id)))
    ;; query the XML to get the rate for country-id
    (country-rate (get-rate-for-id country-id rate-list)) 
    ;; extract the values from that rate
    (country (get-country-fr-rate country-rate))
    (currency (get-currency-fr-rate country-rate))
    (date (get-date-fr-rate country-rate))
    (value (get-value-fr-rate country-rate))
    )
 (display-final-page country currency amount value date)
)

If you're not a Schemer, let me translate. The lines after the let* are executed in sequence and each clause that follows is assigning the value returned by the expression on the right to the variable on the left. So,

(rate-list (get-xml-fr-url (make-rate-url)))

puts the XML that it gets from the FRBNY into a variable called rate-list. Lines beginning with a semicolon are comments. You'll see that there's a line in the let* that correspond to each of the steps in the algorithm we gave above. The expression (extract-binding/single 'foo ...) returns the value of the input field named foo on the page. The final result displays the page with the results, which it calculates using the arguments calculated in the lines above.

Of course, there's more to this program than the main body. (You can see them all by downloading the source.) There are subroutines that support it, but the control flow is exactly the same as what you'd write in any other complete program to do this task outside the Web. Ditto for the data. You just store it in variables and then use those variables when you need them, even after other HTTP interactions with the user. Notice, for example, that we get country-id as the result of the the user submitting the first page, but don't use it until after the user has submitted the second page. There were no heroics to store it in hidden fields of a database somewhere. We just treated it like any other variable.

My point in this is not to convince you to use Scheme, although I'd applaud you if you did. This trick can be done rather easily in any language that supports continuations (like Python or Smalltalk) and, less easily, in most other languages. Here are some resources that you can use to explore this concept further:

A few notes about the program itself:

  • The program grabs the FRBNY XML file every time its run, but remember, that's only once per user, not for each page.
  • XPath is used to query the resulting XML.
  • The currency page (the one with the radio buttons) is generated from the XML, so if the FRBNY adds a new currency tomorrow, the application will adjust.
  • In a real application, you'd probably choose the currency and enter the amount on one page. The reason for splitting them here is simply for demonstration purposes.

3:06 PM | Comments (1) | Recommend This | Print This

CMSWatch Twenty to Watch

CMSWatch, which covers the Content Management System space released its Twenty to Watch in 2005 list and I'm on it--albeit number 20. Good thing it wasn't Nineteen to Watch!

2:39 PM | Comments (2) | Recommend This | Print This

Bluetooth Rearview Mirror

LG has a Bluetooth rearview mirror that shows caller id information from your phone. Very cool.

9:13 AM | Comments () | Recommend This | Print This

February 15, 2005

Virtualizing Your Datacenter

Baseline Magazine has an in-depth look at the use of virtualization technologies to automate datacenter operations. The article concludes that we're not there yet, but enterprises should plan on this trend. I've got three students in my lab working on some performance studies of VMWare's ESX platform. We're doing the work for BYU's Office of Information Technology. Our hope is to reduce over 100 departmental servers to 14U of rack space (20 blades).

Our ultimate goal, however, isn't to just do the performance studies, interesting as those are, but to develop ways of using virtualization to automate more datacenter operations, reducing the long lead-time necessary to order new servers for each product and the need to rack and stack them once they arrive. Rather, our vision is that engineers could provision servers with applications installed, even complicated multi-tier arrangements, from a Web page.

9:23 AM | Comments () | Recommend This | Print This

NextPage 1.5 Released

NextPage has released their new document management system, called NextPage 1.5. I've done a review for InfoWorld of the product that should be coming out shortly. The sneak peek: NextPage has managed to create a document management system that actually stands a chance of being used because it doesn't require any central server be installed and doesn't require that users change their work habits--at all.

9:11 AM | Comments (2) | Recommend This | Print This

Connect Column: Independent Identity - Take It or Leave It

My column for February's issue of Connect Magazine has appeared. Its called Independent Identity--Take It or Leave It.

9:07 AM | Comments () | Recommend This | Print This

February 14, 2005

Two identity Related Pieces at Between the Lines

I put a couple of new pieces up at Between the Lines on identity today:

  • Going After Phishers talks about how to proactively go after the people stealing your customer's identity.
  • Real ID discusses US House legislation to create a national ID system out of the state driver's licenses.

2:32 PM | Comments () | Recommend This | Print This

UtahHouseMajority.com Debuts

The majority leadership of Utah's House has a group blog, UtahHouseMajority.com. The group also sports two individual blogging legislators, Steve Urquhart, Majority Whip, and Jeff Alexander, Majority Leader. Nice to see the interest in blogging by the Legislature. I wonder if they've considered what they'll do with their blog if Republicans are ever no longer the majority? Of course, this is Utah, so that's a long ways off.

2:14 PM | Comments () | Recommend This | Print This

Val Oveson Gets a New Job

Val Oveson, Utah's most recent CIO, announced today that he's joining CGI-AMS as VP of Strategic Business Development. Congrats to Val. Seeing his title made me wonder though, are their companies that have VPs of Tactical Business Development? I thought all bizdev work was supposed to be strategic.

2:09 PM | Comments (2) | Recommend This | Print This

February 11, 2005

Emerging Technology

I just registered for the O'Reilly Emerging Technology conference in San Diego next month. The conference hotel is sold out already, so I'm staying at the Sheraton Hotel and Marina, which is supposedly a mile away. Good exercise, I suppose.

4:17 PM | Comments () | Recommend This | Print This

VMWare Performance Testing

Nate Ekstrom, one of my grad students, is starting to get some interesting results on his VMWare performance testing. The latest shows the importance of distributing across LUNs on the SAN. These results aren't things people don't already know, they're designed to build the test infrastructure and ensure we understand, and can back out, performance bottlenecks from the hardware. So far, so good.

2:39 PM | Comments () | Recommend This | Print This

SCO and Canopy

Yesterrday, the judge in the SCO vs IBM lawsuit refused to dismiss it, but still took it to SCO for failing to produce the evidence they have been claiming to have.

Although U.S. District Judge Dale Kimball didn't grant that declaration--called a partial summary judgment--he sharply criticized SCO for not producing evidence for its case.

"Despite the vast disparity between SCO's public accusations and its actual evidence--or complete lack thereof--and the resulting temptation to grant IBM's motion, the court has determined that it would be premature to grant summary judgment," Kimball wrote Wednesday. "Viewed against the backdrop of SCO's plethora of public statements concerning IBM's and others' infringement of SCO's purported copyrights to the Unix software, it is astonishing that SCO has not offered any competent evidence to create a disputed fact regarding whether IBM has infringed SCO's alleged copyrights through IBM's Linux activities."

The opinion bodes poorly for SCO, intellectual property attorneys agreed.

"Based on the scathing language of the ruling, it appears that SCO just barely dodged a possible knockout punch in this round," said Carr & Ferrell attorney John Ferrell. "There's very little that can be more disastrous to your case than an angry federal judge."
From Judge slams SCO's lack of evidence against IBM | Tech News on ZDNet
Referenced Fri Feb 11 2005 08:01:59 GMT-0700

I wrote a bit on Between the Lines about the recent problems at Canopy. The Deseret News had an article on that little mess. Sow the wind, reap the whirlwind.

7:55 AM | Comments () | Recommend This | Print This

February 10, 2005

Running Code and Regular Releases

Several interactions I've had recently with groups building Web applications have led me a renewed appreciation for the power of running code in a development project. Both of these organizations were some time into a large development project and still didn't have running code and regular, consistent release cycle. This wisdom gets great lip service, so it surprises me to see people who should know better not following it.

  • Any development project, but particularly those for the Web, ought to plan to release running code that someone (even just the QA group) can hit, exercise, and start to profile.
  • The initial system might be nothing more than a loop and some placeholder presentation, but it should be there as soon as possible after the project starts.
  • There should be a regular cycle of releases and engineers ought to be held accountable for supporting the release with working code, even if its not feature complete. For production system, regular might mean once a week. For code in development, it might be nightly.
  • The discipline that supports the release, like bug tracking systems and release engineering, ought to be built into the project from the start. Building that discipline is as important as building the project.

Doing this gets engineers used to the discipline and gives everyone the ability to see their code contributing to the final system on a regular basis. This is crucial for motivating ownership and accountability. Until you have code running that everyone can see, all you have is a dream--no matter how many pieces you have compiled and sitting on hard drives.

4:53 PM | Comments (2) | Recommend This | Print This

February 9, 2005

Google Maps

If you haven't seen Google Maps yet, go check it out. I'm sure you'll be impressed. Google continues to show us that thin clients and rich applications don't have to be mutually exclusive. What's amazing is that what Google's doing is just a drop in the bucket. Canyon Bridge Technologies has shown me things I would have never believed you could do in a browser. jgwebber has deconstructed what Google's doing with their maps. I like the rolling map idea. That's very creative.

7:06 PM | Comments () | Recommend This | Print This

Legislative Blogging

The Salt Lake Tribune has a piece this morning on Utah legislators who blog. Right now, the only one who's really active is Rep. Steve Urquhart from St. George, but others are promising to start. I wish there were more. I recognize that some people in public service are reluctant to be too open (and often for good reason), but its refreshing to see how someone who is supposed to be representing you really thinks. Blogs are perfect for that.

8:47 AM | Comments () | Recommend This | Print This

February 8, 2005

December Connect Column: Walled Gardens and Network Effects

My December column for Connect Magazine is now available, so I'll point to it here as well. Its called Walled Gardens and Network Effects and laments the lack of network effects in the cell phone industry. I struck a similar theme in a recent post at Between the Lines.

8:28 AM | Comments () | Recommend This | Print This

February 7, 2005

Microsoft Needs a Theory

Patrick Logan asks for a theory of how SharePoint and XML are associated. Seems like all we get is this, this and this work well together. Yes, but to what end? What's the conceptual underpinning that helps me understand how and, more importantly, why I use them together?

6:56 PM | Comments () | Recommend This | Print This

February 4, 2005

Amazon Web Services in Scheme

Initial screen for Amazon Web Services (AWS) in Scheme
Earlier, I showed my Programming Languages class how XML and s-expressions were related and how to use the SSAX parser to parse XML into s-expressions. I wanted to do something more real, however, so yesterday, I wrote a package to call Amazon Web Services from Scheme, parse the results using SSAX, and query the output using SXPATH. The result was a s-expression version of the results formatted as HTML.

That's not nearly enough, however since after you've run the query from inside the Scheme interpreter a couple of times and see the results come back, you want a Web page. So, I used the Web server that comes with DrScheme to write a Scheme servlet that uses the AWS query code to build a Web application that lets a user query Amazon and see the formatted results. I've put together a page to describe how I did it.

Results of querying AWS for "eagles" in books.

The pictures at the right show the Web application in action and the code is available for downloading in the pages linked above.

I've written programs that use XML in Java, Perl, Python, XSLT, and now Scheme. Scheme has been the easiest. I think the reason is that with s-expressions, XML is essentially a native data type in Scheme. That's an incredibly powerful idea. Your milage, of course, may vary. If Lisp isn't your thing, you'll have to wait for something else.

My primary purpose in doing all of this is to show my students why understanding programming language concepts and how to build language interpreters is relevant. Using XML is all about defining data languages, including BNF (schema) and then parsing and manipulating the results. The point isn't that this is in Scheme, but that once they know how to do it in Scheme, doing it in another language will be just adapting what they already know.

4:26 PM | Comments (1) | Recommend This | Print This

February 3, 2005

Java vs. C++

Java is preferable to C++ in exactly the same way that driving a 1994 Chevy Impala is preferable to driving a 1978 Ford LTD.

Update: Here's some pictures to help you with the visualization.

1978 Ford LTD
1994 Chevy Impala

7:46 PM | Comments (6) | Recommend This | Print This

CIO Policy and Audits

In my analysis of HB109 yesterday, I missed something which is crucial. I don't see, in the structure of the new Dept. of Technology Services, where the CIO has staff to help create and enforce policy. I'm sure there's a lot of people in the agencies and in the Legislature who are saying "we don't want DTS to enforce policy," but that's a mistake. Here's why:

One of the big reasons agencies don't want to use services from ITS is that some people in ITS see their role as being the network cop instead of being the network service provider. That's understandable--someone has to enforce the rules of interoperability and security suffer, sometimes with disastrous consequences. These roles are incompatible and the three divisions of the new DTS have to be focused on providing great service. Someone else, in DTS, but outside the three service organizations, need to be focused on creating and enforcing policy.

One idea is to create, within DTS, a small group that is not part of the internal service fund (ISF). Call it the "Office of the CIO." Since its not part of the ISF, the legislature has more direct control over its budget and thus can more easily control it to curb abuse.

2:14 PM | Comments (1) | Recommend This | Print This

KCPW on HB109

I just got off the phone taping an interview with KCPW on HB109. I don't know when it will run. Before the tape was running, we had a little conversation that went something like this:

They ask "Why should we care?"

I said, "I'm not sure you do, this isn't public policy, its government efficiency."

"How much?"

"$20 million per year"

They said "Wow! Mind if we start taping?"

10:24 AM | Comments () | Recommend This | Print This

A Couple at Between the Lines

I've got a couple of new articles over at Between the Lines:

9:41 AM | Comments () | Recommend This | Print This

February 2, 2005

IT Reform in Utah

The text of HB109, which substantially reorganizes IT in Utah, is finally available. If passed as written, the bill:

  • phases out the existing information technology governance structure in the executive branch of state government over a one-year period;
  • creates the Department of Technology Services which includes:     
    • an executive director, who serves as the chief information officer;             
    • the Division of Enterprise Technology;             
    • the Division of Integrated Technology including the Automated Geographic Reference Center; and
    • the Division of Agency Services;
  • funds the department through an internal service fund;
  • maintains merit status for employees whose functions are transferred to the department, and requires nonmerit status for an employee who is hired for a new position with the department;                
  • creates an advisory board to the department and defines its duties;
  • gives rulemaking authority to the executive director of the department;
  • requires the chief information officer to coordinate the development of technology between executive branch agencies;
  • authorizes the chief information officer to assign department staff to work in-house for an executive branch agency;
  • requires executive branch agencies to subscribe to services of the department and permits other branches and public and higher education to subscribe to services of the department;
  • establishes the process and authority for the transition of the technology assets and functions in the executive branch of government into the Department of Technology Services;

If you read the duties of the three divisions within the department, they correspond closely to the three primary functions of IT that I call out in my paper on modular IT organizations (PDF). In fact, the whole plan is eerily similar to the ideas that we kicked around in our six month effort to reform IT in 2002 when I was CIO. I had discussions with many IT and agency leaders about a structure very much like this. I remember predicting then to a group of agency IT directors that they might not choose this kind of structure themselves, but sooner or later, someone would impose it on them. Now, here it is.

Well, not so fast. This isn't law yet and I know several legislators who have some concerns about it. Heck, I've got some too. As I mentioned several weeks ago, there are 1000 ways to do this wrong and getting it wrong will be far worse than what Utah has now.

This bill goes no further than past law in bring Public and Higher Education under the authority of the CIO. I think this is a mistake. Public and Higher Ed need coordination and guidance as much as other agencies. Furthermore, there's not the same separation of powers concerns that there are with the Legislature and Judiciary. Public and Higher Ed spend a lot of money on IT and the State will see greater savings as it pools more of its IT infrastructure.

Beyond the issue of shared infrastructure, there's a greater problem of introperability and coordination among all branches of government that the bill fails to address. One way to attack this and maintain some idenpendence would be to create a CIO position in each branch (Executive, Public Ed, Higher Ed, Legislature, and Judiciary) and then form a CIO council that together has the authority to impose interoperability standards and coordination requirements on the whole of government. This might be a job for another year, however.

One big red flag I see with the bill is the clause that let's employees who transfer to the new department keep merit status. I understand the reluctance of lawmakers to take away what is perceived as a benefit and, more importantly, to keep the UEPA out of their hair. Even so, this is like teaching your kid to swim by throwing them in the deep end of the pool with a block of concrete tied to their feet. If this new department is to have a fighting chance to give good service and save money, then the restructuring needs to allow pruning of deadwood and excess personnel. If this bill passes with this provision intact, I don't give the new department much chance of succeeding.

This reorganization is the largest thing to come out of Gov. Huntsman's transition team and its important to them. I expect that they'll put in a full court press. On the other side will be the middle managers who have built relations with legislators over the years and will be whispering in their ears all the reasons this will end life as we know it. Should be an interesting fight.

7:06 PM | Comments () | Recommend This | Print This

Blogging at Public CIO

Public CIO Magazine has an article on blogging called The Coming of blog.gov by Blake Harris that I'm part of. Blake asked a lot of good questions and we talked for a while.

That is why the Utah state government's brash foray into blogging stands out. A few months after becoming Utah's CIO in 2001, Phillip Windley began blogging personally.

"It wasn't very long after that -- a month or so -- that I realized there could be a lot of value to an organization if there were people inside the organization who blogged," Windley explained. "I could see how when I wrote stuff on my blog, people who worked for me and people who worked in IT throughout the state, as well as others, would respond to it. I thought, "This is cool. I've got a channel to essentially talk to these people.'"

But Windley also wanted to hear what these people were thinking and saying. So he assembled a little program, negotiated a price for up to 100 licenses with UserLand, and offered anyone in Utah state government a free blog for a year if they wanted to start blogging. Although blogs were little known among the general Internet population back then, about 35 people took him up on the offer.

Many of these blogs eventually died for various reasons. "Some people just don't like to write," said Windley. "And there was some institutional backlash against it. There was one guy in particular who worked for me who kind of caught the vision and started writing about what we had tried that worked, what didn't work, and where we had made mistakes. A lot of people got really upset at that, saying it was airing their group's dirty laundry."

For governments to maximize blogging as an organizational tool, Windley said governments must create a culture that allows people to say things and not get slapped for it. "A lot of governments are not like that," he said. "But if you want to use blogs for interdepartmental communication and for people to exchange ideas internally, they have to feel comfortable that they can say what they think and it is not going to be held against them."

Yet even without such radical cultural change, Windley sees many institutional uses for Weblogs, both behind and in front of the firewall. For example, behind the firewall, a very straightforward use is to put up a Weblog on your help desk. And when you start getting issues about a problem in your IT infrastructure, post it on the blog. "It is like your early warning trouble ticket system," explained Windley. "It takes an hour to set up, and will be much better than what most governments do to let their employees know of issues and problems taking place. Stuff like that is just so brain-dead simple. The software is free or low-cost, and it is easy to use."

In front of the firewall, according to Windley, one obvious place for a government Weblog is in public affairs. Although it isn't obvious to the user, part of the Census Bureau Web site, for instance, actually runs on blogging software. It automatically puts news in chronological order, allows people to comment and gives a free rich site summary (RSS) feed.

For Utah, from what Windley admits was rather haphazard beginnings, blogs have now become a vital tool for state IT management. David Fletcher, deputy director of administrative services for Utah, was one of the bloggers from Windley's original program. Today, his public Government and Technology Weblog comes up high in Google searches.
From Government Technology's Public CIO Magazine
Referenced Wed Feb 02 2005 16:00:46 GMT-0700

3:58 PM | Comments (2) | Recommend This | Print This

Blogging on Marketplace

A feature by Bob Moon on Marketplace this morning talks about blogging. I'm in the piece, briefly. Bob contacted me before Christmas and we talked for about 45 minutes. I was in the studios at KBYU. Out of that 45 minutes, they used just a tiny snippet--the whole clip is only 3 minutes and 50 seconds and there are 2 or 3 other people in it. Here's what I say:

"Five, ten years ago, if you got bad service from a company, you told some of your friends. Now, I post it on my blog and 1000 people read it today. That is a much bigger voice."

The piece was supposed to air sometime right after Christmas, but the tsunami had a way of moving stories around.

I remember doing similar news pieces (local TV) in 1995 when the Web was new. Its interesting to see blogging going through the same evolution.

Its also interesting to see how the the story was made, given the interest in podcasting. I suspect Bob talked to everyone in the piece for about as long as he did me. He then put together a story around just a few quotes. I can easily envision how I'd do that with writing. I know from a technical standpoint how to do it with audio, but the process seems much more foreign--largely because of my experience, I expect.

2:27 PM | Comments () | Recommend This | Print This

February 1, 2005

Customer Intimacy

While I was over at Baseline, I checked out Tom Steinert-Threlkeld's column on customer intimacy. Tom's point is plain: you can ruin a brand with shotgun blast marketing. People building customer interaction systems need to take this into account. Cluetrain taught us that markets are conversations. Customer interaction systems, at their best, ought to facilitate those conversations.

2:10 PM | Comments () | Recommend This | Print This

Big Outsourcing Deals

JP Morgan Chase recently dropped a big, multi-year IT outsourcing deal they had with IBM. IBM's performance wasn't the issue, but financially it had stopped making sense. Baseline Magazine has a detailed story about the development.

The company's CIO, Austin Adams, said at the time: "We believe managing our own technology infrastructure is best for the long-term growth and success of our company ... to become more efficient."

What really changed things was the July 2004 merger of JP Morgan Chase with Bank One, which had gained a reputation for consolidating data centers and eliminating thousands of computer applications. JP Morgan Chase would now switch from IBM to self-sufficiency to take advantage of BankOne's cost-cutting know-how.

Bank One has to date delivered a remarkable performance. The bank reduced head count 12% from 2000 to 2003, while raising revenue 17% to $16.2 billion. By contrast, JP Morgan Chase reduced its head count only 6% in the same period while revenues grew just 1%, to $33.3 billion from $32.9 billion.
From Why JP Morgan Chase Really Dropped IBM
Referenced Tue Feb 01 2005 13:47:25 GMT-0700

So, after the merger, Bank One showed JP Morgan Chase how to do it themselves better and cheaper.

I spoke to one CIO recently who's company had a five-year deal with EDS. His conclusion was that the deal tied his hands to the point that he could no longer add value to the company. I don' t think this means that outsourcing is a bad idea, but I do think that you need to be careful what you outsource.

The one area that you can outsource without much impact on your business is service delivery functions like networks and desktops. Should you? That's a financial decision and for some companies it makes sense. On the other hand, if you have the capacity to make changes, cut costs and build operational excellence in-house, you're probably better off keeping it. Those are tall orders, however and many companies don't have the discipline to make it work.

A good compromise is in-sourcing. Making in-sourcing work requires some discipline as well, but its more manageable. To do it, you build a shared services organization within your company and create an economy to drive performance and cost in the right directions. One of the best books I've read on this subject is Shared Services: Mining for Corporate Gold by Barbara Quinn, Robert Cooke, and Andrew Kris.

1:44 PM | Comments () | Recommend This | Print This