The tools that developers use are extremely complex. The domain certainly dictates their complexity – software development ain’t simple. To a non-developer, IDEs and issue trackers can appear cumbersome and confusing. Is this all by necessity?
Are development tools designed to the same set of expectations as the products they’re used to create, just for a very rich domain? Are they complex by (good) design? Or are they as opaque as they appear to a non-developer – complicated by (poor) design?
Does the required flexibility of development tools contribute to an over-flexibility of software, products that do too many things in too many different ways?
Or am I giving developers too little credit, and their expectations of product design aren’t shaped by the tools that they use at all?