According to an old legend, King Shirham of India wanted to reward his grand vizer
Sissa Ben Dahir for inventing and presenting to him the game of chess. The desires
of the clever vizier seemed very modest. "Majesty", he said kneeling in front of the
king, "give me a grain of wheat to put on the first square of this chessboard, and
two grains to put on the second square, and four grains to put on the third, and eight
grains to put on the fourth. And so, oh King, doubling the number for each succeeding
square, give me enough grains to cover all 64 squares of the board."
"You do not ask for much, oh my faithful servant," exclaimed the king, silently enjoying
the thought that his liberal proposal of a gift to the inventor of the miraculous
game would not cost him much of his treasure. "Your wish will certainly be granted".
And he ordered a bag of wheat to be brought to the throne. But when the counting began,
with 1 grain for the first square, 2 for the second, 4 for the third and so forth,
the bag was emptied before the twentieth square was accounted for. Many bags of wheat
were brought before the king but the number of grains needed for each succeeding square
increased so rapidly that it soon became clear that with all the crop of India the
king cold not fulfill his promise to Sisa Ben. To do so would have required 18,446,744,073,709,551,615
grains, an equivalent of worldâs wheat production for the period of some two thousand
years!
There is a parallel to an IT architecture problem of the 21st century â business process
integration. Throughout the past two decades, enterprises spent time in creating silos
of internet applications. Now enterprises are faced with not only needing to create
new applications but also face the daunting task of integrating the existing ones.
Every time you invest in creating an IT application, it is very likely that the application
needs to be integrated with the existing and new applications. If there are 200 existing
applications in an enterprise then the number of possible connections among the 200
applications is n(n-1) i.e. 200*(200-1) = 39800 two way connections. Obviously the
end result is not a pretty picture.
Lesson: Every time you add a new application to your enterprise portfolio,
think of the n(n-1) scenario; sooner or later it can assume monstrous proportions
and bite you!