Constraint Driven Development