We all can use more ways to achieve project success or at least increase its likelihood. Of course, there are many steps we can take in this effort. However, few provide the impact of setting expectations and managing them throughout the process. Here are some ways to help you do precisely that in your next project.
Concrete Over Vision
The most significant variance in expectations in my experience comes down to vision. The end product you envision is not what your customer sees. Since both of these visions are in someone’s head, we need to get those out and compare notes. Guessing and assumptions are prime culprits in expectations that are out of sync.
This is why prototypes, wireframes, and user stories are so important in project success. These tools give us a way to put down on paper the vision in our heads and resolve any differences. It can seem redundant to write down something all parties appear to agree on, but that does help avoid assumptions and other communication issues. I have found that we do not always have the clarification of communication that we think we do. Putting thought into concrete form helps to alleviate that weakness.
The Devil in the Details
I once heard it suggested that software architects get in the habit of asking “and then what?” This is an excellent approach to drilling down to the required level of detail for setting expectations. The step to put our vision in a concrete form can lead us to think we have more detail than we do. I have come across far too many customers that point to a page or application and say that is what they want. However, as we dig into that example, we find that there are features they want that are not on the screen or assumptions made that are not stated.
An example of this sort of error is easily seen in the assumptions about how a page works. There will be menu items and other controls that imply action. When the result is not adequately shown and defined, then it can lead to mismatched expectations. The “make it look like this” is a good start. However, it is only a start. This starting point needs to be followed up with questions to clarify how every piece of the screen works. This includes menu items, buttons, tab orders, notifications, validations, and more. A picture is worth a thousand words and may also hide a thousand function points.
The third item we need to address is potential drift from our starting point. A well thought out and thorough design up front can help us set and maintain expectations. Nevertheless, there are surprises and holes that become apparent in any implementation that can impact that initial design. These bumps can cause drift and even derail the direction that implementation is headed in.
This problem is easily solved with regular meetings and updates. Progress and bumps are addressed in each session along with discussions of variance from the original design. The end product of this process is that expectations are “tweaked” along the way in concert with design adjustments. Although there are other reasons to take this approach, I think managing expectations provides the most substantial payoff.
There are thousands (or more) variables that go into project success. Fortunately, a lot of what determines that success is how the solution is perceived. Therefore, the better we are at setting and managing expectations the more likely our odds of success.