> "people can process data and reason through complex problems differently"
This was in the context of hiring, and I gave my operational definition - how does one apply 'diversity of thought' to the hiring process?
> "Here is a complex problem that can be solved in more than one way - show your work."
Presenting a solution, or an attempt at a solution, is an expression of one's thoughts.
> "diversity of thought is very useful"
How do you apply it to the hiring process? How does the proposed method (skills testing) result in improved diversity of thought?
I'll be more concrete with two examples. Example 1: Suppose there are only three schools which teach COBOL programming, and you are a bank which is looking to hire junior COBOL programmers. Do you design your test for COBOL competency, which will result in preferential selection from those small number of schools and hence reduce the diversity of thought? Or do you hire for more general diversity of thought and expect more overhead to train people in COBOL?
Example 2. Suppose you put the applicant on an Ubuntu box and ask them to write a sort program in C++ which takes two command-line arguments. The first is an input file name containing set of lines (ending with a '\n'), the second is the output file name containing the input lines but sorted by byte value.
Of those that pass the test, 50 do the 'standard' vector with a sort from the standard library, but only 10 do I/O failure checking, and 1 of the 50 decides to make the parent directories if the filename's directory doesn't already exist.
But wait, another 40 treat C++ as C, and use stdio along with a resizing array of char * . Of those, 30 use qsort, 8 implement quicksort, and 2 use bubble sort.
(Oh, and one person who didn't finish was 90% of the way through implementing a Timsort.)
That's a diversity of thought. Do you give preference to them for thinking about the problem in a different way?
But wait, another 7 think about it a bit, realize that 'sort' is on the Ubuntu box, and construct system("sort filename1 -o filename2").
That's surely thinking outside the box, so should be encouraged in the name of diversity of thought, yes?
Except another 2 think about it further, realize that the filenames may contain spaces or shell metacharacters, so construct the exec call directly. Security thinking is hard to train, so they should have preference, yes?
And finally, the last one writes a C++ program which uses the Python C API to pass in a Python program as a string.
Surely that's even more diverse thinking - and completely within the test protocol as given.
Now to reverse the direction. I know all of these solutions. If I were given the task and I know that the employee wants to hire for "diversity of thought". Which implementation should I do to improve my chances of being hired?
That is, should I do something which I know is less maintainable simply because I know it's more obscure and thus shows my diversity of thought?