<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d8211560\x26blogName\x3dTech+Tips,+Tricks+%26+Trivia\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLUE\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://mvark.blogspot.com/search\x26blogLocale\x3den\x26v\x3d2\x26homepageUrl\x3dhttp://mvark.blogspot.com/\x26vt\x3d601588505461698440', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

Tech Tips, Tricks & Trivia

by 'Anil' Radhakrishna
An architect's notes, experiments, discoveries and annotated bookmarks.

Search from over a hundred HOW TO articles, Tips and Tricks

Book Review - Software Estimation: Demystifying the Black Art

Software Estimation: Demystifying the Black Art by Steve McConnell is a book that meets my definition of a good technical book.

In my opinion, Estimation is an underrated subject. A lack of understanding of this topic among team members (not just the PM) can negatively impact the success of the project. This is because the Project Manager has to draw on the judgement & experience of the software development team as well. This book is written for developers, leads, testers, and managers who need to create estimates occasionally as one of their many job responsibilities. It gently guides the reader through the esoteric art of software estimation with lots of practical real-world advice.

Within the 300+ pages of the book spread across 23 chapters, the author explains 32 Estimation techniques graded according by these factors of applicability:

  1. What's estimated (Size, Effort, Schedule, Cost, Features) 
  2. Size of project (Small, Medium, Large)
  3. Development stage (Early, Middle, Late), 
  4. Whether the development style is iterative, sequential, or both 
  5. Accuracy possible (Low, Medium, High)

The well-researched content is interspersed with 118 tips, numerous facts drawn from other authoritative books on software estimation and interesting statistics. Tip #30 contains the mantra of estimation: Count if at all possible. Compute when you can't count. Use judgment alone only as a last resort. 

Tip #17 advices: Include time in your estimates for stated requirements, implied requirements, and nonfunctional requirements—that is, all requirements. Nothing can be built for free, and your estimates shouldn't imply that it can. He lists the nonfunctional requirements that also need to be taken care of -

  1. Accuracy
  2. Interoperability
  3. Modifiability
  4. Performance
  5. Portability
  6. Reliability
  7. Responsiveness
  8. Reusability
  9. Scalability
  10. Security
  11. Survivability
  12. Usability

As with his other books, the author sets clear expectations. He explicitly states where the estimation techniques mentioned in the book will not be useful -
This book is not about how to estimate the very largest projects—more than 1 million lines of code, or more than 100 staff years.
These techniques will not produce estimates that are accurate to within ±5%, but they will reduce estimation error to about 25% or less, which turns out to be about as useful as most projects need, anyway. 

He informs in the beginning that this book draws from both the art and science of software estimation, but its focus is on software estimation as an art. This book avoids deep math and emphasizes relatively simple practices. Steve McConnell plans to publish a companion volume in the future that will deal with the Science of Estimation and cover more mathematically intensive estimation approaches.

I feel this book is essential reading for anyone who is into software development & highly recommend it.


Labels: ,

Tweet this | Google+ it | Share on FB

« Home | Next »
| Next »
| Next »
| Next »
| Next »
| Next »
| Next »
| Next »
| Next »
| Next »


Post a Comment