
Written in a remarkably clear style, Creating a Software Engineering Culture presents a comprehensive approach to improving the quality and effectiveness of the software development process. In twenty chapters spread over six parts, Wiegers promotes the tactical changes required to support process improvement and high-quality software development. Throughout the text, Wiegers identifies scores of culture builders and culture killers, and he offers a wealth of references to resources for the software engineer, including seminars, conferences, publications, videos, and on-line information. With case studies on process improvement and software metrics programs and an entire Part on action planning (called "What to Do on Monday"), this practical book guides the reader in applying the concepts to real life. Topics include software culture concepts, team behaviors, the five dimensions of a software project, recognizing achievements, optimizing customer involvement, the project champion model, tools for sharing the vision, requirements traceability matrices, the capability maturity model, action planning, testing, inspections, metrics-based project estimation, the cost of quality, and much more! Principles from Part 1 * Never let your boss or your customer talk you into doing a bad job. * People need to feel the work they do is appreciated. * Ongoing education is every team member's responsibility. * Customer involvement is the most critical factor in software quality.
If you like "The Secrets of Consulting", the next one for you should be "Exploring requirements: quality before design", by Gause & Weinberg. What an eye opener it was for me!
If you don't know who Gerry Weinberg is, then look that up too. You will profit from the exercise.
1. https://geraldmweinberg.com/Site/Exploring_Requirements.html
This book introduced me to the questions I should have been asking before starting to write software and helped me make a lot more money by impressing people with those questions.
Included in the book are context-free and meta-questions which are useful in all sorts of arenas.
By forcing me to become immersed in separation between functional and non-functional requirements, I began to understand the importance of the non-functional requirements (software quality attributes) and have since found that it is a useful distinction in the pursuit of living well.
1. https://books.google.co.nz/books/about/Exploring_Requirement...
I lent my copy to my brother over a decade ago. Still haven't got it back...
Also Exploring Requirements: Quality Before Design by Donald Gause and Gerald Weinberg. Really useful advice about questions to ask people to understand what the system really does/should do.
https://geraldmweinberg.com/Site/Exploring_Requirements.html