A form looks trivial in a design file: labels, boxes, a button. Everything about it is decided in advance and nothing is moving.
Then a real person opens it on a phone, on a train, halfway through a task, and every one of those decisions is suddenly load-bearing.
Ask less, and ask later
The strongest improvement available to almost any form is deleting a field.
Each field is a small negotiation, and the ones that fail are usually the ones that feel intrusive relative to what the person is getting. A quote form that asks for a company registration number before it asks what the project is has the order wrong: the visitor has not yet decided you are worth the effort.
Where fields cannot be removed, they can be moved. Ask for what proves the person is serious first, and for what makes the paperwork convenient later — ideally after they have had something back.
A step is a promise about how much is left
Breaking a long form into steps helps, but only if the steps tell the truth. Three steps where the third is nine fields long is a worse experience than one long page, because the visitor budgeted their patience against what they were shown.
Steps also have to be visible: where you are, what is behind you, how much is ahead. And going back must not lose anything, which sounds obvious and is the thing most step-based forms get wrong.
The keyboard is part of the design
On a phone, the right keyboard type for each field is the difference between a form that is pleasant and one that fights back. A numeric field that summons the full alphabet, an email field without the @ key in reach, an address field with autocapitalisation turned on — each is small and all of them accumulate.
Autofill is the same. A form that lets a browser fill a name, email and phone in one tap has removed most of its own friction for free. It only works if the fields are named in the ordinary way, which costs nothing but is easy to break with a custom component.