Software Process Dynamics (英語) ハードカバー – 2007/10
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
This book is designed for professionals and students in software engineering or information technology who are interested in understanding the dynamics of software development in order to assess and optimize their own process strategies. It explains how simulation of interrelated technical and social factors can provide a means for organizations to vastly improve their processes. It is structured for readers to approach the subject from different perspectives, and includes descriptive summaries of the best research and applications.
"By taking both a technical and a social approach Raymond Madachy,the author, stimulates the readers interest and makes his book ofover 600 pages a very worthwhile title." (Kybernetes, 2008)
"When Ed Yourdon says that this is possible the 'best softwareengineering book' of the year, and possible the decade, one canhardly argue." (Ubiquity, June 10-16, 2008)商品の説明をすべて表示する
It doesn't claim to be the next silver bullet, but it does do a great job of putting all the silver bullets to come about over the past several years in their place. It offers a refreshing realistic view on the state of software processes, and then moves into how to capture their essence with simulation software and system dynamics.
The author makes it clear that the book defines system dynamics as a methodology to implement systems thinking and leverage learning efforts. The book also discusses discrete-event simulation, and the trade-offs throughout.
SEI just published a good paper on discrete-event simulation and using it to gauge CMMI levels of a given process. Google for "Moving Up the CMMI Capability and Maturity Levels Using Simulation".
The book also does a great job of relating simulation to the CMM levels.
The overall theme is not one of predictions, but rather one of learning and deeper insight into software processes.
The author clearly defines and explains the different contexts of process model. He explains it as it is used for simulation, life-cycles (waterfall, RUP, WinWin, MBASE, agile, etc.), and frameworks (CMMI, Six Sigma, etc.).
The first chapter of the book is available on the Wiley web site. It contains a lot of great information. The author also has a book site that I have noticed being updated over the past couple of weeks.
The book is very well written and it has a nice logical flow to it. I would recommend this book to anyone involved with software engineering. Project Managers, Architects, and Developers all stand to gain from it's insight.
Mathematical models are easily understood and realistic. recommend.
That said, I do believe this is the best single volume on the topic of software process dynamics and modeling. I and others used the work of Dr. Tarek Abdel-Hamid who led the way with his own fine book, Software Project Dynamics, as a way to augment the standard project estimation technology during the early 1990s. We had quite a bit of success in producing model behavior that matched the results of real projects and, then, "predicting" possible behavior of planned projects.
Therefore, I found the subject of system dynamics, pioneered by Dr. Jay Forrester at MIT, to be quite a worthwhile, and practical, field of study. As with any somewhat formal approach to software development project/process modeling, it takes some time to get useful results if you start from scratch as we did.
Ray's book, however, is about as clear a description of the concepts behind and development of such models as you'll likely find.
It uses concepts of system dynamics, and applies those concepts to the software development lifecycle. Via use of simulation modeling, readers can gain a greater understanding of their own process and their limitations, and thus can be made able to improve those processes.
A sample practical question addressed by simulation might be : "What will be the short term effect of adding an off-site devloper to my project ? Will the long term postive effects outweigh the short term need to bring the new person up to speed ?" or "What will the defects profile on this project likely look like given the inputs to this project (for example the requirements documentation and use cases) ?
The author, with a wide and varied consulting background, as well as academic experience at the University of Southern California, introduces system dynamics modeling via the following main process areas:
1. The basic process model ( rates, flows of information, ideas, etc.)
2. Model Structures for software processes ( including rate and level systems and decision structures)
3. People factors modeling. ( i.e. learning curve, motivation, attrition)
4.. Product applications (for example: re-use, defect modeling, process improvement)
5. Organizational applications ( integrated project modeling, staffing curves, process acceleration)
6. The future direction of process dynamics modeling ( meta-models, distributed development, networked simulations)
Also included are three extensive appendices, including an overview of Gaussian probability theory and methods for its application to dynamics modeling, an extensive bibliography, and a listing of the models referenced in the body of the text (to be accessed after future upating).
The above functional areas are addressed in terms of their quantifiable effect on the development process, and the manner in which the process is affected by internal and external factors. Mangers are thus empowered to make better decisions, armed with more granular and measurable development metrics. Even a casual reader would find the depth of Madachy's analysis useful in any area of the development process.
In all chapters, the author presents a number of quantifiable modeling templates thus providing, for the first time, a means to simulate directly all aspects of the development process, based on the behavior of systems, as run by humans, in the real world. The author has managed to directly measure and model processes and knowledge flows in a manner which would likely be useful to any manager/developer at almost any level in a modern software development environment.
Almost every idea presented in this book is new. The author's broad inclusion of human factors, concrete examples and measurable model inputs and outputs renders this work unique in its field. Five stars.