Two Analysis Schools
Over the years, I have seen two distinct analysis schools of thought. There is the ‘let’s get this over with so we can start doing the real work’ school and the ‘let’s work through the tough problems now so that our implementation is straightforward’ school. There appears to be a gradual migration from the first to the second in the industry, but the first continues to be fueled by a lack of appreciation for the value of effective analysis in the educational system. Read more
Quality Spike
I was working through a requirements session with an IT team from a large global company this week, and several times the topic of agility came up. There are as many perceptions of where analysis practices fit within the ill-defined boundaries of agile practices, which always makes for interesting discussion. One of the areas where this occurred is the analysis of the quality requirements for a system, which led me to consider the notion of a quality spike. Read more
Get Your Ears On
As we gain more experience and expertise in our selected domains, there becomes a stronger tendency to lean primarily on that knowledge to solve problems. Sometimes this works, but sometimes we tend to lean too far in that direction and forget that we should be listening before we start solving. There are times when we need to remind ourselves to get our ears on. Read more
In Search of Excellent Requirements
“I’ll go find out what they want, and the rest of you start coding.” This caption from a cartoon is uncomfortably close to the way some software organizations still treat the requirements specification process. Contemporary definitions of “quality” include the concepts of both meeting stated specifications and satisfying the actual customer requirements, which sadly are not always the same thing. Converging these two components into a unified vision of the final product is the linchpin of successful software development. Read more
Go With Your Strength
I see many companies that start out with a compelling idea for solving a nasty business problem, but somewhere along the way their implementation gets a lot fuzzier. In more than a few situations, we are best served if we remember to go with our strength. Read more
What To Do…
Once in a great while, I find myself in a position where I wonder what to do next. This is rare, of course, as usually there are more than enough things to keep me occupied. With technology companies, it is almost always the case that there is way too much to do, and even worse, it is almost always someone else that seems to be calling the shots. From what I have seen, there is a better way. Read more
What's In a Name?
One of the products I offer that has been in most demand is software requirements training. A great course to deliver, with lots of information about the things that you could do (if the situation warranted) in software projects. Certainly not dogmatic or pitching a particular approach, one of the key messages is to consider your product, culture and environment, and choose accordingly. Over the years, though, I would sometimes get some pushback along the lines of “we do hardware (or firmware, or drivers…), this isn’t relevant for us”. I disagree. Read more
Birthing the Spec
It’s a scenario that gets played over and over again in software shops: the person designated as the analyst for a project, sometimes the CTO, sometimes also the project manager, heads into the birthing hut at the start of the project, and doesn’t come out until the spec is born. This analogy hurts in so many ways. Read more
Repairing the Fixed Price Model
I’ve been working with a colleague recently, and it has been interesting to see how his company can work with clients to build software applications under the fixed price model. While it is generally the case that outsourcing is quoted on an hourly basis (because of what is seen as inherent risks in the software industry), this group is one of the few that can make a fixed price work. Read more
A Matter of Perspective
I was recently working with a client that develops and deploys large-scale, complex solutions. Their product consists of custom and COTS hardware, embedded software, networks, and server-side installations. Read more


