A final essential difficulty arises from software's inherent invisibility. Software can't be visualized with 2-D or 3-D geometric models. Attempts to visually represent even simple logic quickly becomes absurdly complicated, as anyone who has ever tried to draw a flow chart for even a simple program will attest.