Cover of Code Complete by Steve McConnell - Business and Economics Book

From "Code Complete"

Author: Steve McConnell
Publisher: Pearson Education
Year: 2004
Category: Computers

🎧 Free Preview Complete

You've listened to your free 10-minute preview.
Sign up free to continue listening to the full summary.

🎧 Listen to Summary

Free 10-min Preview
0:00
Speed:
10:00 free remaining
Chapter 6: System Considerations
Key Insight 3 from this chapter

Effective Management Strategies for Diverse Software Project Sizes

Key Insight

Effective management of software construction requires encouraging good coding practices, often best achieved by having a respected architect define standards, rather than management, to leverage an 'expertise hierarchy.' Techniques for encouraging quality include assigning two people to project parts, reviewing every line of code, requiring code sign-offs by senior technical personnel, circulating examples of good code, and treating code listings as public assets. Managers with a programming background can set a clear standard: 'I must be able to read and understand any code written for the project.'

Accurate estimation necessitates recognizing the distinct types of software and their associated complexity and cost multipliers. A simple 'program' (e.g., 2500 lines of code in 1 month) is the least complex. A 'software product' intended for external users, requiring extensive testing and documentation, costs approximately 3 times more than a simple program. A 'software system,' comprising multiple interconnected programs, also costs roughly 3 times a simple program due to interface and integration complexity. A 'system product,' combining the polish of a product with system complexity, costs about 9 times as much as a simple program. Underestimating by a factor of 10 is possible if these distinctions are ignored.

Configuration management, also known as 'change control,' is crucial for maintaining a system's integrity by systematically identifying project artifacts and handling changes. This practice involves evaluating and tracking proposed changes, and keeping historical copies of the system. Without effective change control, projects risk developing incompatible code, working on untested versions, or being unable to revert to stable states. Despite its clear necessity, many programmers historically avoided it, with recent studies indicating that less than 20 percent of organizations with informal software development practices had adequate configuration management.

📚 Continue Your Learning Journey — No Payment Required

Access the complete Code Complete summary with audio narration, key takeaways, and actionable insights from Steve McConnell.