I notice a stark difference in the attitudes to payment terms in different countries that I work in. For example, in certain parts of the EU it seems that if you put "payable within 30 days", you get paid on the 30th, or more likely, on the 30th day you send a reminder and you get paid a week or two later.
When somebody invoices me I interpret "payable within 30 days" as "the work is done, payment is due now, but you have 30 days as a courtesy". I find it incredibly disrespectful when invoices don't get paid on time, or at worst the business doesn't at least explain why payment hasn't been made.
I'm considering to changing all invoices to "payable upon receipt" in the future and would be interested to hear people's experiences with speeding up payments.
I used to be really patient about payment time and it led me to the situation where I had 2 clients who still owe me $20k and $30k respectively, years after job completion. Thank you, lesson learned very well, I'm not doing this anymore. Right now I'm either using escrow for new clients or handling source code only after payment.
In terms of cash-flow it is obviously better for the debtor to pay later rather than sooner, especially e.g. if the invoice relates to goods or services bought for resale. So in general you should plan for payments to come in after 30 days.
If that's a problem then by all means do change your terms to try to speed things up.