There are a few reasons I've observed and you may or may not run into that I think make this difficult.
- Developers tend to talk over "normal" people's heads. I struggle with this and I didn't even own a computer till I was 23, so in theory I should understand the non-technical perspective better. It's just ultimately VERY hard to take a technical and very detailed issue and bring it down to simpler terms and levels.
- Bosses that compartmentalize software they buy and software their employees build as entirely different species. If they buy software and it doesn't behave as they expect they'll stop using it, ask for their money back or raise unholy hell. If they spend 50k in man hours for in house work they can sometimes accept it breaking on its very basic designed functionality. I've seen software like that praised because it delivered business value, even if it did so at an excessive unnecessary cost. This ends up you'd think working in our favor, except inevitably when going Agile we have a TON of software to maintain, and none of it is maintainable. This stacks the deck against going agile in so many ways that I'll leave it for a dedicated blog post.
- Bosses assume that developers are not able to understand business value. This one has been a huge problem for me. I go out of my way to deliver business value first and foremost, I was a successful manager before I was a software developer. However, generally speaking bosses are correct into thinking this about us a developers, which I'll cover later in another blog post. Needless to say it's blunts our effectiveness at proposing solutions.
- Our industry is filled with people that don't deliver what they say. Sometimes it's us just overshooting our goal. Sometimes it's developers who just want to look better than they are and stretch the truth . Finally, sometimes it's people that just are flat out interested in taking the money and running (subtle distinction to others which one of the three types you are). Regardless, some bosses have been burned so much they assume everything is a lie and they've made up their mind when they walk in the room.
- Some bosses take a lot of pride in having a big hand in implementation details. Now while this can easily help you once you have agile working if they are interested in helping you produce software that has lots of feedback. However, if your boss is this way, he's probably a former developer in a time far far away, and absolutely convinced about how a software project should be implemented (and assumes that the way they did it then was perfect despite the problems that all projects inevitably have).