That's a very good question. In terms of the initial piece of these projects, if you're doing a $500-million project, then you're going to need a big plan. But I just finished one at SSC where we put in a financial forecasting system that did forecasting of budget against actual. In three months, for $125,000, we created the beta version. If you rolled that across all of government, that would be a huge project. But for $125,000, I can bet that money to learn and discover the nuances of that particular kind of application that would help me on the next iteration and the next iteration. If you bet the farm, yes, you have to know everything and it takes a lot of trust. But if you're not betting the farm, if you're just doing initial trials and test runs....
Now, in this environment, we do them in production, but we do them at such a small scale initially that we mitigate risk by the scale at which we do them. The normal thinking is “I have to do the whole thing, and I have to do it in one shot because I have to budget for it and I have to allocate and I have to procure for it.” But there are ways to do it. There are standing arrangements where I can buy pieces and components and I can build stuff and test and validate stuff. I can do it in production. I can talk to users directly, and I can talk to citizens directly, which is part of this whole open government thing, which is extremely good. If you're going to send an UI cheque to somebody, ask him, “Did you get it? How did it work? Were you happy? Are you using a new online system from the government?” You need to talk directly to citizens who are using it and get their feedback.
Risk mitigation is through project size and through the period. The periods are timeboxed into very small iterations. Usually in a 90-day period, I would do six or seven iterations where I would create just a small component. For most projects, like the one for SSC that I just did, the first iteration is how to log in. You create the log-in the first two weeks and come back. You say, “Try it”, so the user tries it, and you get the feedback. What's the next piece you have do? You do it in components like that.