<< Cartoon | Home | Code Ants >>

Ant Farm

At the weekend, I was in the park playing with my son and he was intrigued by the beetles and ants. So we popped home, picked up some tupperware and a spoon and went back to get some ants to have our very own ant farm! They are in a tupperware container within a bath, so that if they do climb over the edge they won't be able to escape and scare my wife out of the house. See below for what it looks like.

Anyway, its a bit like a fish tank in that its very relaxing to watch them building and feeding, etc. As I was watching them pulling a pupa from where I had tossed it out of the original tupperware container into their new home, it got me thinking. They can't see the bigger picture, yet they make a good job in getting there in the end...

For example, they were pulling at this poor thing to try and get it over a blade of grass, but couldn't. So they went left, the long way round. They should have gone right! But there was no one there to guide them along the way. In the end however, they got to where they were going. Now, having turned left, I can't say that they didn't change their plans and continue going that way, because at this stage, there was no established ant hill, so they were just looking to see where everyone else was going I guess. I don't know enough about entomological sociology to understand these simple creatures! But this morning, sure enough, there was an ant hill, and all the pupae were gone, I assume underground. So even though they had no architect, no project manager, they got there in the end, through what seems to be chaos.

I can only imagine that they did this because ants follow a small number of rules. From what I do know, they put pheromones on the ground using their tails and depending upon which pheromone, it has a different meaning. Good examples are the 'alert' pheromone - attack a nest, and you will soon see there are hundreds of ants running around. That is because the ants you attack lay this special pheromone which attracts all the others. Its not brilliant, because they don't seem to know when to retreat. Anyway, yes, back to the plot, they only have simple rules. Things like:

  1. if you find food, take it back to the nest. if its too big, lay a trail of 'food' phermone on the way back so the others can find it!
  2. if you come across a pupae, check the temperature is good, then move it if required. Check its got enough food, if not, give it some from your second stomach
  3. if attacked, lay 'alert' phermone to get help!
  4. if your'e tired, go rest, if you've put in your hours for the day
  5. you are a small part working for the good of the greater whole

Also, they have distinct roles. Some look after the pupae, some forage for food, some guard the nest, some attend to the queen (they will have quite a boring time in their new home, as we didn't catch any queens). So I am wondering, if you took a set of software developers and gave them some simple rules on how to get the job done, whether they could do it without the project management and the architect? Let's hypothesise:

  1. Use standard design patterns
  2. Follow coding standards
  3. When the whole thing screws up, scream and shout for help from everyone else
  4. Go home at the end of the day and sleep - no overtime, nor any coding at home!
  5. you are a small part working for the good of the greater whole - your'e in a team, so use that team to help you to help the entire project become successful

OK - some of these rules need an architect at the start, for example to define the patterns. But once they are defined, you could implant them into the developers DNA so that the architect isn't needed any more.

In theory, if you have a good set of experienced developers, strong regression testing built as part of the project to allow lots of refactoring and some requirements which are CLEAR and written SIMPLY, then you should be successful as the ants.

I've discussed this before and in my opinion, success is a combination of staying within budget (in terms of time and/or cost), meeting quality requirements and meeting functionality requirements. Ants have successful projects in terms of meeting their functionality requirements. The quality is sometimes lacking, for example when a tunnel collapses, but there is generally no loss of life, and the repairs are quickly done, albeit at additional cost. And the time/cost doesn't appear to be an issue, so long as there is plenty of food and water. And lets face it, what else would ants do...

Perhaps these other attributes of success (cost, time and quality) make it impossible to compare ants to software developers? Then again, perhaps what ants do is so simple that it cannot be compared to software systems in the enterprise anyway?!

Still, if you have some spare money and want to potentially throw it away (like most large companies who have software it would seem), then get in touch and we can put together a project and run it like an ant farm...

Social Bookmarks :  Add this post to Slashdot    Add this post to Digg    Add this post to Reddit    Add this post to Delicious    Add this post to Stumble it    Add this post to Google    Add this post to Technorati    Add this post to Bloglines    Add this post to Facebook    Add this post to Furl    Add this post to Windows Live    Add this post to Yahoo!



Add a comment Send a TrackBack