Visual Basic

Creating a Foundation with a Pathfinder Project

You might not have the luxury of being able to start with a small noncritical project to learn about Visual Basic 6 distributed development. If this is the case, start with a Pathfinder project. The concept of the Pathfinder project was developed to handle the risks in large-scale Visual Basic 6 distributed development. It is aimed primarily at the technical risks, but it does provide an opportunity to address business and people risks. It provides a good foundation from which you can build a successful application. (See Figure 15-7.) Such a project is a significant undertaking, usually requiring the full-time attention of three to five of the best development staff for three to six months. This time frame is dictated by the volume of work to be performed and the high caliber of staff needed to perform it. But it is time and effort well spent.

You need to ensure that the application will fit with other applications and will reuse components and ideas. You need to gain appropriate user involvement and commitment. You need to determine team structures and skill requirements and work out the project management approach and the development process. The objectives of the Pathfinder development must be considered nearly impossible to achieve in order to ensure that only commitment from the top and the elimination of politics will achieve them. The Pathfinder project will tackle the difficult things first. It will prove the infrastructure and the techniques for exploiting it. A Pathfinder project kick-starts the process of ongoing research. This process should stop only when the technology stops changing.

Figure 15-7 In the absence of architecture, components, and patterns, initiate a Pathfinder project to produce them

Usually some of the work will have been done as part of other projects. This will reduce the workload, but it will still be necessary to bring the various strands of work together to meet the Pathfinder objectives.

A Pathfinder project will include the following objectives:

  • Developing a logical business architecture (This architecture is best expressed as a high-level logical business object model.)
  • Developing a technical system architecture that will adequately support all the technical requirements, such as database updates, maintainability, and performance
  • Developing design patterns and frameworks to address anticipated design problems, such as bulk data movements, locking strategies, and error handling
  • Demonstrating that the technical architecture can deliver at least one significant business requirement to a production environment
  • Providing an initial knowledge base
  • Developing a core team of technical experts who can provide technical supervision and mentoring to other staff
  • Identifying the skills required to complete the project

With a new development tool, it is essential that these areas be revisited and fully understood. The people carrying out the investigation need to be among the best developers. They need to be in touch with day-to-day development issues. They need to know what is important.