This article makes great points about basic negotiation. One other point for people not used to sales is that you get way better with repetition. Getting a particular price once gives you the confidence to ask for it again. Conversely there's a lot less push-back if you forthrightly state your terms instead of dithering. These are both the product of experience.
For people starting out I think it's fine to low-ball a few deals to gain experience and get insight into what the market will bear. But you need to learn from that process as quickly as possible. The most important learning for me was to ensure that clients put money on the table to close the deal. At that point they are invested in your success, especially if they had to push for it from their own management chain.
Personally I would negotiate my hourly fee based on the project extension in time, e.g. a six months consulting contract has a lower hour rate that a few days contract. I tend to not negotiate the payment terms though, which are always 7 days following the receipt of my invoice. In Italy very often delayed payments are an issue, but for my type of consulting the customer knows that's better not to delay my payments due to the confidentiality of the matters which I deal with.
But you sometimes don't know upfront how much you'll actually work for the client for the thing they need to accomplish. Guess this won't work then.
That link just sent me into a 2 hour web hole that was insanely productive.
After reading some more of the original authors work, I was linked out to the ebook Breaking the Time Barrier [0] (by the CEO of Freshbooks which I'd never heard of) which instantly helped me reframe my approach to consulting.
And this is why Hacker News is addictive; Occasional and random large rewards.
[0] https://www.freshbooks.com/wp-content/uploads/2018/03/breaki...