Update: i have extended the answer and added some examples, i might further enhance the quality of the answer if i get feedback
Thought you'd never ask, here are some things to look at:
1. Does the user even need to create an account? Why?
Many product managers/designers fail to ask themselves this important question, it has become one of the largest trends that every digital product out there needs to identify its users, while it's true we are much more able to achieve things when users create an account, it has to be a conscious decision rather than the intuitive ofcourse. By forcing everyone to create an account you are making an authority bet, which in many cases you lose.
This is a very good article on nngroup's website called Login Walls Stop Users in Their Tracks it explains a lot about the impact of such walls.
2. Ask only for the relevant information for the current task
When the user is creating an account, the user has something in mind, a need to use your product/a task to be achieved, this requirement is merely an interruption to what the user is seeking, it's crucial that we keep the amount of user input as minimal as possible.
No intention to promote linkedin, but consider their case as most of us know the platform. Eventually we - the users - enter so much information for our profile, can you imagine if linkedin asked for all of that at the registration phase?
And yes believe it, some do ask a lot! The largest platform i know of that made a record of such mistake at its release was Google+ - RIP, we had to go through so many forms some to reflect our social aspect, some our professional, some interests etc.. It took me personally around 20 minutes to get past the initiation process.
3. Ask for the right information at the right time
Imagine having to do your lifetime laundry at once, not so fun instead we prefer to do them on a weekly basis, user input is a similar case on a much smaller scale - considering the exaggeration it's more like microscopic scale. but! it gives the same effect.
Rather than asking for the address at the registration before even trying your product ask it on the checkout, or the more important one should the user register before using your product or at the very end of it.
PS: This is mistake is common at the hands of fullstack developers since if the mindset used for designing the database is the same as designing the forms, lord's mercy.. the poor user..
4. Simplify the User Input
Go as creative as it gets with this one because there are so many ways to approach it a couple of examples:
4.1. Single Sign On, Social Logins and the one click registration
4.2. Fill the form on behalf of the user and let the user correct it when possible
Ever wondered about Facebook's default birthdate values for signing up?
Day and Month clearly represent today, but why 1993? maybe as of this year the most common sign ups are users born in 1993?
I'm sure many of us here know we can guess the country from the IP address, what else can we guess is email@example.com implying First Name Michael & Last Name Lai?
This is an example of how tolerance could result with a slightly enhanced experience, this case does not apply 100% of the time, the question is if we are able to research patterns used in emails and found that x% of the users use [email protected] then we could try to use that information in auto filling the form even if it doesn't work all the time.
In this example i have intended to break the rule to prove that it still can workout somehow, on a mobile device the user would only have to click the button in the middle to swap the values between first name and last name, also the user would have to press backspace 4 times eventually requiring the user of 5 taps of barely thinking over having to type in manually everything.
Use this for mobile apps, web forms already provide autofill for users that might become useless if you fill it.
Disclaimer: this example was made within minutes it is not verified please do not take it as is to your product without testing it, it's merely about the approach and how to think about such problems.
4.3. Question the fields you're asking for, it reflects on the interaction pattern, do i need to ask for the full birthday? or am i only concerned in knowing the user is over 13 years old? the difference is Date Field vs Checkbox i guess you know how much that is in user time/frustration.
4.4. Field grouping and sequence, reflect the user mental model.
4.5 Don't exaggerate password complexity (unless you have a good reason)
4.6 by @vlaz: do i need to ask for the full birthday?
"perhaps it's some sort of statistical anomaly but a lot of services that ask for that information attract disproportionate amount of people born on the 1st of January."
thank you @vlaz
and the list goes on..