Today I stumbled upon a site which shows how to create a 'magical' user registration form, using a little bit of CSS and jQuery magic. Go ahead, play around with it once. I'll wait.
Are you finished? Good. Now please don't ever do this in your own websites. Ever.
Have you ever been around other websites where you need to register, only to see a humongous form that needs to be filled out? Chances are, as soon as you saw that huge form, you clicked on the 'Back' button of your browser, never to return again.
Now, imagine the same site and it still requires you to fill out that huge form. However, instead of showing you upfront about the time you need to spend filling out that info, it only shows you two fields. You immediately think "Cool, I'll be registered in no time at all!" Then you click on the 'Registration' button... And more fields pop up. Begrudgingly, you fill out these additional fields... Only to be shown more fields. Do you see where I'm going?
Don't torture your users into filling out needless information. Unless you're working with some government or financial entity, you really don't need all that information, do you? Keep it as simple as you possibly can. For example, I loved Heroku's sign up process, where just an email address is required. They send you a link through email, where you click and voilĂ , you are now a registered Heroku user. Simple and effective.
Another alternative is what's called "Lazy Registration", where you can actually use the main functionality of the site without registering. Only when you need to actually register for something (like to save the information for future use), the sign-up form will appear. By this time, the user will know how much value your site gives to them, so if they were happy with what they saw with the non-registration parts of your site, they will gladly register and continue to use your site in the future. Also simple and effective.
You ultimately decide what needs to be in your registration form. Just don't be surprised when you find that your 5-step registration process isn't gaining any new users to your site. We're not really dying to use your site, you know.
Update: As soon as I posted this, Jason Fried from 37signals wrote a post about signup form redesigns for their products. I thought I would add it here, as 37signals is a company I respect and appreciate for writing these kind of posts.