>>Just like any other analogy, this one can be stretched any way we like. Take a look at this: "The engineer is building one specific bridge for generic unknown people to go over it, just like the most of our methologies are geared to developing for the generic unknown user."
>
>That is not fair! The users of the bridge are not the clients of the bridge and the functionality of the bridge is very similar for each user, namely passing over it. Their design depends on the environment not on the what the user can potentially do on it.
>
>We on the contrary are told to write programs in such a way that users can use them different ways for different functionalities. And lately from what I hear the focus is on building blocks that can be reused, replicated and integrated. Small wonder why our track record is so pour. Can you imagine bridges constructed by using large mass produced components? Time to learn to swim. :)
But, Marc, it's not just an ordinary bridge - it's a M$ Bridge. You can walk over it, click around, drive your bike over it, boot it ten times a day, drive your mouse zig-zag over it and finally jump off from it - you were right about swimming :)