We software developers provide valuable contributions to society (or at least we have the potential to do so). I think most people will agree that information technology has been, and continues to be, an important engine for improving living standards and creating growth (growth, above all growth!).
Some people understand the nature of software development, but many people don't. Through experience, research and improved development tools and methodologies, we've become better at estimating software development tasks, and developer productivity has increased many times, almost keeping pace with productivity expectations.
Managing the expectations of what's realistic within a given time-frame or budget is perhaps the single most important aspect of perceived success for a software development project. This is an aspect of software development that's as important to master as any. What's your experiences with expectation management? How can we become better at it? Do we still lack the tools to properly estimate and control the progress of a development project? What's the best way to define and contain feature creep, while still minimizing "transaction costs" writing feature specifications?
People depending on software, and software development projects, need to get better at appreciating the difficulties of estimating before-hand what lies down the path of a development project. You can only know what the cake tastes like by eating it. And when you've had a bite, of course, it's too late to regret. Basically I think software development lacks more trust - I need to feel trusted, not mistrusted or exploited (aka minitious feature specifications and feature creep). But maybe that's just the way the World works...