Те же самые, как и при разработке любого другого ПО: планирование, декомпозиция, модульность, документация, а так же фокусировка на достижении приоритетных целей. Определитесь сначала с проблемами, которые вы хотите решить с помощью данного фреймворка и уже от этого отталкивайтесь. Описываете проблему, ограничения, требования - далее ищите возможные решения, выбираете оптимальное и проектируете уже более конкретно. Постановка задачи -> техническое задание -> частное техническое задание -> проект -> декомпозированный и проработанный проект -> реализация. Примерно так.