10Software Design

Now that you have mastered the mechanics of developing quality products on predictable schedules, it is time to address more advanced topics. The first of these is design. Software design is important because good design is the key to scalability, and scalability is the key to producing cost-effective and high-quality systems. To appreciate the impact of scalability on software development, consider building a boat. A competent amateur could probably build a 10-foot rowboat in his or her garage. However, building a 1,000-foot ship would be a totally different matter. Scaling up a boatbuilding job by 100 times changes almost every aspect of the job. With software, however, we attempt to build million-LOC systems with the same ...

Get PSP(SM): A Self-Improvement Process for Software Engineers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.