Take a pack of cards, shuffle them well, and place them on
the desk in front of you. Could you accurately tell me what the order of the cards
would be, without looking?
Now spend 2 weeks in a software development team, writing
code & using services, and deploy that code to your cloud server
environments.
Could you tell me where the bugs would be, before looking?
In both cases we have a rough idea of what’s in the product at
the end. But the detail, how its actually going to play out? we have no
realistic idea.
Skeptical?
Take the playing cards…
If we lay the cards out one card at a time. Then the order
in which they are laid out, has probably never been seen before. Ever.The number of permutations of the well-known 52 playing card
pack is 80,658,175,170,943,878,571,660,636,856,403,766,975,289,505,440,883,277,824,000,000,000,000.
OK, now let’s get back to our code.
Even trivial apps, include dozens of code libraries, and are
built on a myriad of operating systems calls. These in-turn process a huge
number of potential inputs, and distribute them across an complicated series of
devices each with own their configurations etc. You get the picture. There are
many combinations of code, inputs and tools involved.
So, as with the playing cards, we might know at a high level
what is coming... But we won't know for sure until we play it out.
If we play the cards out, one by one, we learn about their
ordering. We know what 'works', and can better judge the nature of the
unseen cards.
Remember that, next time someone asks you to write your tests
before the app is developed.
Comments
Post a Comment