Successful software depends not only on technical excellence but on how members of the software team work together. Written in easy to understand language by a leading expert in the field, this ground-breaking volume provides an overview of the team culture required to develop quality software. Reflecting the different views on the nature of software quality, the book helps groups in a software team to communicate more effectively and to overcome the conflict created by their different perceptions of quality. You learn the roles and activities of team members (including customers) throughout the life of a software product, from before the software development starts and during the software development lifecycle, to after the software has been deployed and is in use.
About the Author Isabel Evans is currently an independent training provision and quality improvement consultant. She has nearly 20 years experience in the IT industry, specializing in quality management, testing, training and documentation. She has aided organizations in the development of standards, methods and procedures to support testing of software during development and maintenance projects. She has also provided quality assurance support, release management, and customer support for IT organizations and has published extensively.
Review By: Cathy Bell 01/27/2006There are countless theories as to why IT projects fail. "Achieving Software Quality through Teamwork" takes the point of view that many failures are due to a lack of recognition that software is built by teams of people—-who all need to recognize their role in the process and work together to achieve software quality. It focuses on how effective communication is achieved by knowing the functions of the other team members, working to get consensus on issues that arise (as total agreement is not always possible), and learning and refining the process as we grow.
Author Isabel Evans uses the EFQM (European Foundation for Quality Management) excellence model as a framework for the book. The model is based on the premise that "excellent results with respect to performance, customers, people, and society are achieved through leadership-driving policy and strategy that is delivered through people, partnerships and resources, and processes" (www.efqm.org).
Evans begins by covering the basics, taking us through the many definitions of quality as seen through processes and models such as ISO and CMM and acknowledging that our company culture or the industry in which we work often governs the process we follow. All processes can be refined, however, with the ultimate goal being the bringing together of IT development and project management.
Chapters two through seven cover the makeup of the project team, stressing communication between team groups. Chapter eight deals with the importance of viewing the project across its lifecycle--not just the software development portion--and focusing on quality at every stage. Chapter nine covers how an effective startup can eliminate a lot of miscommunication and misunderstanding. Chapter ten discusses the many SDLC models and emphasizes that one size does not fit all. Chapter eleven concerns delivery of the product when it is deemed "ready for use," showing how successful delivery and maintenance depends on how well the team is able to define clear processes.
The book is easy to read with a lot of practical advice. There are many useful tables and references cited in the text, which make it a valuable reference book. The author covers the often-overlooked human side of the software equation.
There are many points at which defects can be introduced, from the time a project is no more than an idea in someone's mind until it is delivered for use. The author looks at how teams can avoid many of these defects if they work harder on their communication and understanding skills. The "experience-based anecdotes" gave me the feeling that the author was present during one of our last project meetings, which emphasized that the problems we face are universal.
Dorothy Graham writes in the foreword that the book will increase your understanding of the people with whom you work and could even enhance their understanding of you. We can't understand what we don't know, so the author explains each team member's job and the challenges he faces to get the job done. If we understand what someone else is going through, then we are more likely to understand that person's point of view. This can open those all-important lines of communication.
"Achieving Software Quality through Teamwork" by Isabel Evans recognizes that people make up the teams that produce software. Effective communication and conflict resolution are necessary for any project to be successful. "Break down barriers between people," the author wrote. "Communication and team work are key to achieving software quality. It is not my responsibility; it is not your responsibility. It is our responsibility, together."
Review By: Cyndee Schwartz: 01/27/2006The title "Achieving Software Quality Through Teamwork" might be slightly misleading. The subject matter of the book is certainly directed around software quality, but focuses more on how different members of a development team define quality and how the different views of quality can cause communication issues and conflict within a software project.
Once you understand what the book is about, the information begins to flow freely. Author Isabel Evans starts by identifying who should be part of a development project and how each member of the team has a different view of quality based on her responsibilities in the project. The team members are divided into five different groups: customers, managers, builders, measurers, and supporters. Each group has a chapter devoted to who they are and what makes them tick.
The last four chapters in the book are dedicated to discussing the software development life cycle, from project start-up to the customer support calls after the product is released. The author documents the different stages of SDLC and illustrates different SDLC models, such as the commonly used waterfall method and the incremental method used with large projects.
The book is formatted like a college textbook and well organized, with each chapter flowing easily to the next. The reader can easily find where to look when specific information is needed, either through the index or through the very detailed table of contents.
"Achieving Software Quality Through Teamwork" is a good, basic, how-to book on building a software development project team. The author, Isabel Evans, takes a customer-centric approach, focusing on the needs of the software's end-user. The old-school mentality of software engineering has been to take the technological view of quality and pooh-pooh the needs of the user. Evans challenges those views, focusing her efforts on changing that mentality and moving software development into the age of customer-centric thinking. Though each team member has his or her own views of what software quality is, in the end it is the customer's definition of quality that really matters.
This book is an excellent choice as a reference tool for building project teams. Though the topic is technical and meant for IT professionals, the writing style is easy to read. Each chapter starts with real-life application examples that bring the topic to life. The only thing I would change would be to put less emphasis on the software development life cycle and more real-life application on how to resolve the communication issues that arise between members of the team. However, understanding why those conflicts exist is a giant step in the direction of resolving them, and the author does a wonderful job of enlightening us with that knowledge. Development team leaders looking for a smoother design process, lower bug counts, less conflict, and happier customers would definitely benefit by picking up this book.
How do you define software quality? Does every member of your team have the same view of quality as you? "Achieving Software Quality Through Teamwork" discusses the differences of opinion between stakeholders, managers, developers, QA, and customers as to what defines quality through all the different stages of the software life cycle.