Odd idea that popped out of a conversation yesterday. What if the trend towards test driven development and behavior driven development is a harbinger of the apocalypse? Automated testing could be a first step toward machine self-awareness if it were married with self-modifying code. Genetic algoritms could optimize themselves towards the specified tests and behavior, but what happens when the self-modifying code creeps into the tests (which are, after all, just more code)?
I think you get an increasing rate of accelerated change leading to Skynet launching the nukes in 2012, just in time for the Mayan calendar to be right about the end of the world.