These are good tips and I can fully back them all up. Solid 10 / 10.
I remember when I made my first Flowlab game, I wanted to make awesome bossfights, but they ended up being a cluttered mess. They were either pathetically easy or pathetically difficult. Now on my WIP game Dark Ninja, the bosses are much more organized and easy to understand than their predecessors. Though I’m still concerned about the difficulty curve. Boss 1 is easy, but boss 2 is super difficult…
Anyways, adding on to what @Pixel_Name1 is saying on point 3, it would also be a good idea to plan ahead on what your boss is like. Try making concept art, or a list of planned actions and conditions. You also want your boss to fit the game. Does it work well with the game’s mechanics? Does it align properly with the difficulty?
You can also try experimenting with the boss’ mechanics to see what works best. And it’s okay if you’re not satisfied at first; trial and error is a good learning experience and can lead to new ideas that can solve previous problems.