![]() |
|
An e-newsletter published by |
February 2007, Vol. 4 No. 2 |
| Welcome to Food for Thought™, an e-newsletter from Software Quality Consulting. I've created free subscriptions for my valued business contacts. If you find this newsletter informative, I encourage you to continue reading. Feel free to pass this newsletter along to colleagues by clicking this Forward Email link. If you’ve received this newsletter from a colleague and would like to subscribe, please click this Enter New Subscription link. If you don't wish to receive this newsletter, click the SafeUnSubscribe™ link at the bottom of this newsletter, and you won’t be bothered again. Your continued feedback on this newsletter is most welcome. Please send your comments and suggestions to info@swqual.com. |
In This Months’ Topic,
I discuss what we can learn from sports legend Yogi Berra…
|
|
Déjà vu All Over Again
|
|||||||||||||||||||||||||||||
|
“It's déjà vu all over again.” Have you ever worked on a project that was released late, was far too buggy, and had key features dropped at the last minute? Has this happened to you more than once? Do you get the feeling that you’ve been down this road many times? At some companies, after one of these late, buggy software projects is eventually released they hold some kind of a post-mortem. Usually, the post-mortem is held with little or no preparation and is led by someone with really poor meeting facilitation skills. Pretty soon, the discussion quickly turns into a gripe session where fingers are pointed and blame is laid. Amidst all the blame and finger-pointing there may be some good suggestions for things to improve for the next project. More often than not, however, these suggestions fall on deaf ears. And we wind up using the same process that led to failure again and again. And each time when the results are the same, management is surprised, concerned, even outraged. Well, there is a better way… “You can observe a lot by watching.” Yes you can Yogi. I’ve observed many projects at many organizations. What I have seen is that one of the most difficult challenges software development companies face is their inability to accurately estimate and schedule software projects. Inaccurate estimates lead to bad schedules. A bad schedule leads to poor quality, frustrated employees and dissatisfied customers. Maybe if we finally admit that we need to learn how to estimate accurately, we can break this cycle… Steve McConnell [1] observed:
People who are responsible for creating project schedules often have had little or no training in estimating and scheduling techniques. As a result, the estimates and schedules these people create are not accurate. How could they be? Once again, there is a better way…
|
|||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||
|
“When you come to a fork in the road, take it.” Forks in the road… It seems that managing a software project is a little like trying to find your way to a destination in a place that seems at once both familiar and strange. The journey is fraught with obstacles, potholes, and forks in the road. The decision about which fork to take is often made by default, without the project team even realizing that a decision was made or what the ramifications are.
Here’s one decision a project team can make that will help the project be successful:
Here’s another way of thinking about the process of estimating and scheduling…
Requirements are used to develop good estimates by people who will actually be doing the work. These estimates are then used together with resources and dependencies to build good schedules. This is an iterative process and takes into account project assumptions. Based on this information, there will always be differences or gaps between the schedule and the targets that the business would like to hit, as well as potential commitments made to customers. This is where good project management skills can make a difference – by negotiating changes to targets and commitments, the project team can greatly increase the likelihood of success – which is defined as delivering a high quality product with promised features in the promised timeframe. Remember, estimates arenot negotiable. Everything else is… Taking this fork in the road will definitely result in a more pleasant journey. “If the world were perfect, it wouldn't be.” If only we could decide which features to include in a release – all of our problems would be solved, right? No, we’d certainly have other problems to deal with. The way we decide which features to include in a release is something we can certainly do better. The age-old dilemma software companies are often faced with can be summed up by this conversation between Marketing and Development:
Fortunately, there is a relatively simple solution to this dilemma and it’s called… |
|||||||||||||||||||||||||||||
|
T-Shirt Sizing Steve McConnell [1] has a very simple technique that can help resolve this impasse. Developers and testers estimate the work to develop and test each feature as Small, Medium, Large, or X-Large – like t-shirt sizes. The effort is relative. At the same time, Marketing gauges each feature’s business value using the same scale. When all groups are done, we combine the information into a table like this…
It now becomes easier for Development, QA, and Marketing to have an intelligent and factual conversation (wouldn’t that be interesting?) about what features to work on. Which feature in the table above is the one to work on? “It ain't over 'til it's over.” Testing is a process that is wrought with uncertainty. Testers have no way of knowing how many defects their tests will find. Clearly the defects found will be a direct result of the specific tests developed by testers. As a result, it is often very difficult to accurately predict when testing will be done. One thing is for sure – as Yogi said, testing ain’t over ‘till it’s over. What does that mean? Well it means that you need to have clearly defined and measurable criteria that indicates when testing is done. For example:
The specific criteria for testing being done should be identified early on in the project and agreed to by all stakeholders. Summary I’ll end with these final points:
If you always do what you’ve always done, A remembrance… Doug Ross, one of the pioneers of the software engineering profession, recently passed away. Doug developed several programming languages and is probably best known for his Structured Analysis and Design Technique (SADT) also known as IDEF0. SADT was one of the first techniques for modeling complex systems. Doug was the founder of SofTech, Inc. a software engineering technology company. During the 1970s and 80s, his company was actively involved in developing compilers and in providing independent verification and validation services. I had the privilege of working for SofTech for several years during this time and remember him as an inspirational leader who was incredibly bright. |
Every month in this space you’ll find additional information related to this month’s topic.
|
Every month you’ll find news here about local and national events that are of interest to the software community…
|
Software Quality Consulting provides consulting, training, and auditing services tailored to meet the specific needs of clients. We help clients fine-tune their software development processes and improve the quality of their software products. The overall goal is to help clients achieve Predictable Software Development™ – so that organizations can consistently deliver quality software with promised features in the promised timeframe. To learn more about how we can help your organization, visit our web site or send us an email. |
I hope this newsletter has been informative and helpful. Your comments and feedback are most welcome. Send me your feedback… Thanks, |