paradigm driven development