Recent Comments

The Gorilla-Monkey style of development

153716143_5bb1520cbf 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

 

306753263_7b923bce29 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

226080156_4680770c2a

  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.

  • Good read. I have made a twitter post about this. Hope others find it as interesting as I did.
  • Hehe. I'm just seeing this post.

    Another name for gorilla is program manager (MS style)

    Another name for monkey is code monkey.
blog comments powered by Disqus