A description is given of MicroTool, a programming environment that reports programming errors immediately, blocking their entry into the database from which both executable code and documentation are derived. MicroTool's primary objective is to maintain a consistent database, meaning that the program is correct as far as MicroTool can tell. Aspects of MicroTool that are discussed include feedback to programmers; smart editing windows; address space layout; the program model; data definition; algorithm definition; combining edit, compile, and link; time and space measurement; and programming style.