I follow a memorized formula. Since inventing this, I have never needed to use the "forgot your password?" links, and rarely write down a password.
My password for any site/machine/whatever is
(who)(1+)(2)(3-)8xy!R2(what)
where
(who) = who am i? 'd' for me (Daren) or 'r' for 'Root'. For a web CMS that I manage, I may have an account as a regular nonpriveleged user, for which (who) would be 'u' for User.
(1+) = is the letter alphabetically following the first letter in the name of the site, company, machine or whatever. Always capital.
(2) = is the second letter of the name.
(3-) = is the letter alphabetically preceding the third letter in the name.
8xy!R2 is a fixed part. Many sites require a punctuation mark, digits, and a mix of capital and lowercase. I just memorize this.
(what) is 'm' for money-related sites like banks, 'f' for forums, 'b' for email (mailBox) accounts, etc.
Example: To log in the usual way at the Intergalactic Bozo Research Council (IBRC) user forum, the password is
dJBQ8xy!R2f
Password strength indicators are routinely impressed with the passwords created by this formula.
Once every year or so, I change the fixed part, and maybe switch from using (1+)(2)(3-) to (2)(3-)(4-), or put the (what) in front instead of the end. It's a lot of fun to go to every website I have an account with and change the password, for certain definitions of "fun".
A few oddball sites require peculiar passwords. Some from way back don't have a "change password" feature. Some don't allow punctuation marks, or make demands on the length. When I must write down a password, I obfuscate it: The first character is bogus, the first 'N' that appears isn't really there, every digit is one more than what is should be, and so on.
Of course, everything I say here is a lie. I'm not telling anyone the real rules. Make up your own!