Extreme Programming of Multi-Agent Systems