s that will promote software quality. Testing and verification will be sensible, rigorous, and ongoing. The customary prayer wouldn't hurt, either.
Still, the client/server angles can blindside you. Imagine how the complex specifications are going to change along the way -- especially as the platform issues influence what is (im)possible. Your development teams may be on different continents. How are you going to coordinate all this? Are you going to find tools that deal with the resulting complexity, or are you going to write your own? And the very notion of testing all this will probably cause you to wake up screaming at 3:00 a.m.
Take a deep breath. Your first step will be the specification and design of client/server applications. The good news is that the computing world is finally awakening to what you've known all along: You can't do everything asked for on time and in budget. We'll show you the realistic alternat
ive and illustrate how the design phase should become an ongoing process in your project.
More good news: Development tools and middleware can smooth over some of the cross-platform cracks. Coordinating your far-flung collaborators is not the nightmare you've dreaded, either. Products that track and route all the pieces ease the strain considerably. The best news may be testers. Testing is now often best done automatically. These robot-like examiners can simulate umpteen-thousand users slamming away at your application. Actual use will seem dull compared to what these self-propelled nitpickers do.
Maybe software quality for client/server applications doesn't drop like the gentle rain from heaven. However, this information will keep you from being washed away in a torrent of complexity and broken code.