— 16 May 2003 —
Three days of UI spec walkthroughs. Well, not three full days, but enough screens that it was best to split the meetings over three days. Very draining. Made it through the first 2/3 of the app with good results. Only a few changes, and all are steps in the right direction. The last 1/3 was atrocious. Turns out there is functionality missing. Why, this never happens on any other project… Oh wait, it does.
This is what cracks me up about designing software. Companies have methodologies comming out of their ass, and yet for all the rigor, business requirements still get “discovered” late in the design phase.
This is the down side of not knowing the domain for which I design. (I think there are more upsides, but the few downsides are big.) I can look at the requirements, probe on issues for which I have questions, but I am still limited to what the business analyst defines. In this case, the issues are confusing to everyone, including the subject matter experts.
Increasingly, I am becoming part business analyst (BA), part developer. I many ways I have to know more than the BA so I can come to an understanding of what the users will and will not know. This will drive much of my design decisions. I also have to be part developer because when I hear, “We can’t do that,” I need to understand if it is can’t, won’t, or don’t know how.
I just seems that companies focus so much time, money, and effort (I guess I could have just said money) on development and testing. But everything leads back to definable, testable business requirements. BAs may know the job, but they don’t seem to know the business. And most do not know how to write. I usually get on a project after the scope has been defined, and often after use cases (another poorly implemented exercise) and some business requirements are defined. But that is usually too late. And when I get on that project, the first thing out of the project managers mouth is, “I need hours and timelines from you.” How do you figure this out when scope is so shapeless, and requirements are not defined? Blanket statement: 500 hours.
When Alan Cooper spoke at UPA in 2001 he said, “Good software takes two years to develop.” I agreed with him then (though on most of his other nuggets I said either “Duh,” or “Um, no?”) and I agree more with him now.
I know there are a couple of issues in this post. What do you do in situations like these?