This is my story of BRP/P, its users, and some tools that helped to make it less painful. The lessons are clear: the importance of interactivity and the iterative work it enables, the separation of data and its representation, the freedom to get it wrong first if you want to get it right eventually, and the importance of interfaces. Secondary lessons include our ability to improve the efficiency and happiness (!) of all involved through software, and the importance of having many tools in one’s toolbox.
I highly recommend The Art of Unix Programming, by Eric Raymond (esr) for lots of good insights into the nature of development environments and software design. Programming Pearls and "More Programming Pearls, both by Jon Bentley, contain many nuggets of wisdom, which might stimulate further thought. Finally, in a very different style, but nevertheless very valuable and interesting in this context is Facts and Fallacies of Software Engineering, by Robert L. Glass.