As no-one spoke up yesterday, I’ll assume everyone has accepted the notion that all software runs in a virtual universe, free from the laws of physics. That’s why we don’t need to run software developments like an engineering project. They are not subject to all of the constraints that make engineering hard. We can ‘build the roof first’ and worry about ‘how strong the foundations need to be’ later, when we understand more about the model we have built of our incomplete idea. Like this blog post, Agile products are almost free-floating in a world of our invention, until they need to communicate with people. We are stuck here, interacting with this parallel universe, using our big, heavy ape arms and clumsy interfaces. We drag behind them like tired children.
Did you see the original ‘Tron’ film? Do you remember how the programmers’ personalities were represented by the programs? That was a true story. Programs can be gentle, kind, beautiful but shallow, or bullying ego-maniacs, just like their creators. They can appear to have a certain character while actually being something else entirely. Software reflects aspects of the personalities of it’s creators, as expressed within their self-imposed cultural boundaries.
I think most people reading this will accept that evolution theory is most likely true and that genes carry the necessary code to make new life. I want to propose my own hypothesis. I don’t know if I’ve re-invented an old idea so please tell me if you’ve heard of it before. I think that every form of life has its own culture and that DNA and culture have evolved together in a symbiotic relationships, like a third interlocked spiral. The main difference is the speed at which the invisible cultural strand can change. We may still have the emotional responses of cave dwellers due to our DNA but we can change our political and religious opinions in a day. Every system that survives, protects itself, so we have evolved early-adopters, fashion-victims, people who want to fit in and reactionaries, to quality-check dangerous ideas. As a species we resists change, because change has proved to be really dangerous. At the same time, we constantly strive to try something new because that has been proved to give evolutionary advantage, if you don’t die trying. The variation in the attitude of humans is one of our evolutionary advantages. The two are kept in balance by death of the over adventurous and economic failure of the over-cautious.
“Where’s he going with this?”, you may ask. Well: just as Richard Dawkins put forward the idea that we are carriers of our selfish genes, I’m in turn proposing the idea that selfish us and our selfish genes are carriers of our cultures and that if we can project human culture into software, we can free it, and ourselves from the rules of physics and the constraints of limited resources and thereby, finally, from the drive to be selfish.