No Silver Bullet: Essence and Accidents of Software Engineering is a very readable review of the idea of software engineering -- of processes to enable the creation of better software programs.
It's worth reading by any developer, but I'm posting it here because of his comments on "graphical programming." It reminded me immediately of some past comments by Josh on using a graphical metaphor to make programming easier to get right.
Brooks is skeptical:
In a clash like this one between "it needs to be done" and "it's really hard," both expressed by people who know what they're talking about, where do you place your bets?Whether one diagrams control flow, variable-scope nesting, variable cross references, dataflow, hierarchical data structures, or whatever, one feels only one dimension of the intricately interlocked software elephant. If one superimposes all the diagrams generated by the many relevant views, it is difficult to extract any global overview.