The costs and benefits of software modeling vary by technique, by tooling, and by technology. Selecting the right technique is challenging, and mistakes can be expensive. Lightweight visual modeling techniques favor communication, formal techniques help manage technical complexity, and model-driven development reduces long-term costs by improving developer productivity. Modelers also face a bewildering range of tool choices, ranging from low-cost drawing tools to purpose-built object modeling tools to integrated modeling and development environments that cost thousands per seat. What's more, disruptive software technologies like service-oriented architecture (SOA), application frameworks, and domain-specific languages (DSLs) add confusion to the mix. The challenge for application development professionals is to balance modeling's costs and benefits while taking advantage of new lower-cost tools and technologies.