1. Максимально простым (никаких искусственных усложнений на пустом месте)
2. Понятным и "чистым"
3. Легко изменяемым (ввод нового функционала, без разрушения старого кода и использования костылей)
Юзать ООП и строить архитектуру перед написанием кода А что бы не усложнять используй stl/boost ну и библиотеки для некоторых задач И БОЛЬШЕ независимых модулей!!!!