Text this: Abstraction and specification in program development