The first subsystem, Morrison, has developed far enough so that it has reached its alpha stage. Thank you Lucho! It took twice as much time (as it is always the rule in software development, right?), but we are all very happy with the results. The only bad thing is that we cannot see it working yet. The reason? Morrison, being the subsystem in charge of managing email messages, can only be put to action when other subsystems actually use it. It is up to Henry now to play with it as part of his development work in the Hendrrix subsystem (the one in charge of account management).
On my side, I just finished working on the most challenging requirement-documentation for a piece of software that I have ever done: The Mozarrt Subsystem. I cannot tell you just yet what is this subsystem about, but I can assure the challenge didn’t reside on how innovative or complex it is. As a matter of fact, Mozarrt is probably just a set of functionalities that you may have seen in many other websites already. So, why did it end up being such a challenge? I was only able to reach the level of abstraction (or generalization if you prefer) that was required after several trials. I had to write and rewrite the use cases of this system three times before I was happy with the results. It took me almost two weeks to end up with just nine use cases and a few dozen documents containing interface requirements. Probably the task wasn’t the challenge. I was the challenged one!
The lessons: First: Never allow your brain to feel cozy when the first use case you write for a major system ends up being a blue-level use case (also know as sea-level). It has got to be white (cloud level)! Second: It is not a good idea to allow a use case to “run” specific steps from another use case. A use case should incorporate other use cases in full, but not just part of them.
Alex



