It wasn't that Graham's company lost an employee, it's that they gained a consultant. As an employee, this person excelled at many things, naming functions not the least of these.

As Graham recalls: he was a funny guy - had a real thing about women's names, and always used them for function calls whenever possible. Here's an example which ... stuck in my mind because of that sole bug report comment(!) in the middle.

  int Trisha( int x )
      int y;
      y = TrishaBegin( x );

      while ( ! TrishaDone( x, y ) )
          y = Sally(x,y);
          y = Cassie(x,y);
          y = Denise(x,y);
          // must call Sally again due to head bug [#5518-932]
          y = Sally(x,y);
          y = Anna(x,y);
          y = Beth(x,y);

      return TrishaEnd( y );


What does this function actually do? Which of Sally's magical powers counters the mighty Head Bug? Personally, I believe that the answers are written in a consultant's little black book. Graham believes that there are no answers.

What Graham does know is that right after Version 1.0 was released, the developer resigned and was rehired as a consultant for the next major release. At three times his previous rate, he should be able to meet many more women. (He was beginning to run out of function names.)