Don't. Make. Me. Think!
By this I mean, if it's a "button", always make it clear what pressing it will do.
Find another way to convey state if you can't make the button do both things easily.
Also, if pressing the button is trigging an action that might take time, make it obvious I pressed it and they I'm now waiting.
And if you don't want me to press it again while I'm waiting, disable it.
While you are at it, remember to enable it again if the action was successful and can now be done again or if it failed/times out and can be retried.
Where possible, don't make the button change after I click it to be doing another thing. Find room for another button.
And finally, any actions I might want to preform a lot, let me do them against multiple instances of the item, using some kind of multi-select. Bonus points for a "select all".
One obvious place for this, I would like to be able to find all the people who I can "follow back", and do they all in one go! Not one at a time.
Thanks for listening. As always, my opinions are my own. I am open to updating then if presented with a solid argument.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.