In 2001 we proposed flying experimental software onboard an Air Force satellite constellation of three (3) spacecraft: Techsat-21. Three years later, in 2004, we were instead flying software onboard NASA's Earth Observing One (EO-1) mission as the primary operations path. This software documented over 10x increase in science return for the mission and a > $1M/yr in cost reductions. Seven years later, in 2008, we have flown advanced AI software on 5 spacecraft: including the Mars Exploration Rovers Spirit and Opportunity on the surface of Mars; and have linked together scores of Earth Observing assets in a space, air, in-situ sensorweb using AI software. How did this all happen? What worked? What didn't work? If we were to do it all over again what would we do differently? In this talk I'll cover a range of topics. First, I'll discuss why flying software (not to mention software that actually makes decisions!) on spacecraft is hard. Next I'll discuss some of the interesting challenges and experiences we faced on EO-1. Finally, I'll talk about current efforts to link together scores of assets autonomously using the internet to develop an Earth Observing Sensorweb.