Designing for Multiple Developers

One of the main challenges in the planning stage is to establish discrete project areas for each developer. As you design the specification and architectural design, look for areas that have a minimal amount of overlap. For example, a complicated data monitoring system can have one set of VIs to display and manipulate data and another set of VIs to acquire and save the information. These two modules are substantial, do not overlap, and can be assigned to different developers.

Inevitably, there is some interaction among the modules. One of the principal objectives of the early design work is to design how those modules interact with each other. The data display system must have access to the data it needs to display. The acquisition component needs to provide this information for the other module. At an early stage in development, consider designing the connector panes of VIs needed to transfer information between the two modules. Likewise, if there are global data structures that must be shared, analyze and define them early in the architectural design stage, before the individual developers begin working on the components.

In the early stages, each developer can create stub VIs with the connector pane interface defined for a shared module. This stub VI can do nothing, or, if it is a VI that returns information, it can generate random data. This flexibility allows each member of the development team to continue development without having to wait for the completion of other modules. It also makes it easy for the individuals to perform unit testing of modules.

As components near completion, you can integrate the modules by replacing the stub components with the real counterparts. Then you can perform integration testing to verify the system works as a whole.