The Gorilla-Monkey style of development
Sometimes when programming, it would be great if one did not have to do two tasks:
- Research APIs or Information
- Write short functions with clearly defined outputs and inputs
If one has a team, then occasionally, this gorilla-monkey style of development can lead to very fast results. How it works is this:
Step 1
The gorilla coder plans and designs his program using whatever modelling tool he is comfortable with. Then all monkeys come together and sit with the gorilla at a table. He starts programming, almost like he is doing pseudo code, for example:
void init()
createListView();
createPanels();
loadSettingsFromRegistry();
After writing the functions he immediately delegates the actual writing of the function to each of the codemonkeys. They start writing, and their job is to provide the result between 10-30 minutes. If anything takes longer than that, then it should not have been delegated in the first place. If it was, then the first monkey that is finished goes to help the slow monkey.
Step 2
When the gorilla stops writing code, he assigns research projects to each monkey and starts designing the next enclosed unit. For example he may say:
Monkey 1 - Find out how to download a file using TCP/IP sockets
Monkey 2 - Find me a good SSL library
When the gorilla is not working, no monkey works. They are not independent programmers, they just function as extensions of the gorilla. A bit like helper threads.
