length matters.Michael P. was feeling pretty tense – and really, who could blame him?

Today was no ordinary day. He was in the hot seat, presenting to the Software Advisory Committee - a multi-disciplinary group responsible for rubber stamping any and all new production application installations at MegaBank.

Much like being presented before a village's Council of Elders, if he received their blessing, he would no longer be considered among the ranks of MegaBank’s junior developers. Instead he would be shoulder-to-shoulder with the man developers in the company.

His word would have weight. People would come to him for advice, but all this could be demolished if he did not gain the thumbs up of the Committee who was headed up by Michael’s manager, Greg.

"Why can't we give the user their password in the e-mail?" Greg asked, in the same tone of voice you might expect if someone had told you they couldn't eat their soup because the spoon was upside down.

"I go on websites all the time and they always tell me my password when I forget it!"

For a moment, Michael thought about asking "which websites?". He also considered burying his face into his palms, or perhaps bang his forehead against the desk repeatedly - anything to get the stupid the development manager was spouting out of his mouth.

However, if Michael had even the remotest of hopes in getting his first new application installed, he was going to have to play this one cool.

Life at MegaBank is not without its shortage of WTFs: there is a global variable used in three different ways (depending on what part of the code is running) within the same module, one method is called by sending the sequence of keyboard presses that select and then press a button, and then of course there are the never-ending chains of if-statements nested so deeply you'd need a grappling hook to climb out.

However, none of these could touch the WTFness of the Software Advisory Committee meetings. To fully grasp what this is like, imagine you have two bosses who work in alternating schedules, and each despises the decisions that the other makes. Now imagine those two bosses are the same person – this was the committee of Greg.

In these meetings, Greg would incredulously ask why the developers would dare even suggesting that they may try to implement the features he had told them to implement several weeks ago, and Michael’s session with the committee wasn’t going much better.

“The only thing that sending a user a gobbledygook URL instead their actual password accomplishes is proves that we are a company of sloppy and inexperienced coders. In the end, you’ll be turning customers away from us balking at our utter lack of professionalism!” Greg explained.

Michael tried to make a case by saying that the email that went out did not show a full URL but rather it wassafely behind a link labeled “Click Here”  Also, the process of picking out a new password was actually quite friendly. However, there was no chance to begin reasoning.

Greg lowered the brim of his glasses further down his nose for emphasis. “The standard way of recovering passwords is to send a user their password, not to hide it behind a link! Here, let me show you how Google does things – pay attention and please, keep an open mind.”

While Greg surfed onto Gmail to go about resetting his password, Michael could barely watch – the embarrassment was too great. He thought that he had considered every angle and that he here he was going to be proved out to be a fool. However, he was saved at that last minute.

In the email that Greg had received, Gmail sent a link enabling him to set a new password.