A piece of simple, concrete, implementable advice I read recently that I really like is "communicate in the language of options , not demands, imperatives, requests, or preferences." Imagine yourself having a conversation with your manager or someone in a relatively similar position about a decision or suggestion you have. How often do you say things like "we have to", "we need to", "we really should", "can we", or "…
I usually would say "To run website for customer X, we have to setup separate database server because their requirement is not having multi tenancy".
What I found out, it is something you can communicate to fellow engineer when all tasks are signed off. It is technically correct, and I did not understood why it would not be valid statement.
When you are in meeting with higher ups planning roll out for that customer, there is no "we have to". There are only options and maybe that customer was just shooting from the hip with those requirements and if we tell him what the price is we won't have that customer or he will reduce his wish list. So it would be "To run website for customer X, one option is setup new server but it will be 100$ a month and one person working on it for 2-4 days to have configuration working and tested".
Setting up separate server is not interesting part for business. Setting up server for me is interesting part because I have to put it in the context of our infrastructure, what rights should be assigned to that server, what packages I need to install on it.