most software products suck because fundamentally nobody who works on it actually uses it every day. its not always laziness either: people just work all the time and don't have time/space to use their products in the real world.
I've found this to be true with all the tools we've been implementing in our customers' companies. The hard part is NOT the code, the hard part is WHAT to code. TO achive that we have to immerse ourselves in the operation and learn how they are using the tools so that we ourselves are the ones who come up with the improvements, not them. The skill is holding the background of what is required, forbidden and allowed to be able to invent the improvements.
Commentary
I've found this to be true with all the tools we've been implementing in our customers' companies. The hard part is NOT the code, the hard part is WHAT to code. TO achive that we have to immerse ourselves in the operation and learn how they are using the tools so that we ourselves are the ones who come up with the improvements, not them. The skill is holding the background of what is required, forbidden and allowed to be able to invent the improvements.