Documentation driven development