Today is the Saturday, the day where everybody in Germany goes shopping for the next week.
In my family, we use to buy things either in a discounter, which has a small assortment, various and unstable levels of quality, but low prices; or in a huge store with a great assortment, stable quality, but also somewhat higher level of prices.
When we go shopping, we aim to spend as little money and as little time as possible. Besides that, we want to shorten our ways to save expensive fuel and also do something against the climate warming. These are our business goals. Now, how exactly are we going to drive?
One possibility would be to drive to the discounter first, buy everything we can find there from our shopping list, then drive to the huge store and buy the rest. Another possibility would be to go to the huge store first, buy everything but things we know are normally present in the discounter, and then drive to the discounter and buy the rest.
We’ve just conceived two technical visions – tactical plans helping to achieve our business goals. Each of them has its own advantages and disadvantages. Driving first to discounter seems to be the least risky one, because if we won’t find something there, we can buy it for sure in the huge store – a little bit more expensive, but who cares then. Driving first to the huge store may have its own merits. For example, if we’re going to buy ice cream in the discounter, it is not a good idea to drive to the huge store afterwards and leave the ice cream for one hour in the car under the sun.
You cannot say apriori what technical vision is better. It depends on what are you going to buy where, what are your priorities, and what trade-offs you can make with what results (is having ice cream not melted down more important than saving some fuel?). In my family, there are several stakeholders, so choosing the way to go can be a political issue too.
But, interestingly enough, there can be a technical vision, which is clearly worse than others. Often, it is a result of a compromise, when you get incompatible parts of different visions, throw them together and try to mix them. For example, driving first to the huge store, buying everything but ice cream, then driving to the discounter, discovering that the ice cream has been sold out there, AND THEN driving back to the huge store to buy ice cream – this would clearly violate our business goals.
When a technical vision gets executed, unexpected or forgotten factors can change its quality – to the better or to the worse. As you cannot execute two visions at once, mostly it is hard to say, whether you would be better off by choosing another tactic. So deciding what vision we’re going to implement is more question of intuition and personal (subjective) preferences than logic and hard facts.
Also in software development, sometimes it is pointless to argue that a technical vision using Silverlight is better than a vision not using Silverlight. When both technical visions can satisfy business goals, the technical vision of the person who is going to execute it in the project should be preferred. What we can say for sure, though, is that a vision to make both a Silverlight and a non-Silverlight version is a suboptimal one, because, just like in my shopping example, it combines disadvantages of both original visions.
I would even allow me a stronger statement.
Visions created as combination of other visions, combine both advantages and disadvantages. Combined disadvantages tend to be much worse together than alone, and combined advantages tend to be less better (or even irrelevant) than alone.