Dealing with the world (2) - The imperfect world
…Continued from Dealing with the world (0) - The problem,
As being one of the “two people”, I would need to first assure people that I didn’t sneak into the current position because of the Test Suites back then was different than the current. I had the exact same problem but figured out the work around in less than 10 minutes. It’s not really a “work around” that people usually use to cheat. It’s more about guessing/analyzing what the judges really wanted when there are inconsistencies between the document and the judging test cases.
“I will implement whatever you need me to implement precisely regardless whether you told me wrong”
What does “flawless” really mean?
It’s not necessarily wrong with an ambitious and strong statement like this, but a lot of considerations must have been taken into account to make such statements. If we can assume the local tests are correct, then his code can be in fact “flawless”. Unfortunately, the local tests is not a reliable source either. When an assumption is false, you cannot get any reliable information out of it, for any implication derived from it is true.
In this competition, there are four ways to get information on a problem: the specification document, the local test suites if provided, the test suites on server, and the support forum. Out of the four, only the latter two can be considered reliable and official. In this respect, the program is not really flawless since the “truth” here is the online test cases. Even though the they may contain errors themselves, they are the ultimate tests against which competitors programs will be checked. So being adaptive to them should be the goal. Moreover, competitors should not feel uncomfortable with these inconsistencies either because the point is more about meeting the requirements, not criticizing how the problems are loosely specified. The oath shall be “I will implement whatever you need me to implement precisely regardless whether you told me wrong”.
In fact, these kind of inconsistencies are more than just common in the real world production environment. When many people work as a group, lots of tiny flaws can occur, leading to misunderstandings among the members. Therefore people should be able to calibrate information received from others in order to damp the error accumulation, especially when supervision is not always available. It’s impossible to have a 100% accurate specification bearing none unclear/vague/ambiguous descriptions, and if a development team insists to wait for a 100% accurate specification to start, it’s going to take forever.
The world is never perfect, yet human race still evolves, because perfection is not a necessary factor. Now think in the other way, if we’ve reached perfection, there will be nothing else we can work on - and that’s probably the end of the universe.
» Posted in category: kunalu thoughts, work ethics //
This is the bottom of post Dealing with the world (2) - The imperfect world


