This is the minimalist list of infrastructure requirements that we recommend:
Corporate Visual Basic 6 distributed architecture and strategy
General application design standards
Data design standards
Distributed guidelines (such as connectivity method, use of stored procedures)
GUI style guide
Distribution, installation, implementation, and upgrade guidelines
Development environments (such as development, test, and production servers)
Source control software and associated procedures
Powerful, standardized developers' PCs fully configured with Visual Basic, Microsoft Access, relevant (and tested) custom controls, and a range of supporting utilities and tools
Fully configured and tested server database with associated tools to add test data, stored procedures, and the like
Fully implemented and tested workstation-to-server connectivity (should include network software, drivers, and so on)
Education and training of those providing any of the above or filling technical roles
The Early Stages
It is essential that a project get off to the right start. In this section, we detail some of the methods and approaches we use at TMS to make sure this happens.
Vertical Partitioning Means 80 Percent Complete Is 80 Percent Delivered
Analysis should support the design, implementation, and management processes. If you're using an incremental approach, you should be able to partition the analysis vertically to investigate part of the problem in detail and to defer looking at other areas until later. You should also be able to design and implement each partition without analyzing the other areas in detail. The business architecture will provide the context for any partition. This approach will help you judge the suitability of an application for incremental development and the potential stability of a specific partition.
Partitioning allows you to consider different parts of the problem in isolation. Vertical partitioning allows you to proceed with designing and building the application incrementally with the confidence that rework will be minimal. It also allows the business needs to drive design, build, and roll out. Once the technical foundation is in place, an incremental implementation that meets business priorities can happen. Using an object-oriented approach from analysis to coding allows this incremental implementation to occur.
The careful specification and use of business-oriented ActiveX servers will provide a vertically partitioned design. Late binding and generally decoupling increments will reduce the need for recompilation and rework. From this point of view, out-of-process servers are better than in-process ones. Maintainability should normally rank above performance, a priority you need to make clear early on. (One of the biggest criticisms about a system is often its performance because it's an aspect that is all too visible, whereas maintainability can easily be overlooked since it won't become an issue until after the initial delivery of the system is complete.) Vertical partitioning allows parallel streams of design and build to take place. This partitioning provides rapid development at low risk without increasing costs.