instruction driven development