Facts And Fallacies Of Software Engineering Free
LINK - https://urllie.com/2tvVzW
Facts and Fallacies of Software Engineering: A Review of Robert Glass's Book
Software engineering is a relatively young discipline that has evolved rapidly over the past few decades. Along the way, many facts and fallacies have emerged about the nature, practice, and challenges of software development. In his book Facts and Fallacies of Software Engineering, Robert Glass, a veteran software practitioner and researcher, presents 55 facts and 10 fallacies that he believes are essential for software engineers to know and understand.
The book is divided into two parts: one for facts and one for fallacies. Each fact or fallacy is stated succinctly, followed by a discussion of its implications, evidence, and controversy. The facts cover topics such as requirements, design, testing, quality, management, estimation, reuse, complexity, research, education, and ethics. The fallacies expose some common myths and misconceptions about software engineering, such as silver bullets, best practices, tools, metrics, documentation, methodologies, and standards.
The book is not a comprehensive or definitive guide to software engineering, but rather a personal and opinionated perspective based on Glass's extensive experience and knowledge. The book is intended to stimulate thought and debate among software engineers and managers, as well as to provide some useful insights and lessons learned from the history of the field. The book is written in a clear and engaging style, with plenty of examples and anecdotes to illustrate the points. The book is also well-referenced, with citations to relevant literature and sources.
Facts and Fallacies of Software Engineering is a valuable resource for anyone interested in learning more about the realities and challenges of software engineering. It is also a fun and provocative read that will challenge some of the assumptions and beliefs that software engineers may hold. The book is suitable for both beginners and experts in the field, as well as for students and educators of software engineering.
In the following sections, we will briefly summarize some of the facts and fallacies that Glass presents in his book. We will also provide some comments and reflections on how they relate to our own experience and observations of software engineering.
Facts
Glass organizes the facts into seven categories: general, management, quality, design, testing, reuse, and research. We will highlight some of the most interesting and important facts from each category.
General
The general category contains facts that apply to software engineering as a whole. Some of the facts are:
The most important factor in software work is not the tools or techniques or methodologies that are used, but the quality of the people doing the work.
Software engineering is not a science or an art, but a craft that requires both scientific and artistic skills.
Software engineering is a complex and difficult activity that is prone to errors and failures. There is no simple or easy way to do it well.
Software engineering is not a static or stable discipline, but a dynamic and evolving one that changes constantly in response to new technologies, problems, and demands.
These facts emphasize the human and social aspects of software engineering, as well as the challenges and uncertainties that software engineers face. They also remind us that software engineering is not a mature or well-defined discipline, but a young and evolving one that requires continuous learning and adaptation.
Management
The management category contains facts that relate to the planning, organizing, leading, and controlling of software projects. Some of the facts are:
The most important factor in software project success is effective communication among all the stakeholders involved.
The second most important factor in software project success is realistic expectations about what can be achieved with the available resources and time.
Software project estimation is a difficult and error-prone task that often leads to over-optimism and under-estimation.
Software project management is not a technical activity, but a political one that involves negotiation, compromise, and conflict resolution.
These facts highlight the importance of communication and expectation management in software projects, as well as the challenges and risks of estimation and planning. They also suggest that software project management requires not only technical skills, but also interpersonal and organizational skills. aa16f39245