On Project Success Factors: Take time for research
In your project, allocate time (and budget!) for research. I used to think that all activities should contribute directly and specifically to the end goal. I now tend more towards the view that you should plan for research. Of course the research should be targeted, but usually a project has a few subjects that will cause you and your team a headache. And generally you can name these areas in advance! Specific problems, let alone solutions, are unclear at the outset. In order to avoid problems down the line it is wise to start your project with research, proofs of concept, name it what you will, to clarify major stumbling blocks.
The most inspiring example of this approach I have been privy to, has been the implementation of Oracle Spatial at a Dutch government agency. A few years back they wanted to consolidate all geographical data from a dozen regional databases to one Oracle Spatial database, covering the Netherlands. This database was needed to allow the introduction of online services to the public. The database had to be completely refreshed every 24 hours, after which the new database would be put online. The most important questions put to this research project were: is it at all possible to load and index all data within 24 hours and what are the response times of typical queries on the consolidated database.
I had the honour to be responsible for shaping this research project into a fixed price project, with a budget that would have been respectable for any â€œnormalâ€ project. In any normal sense though, the project would have failed. It was impossible to achieve the project goals with the then current Oracle release. Of course the next release, due for shipping six months later, made it possible. For any regular project this would have spelled failure. For a research project of this kind: no worries! We simply put the project on hold for six months and implemented our architectural choices on the new version.
The resulting database has been the crucial and stable foundation of the information flows to all clients and continues to do so. An excellent approach.