Computing Reviews

Crisis management for software development and knowledge transfer
Zykov S., Springer International Publishing,New York, NY,2016. 133 pp.Type:Book
Date Reviewed: 07/27/17

Let’s make it clear from the start: this is not a book about failing or failed software projects. The word “crisis” comes from discussions held at the first North Atlantic Treaty Organization (NATO) Software Engineering Conference, in 1968, to identify the difficulty of writing useful and efficient software in an era of rapidly increasing computer power, where the struggles of software development prevented effective progress in tackling complex problems.

Over the past 50 years, computer performance has kept increasing, as summarized by Moore’s law, and new approaches have been introduced to address technology and human-related aspects of the software development life cycle, to keep it manageable and to achieve the intended results. Still, a universal recipe has yet to be invented; holistic approaches still need to be considered, as a function of the problem to be tackled and of the environment in which the development takes place.

This is the key message in Zykov’s book: his position is that even if the risk of software crises is always present in different forms (for example, projects running overtime and over budget, insufficient software quality or performance, requirements not being met), it is possible to optimize the life cycle through the application of software engineering methods and tools. Interestingly, he links the root causes of software crises to the findings of Karl Marx on “‘the anarchy of production,’ [resulting] from the absence of central planning or regulation of the production,” and manifesting itself in “resource unbalance due to an [asymmetric] vision of the product features and project constraints between the client and the developer.”

The author looks into models, methods, and tools to handle software product life cycles, analyzing advantages and disadvantages and highlighting how different models affect the probability of success. Similarly, software development methodologies are discussed, with a focus on “mission-critical and large-scale applications,” covering both formal and agile approaches. An interesting section is dedicated to practices for knowledge transfer, as a way to close the “conceptual misunderstanding between the client and the developer,” addressing human factor obstacles such as “differences in culture, geography, and process maturity.”

This book, not overly technical, achieves a good balance between theory and practice, bridging the gap between academic approaches and industrial practice. This makes it interesting to a broad audience, ranging from graduate students to practitioners.

Reviewer:  Alessandro Berni Review #: CR145450 (1710-0641)

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy