secrets of successful program design