Sometimes, I ask myself the following question: “What is worse? a developer that is clueless but knows it, or a developer that is clueless and doesn’t know it”. When a developer is clueless and knows it, they will usually consume your time and energy asking questions. When a developer is clueless and doesn’t realize he is clueless, they will consume your time with various errors, bugs, mis-understandings and worse of all – arguments!
Now, don’t get me wrong, I can’t expect all developers to be geniuses or fault proof, but I do expect them to be open to criticism – and most of all – I expect them to be open to the idea that they may (and most probably are) – JUST PLAIN WRONG!
Let us imagine the following process:
Step 1: Mobile application requests authorization for a function from the remote management server
Step 2: Mobile application will request the remote management server to send an authorization SMS
Step 3: Mobile application will now validate the returned SMS with the management server
Step 4: Mobile application will now authorize the next step in line
Now, any normal developer will say: “Ok, in future I’ll simply store the authorization of steps 1 through 3 in the local device storage, the number was validated”. Now, the remote management server should be aware of the process and store a similar authorization, or at least a time based authorization for the future. Now, imagine that the developer beyond says: “No, you should do the entire thing over again !” – isn’t that stupid? Isn’t that retarted? and worse, isn’t that just plain costly?
So, we tried explaining to the developer that he’s got a mistake – the response was: “I’ve implemented according to the specification, there is no mistake!” – what a stupid answer. Specifications can change left, right and center – but the logic needs to be logical. As a TV character once said: “Interesting, but very stupid”.