How do you manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum K. Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the world's leading practitioners construct and maintain software.
At Google, software engineering represents roughly 80-90% of the work, while only 10-20% of the time involves original programming. Most teaching on this subject concentrates on programming, but little on software engineering. By emphasizing three fundamental principles that software organizations should keep in mind when designing, architecting, and writing code, this book explains:
- Fundamental differences between software engineering and programming
- The software engineering lifecycle from code development to testing to deprecation
- How to effectively manage your codebase and efficiently respond to change
- Why culture is important, and how processes, practices, and tools come into play
- Tradeoffs: how an organization makes optimal software decisions by keeping time and scale in mind