1.) I plan out the story, the events, sidequests, every little thing I'm going to do in my hack, what is the purpose of my hack, what characters should be there, what Pokémon, will I create new region or will I script new story in the same region.
2.) Then I add things like new moves, Pokémon, items (Mega Stones/Arceus Plates/anything else), I also add Fairy type.
3.) Change Prof. Oak introduction. I create my first town and script everything in it.
4.) Add new OWs, Sprites, Tiles.
5.) Then I just use this routine: mapping, wild Pokémon, Scripting.
6.) After everything is done, I script aftergame and add side quests.
7.) ASM Routines, Pokémon cries, Legendary battles, Move Tutors, Decapitalise as much as possible, new music, titlescreen, battle backgrounds, physical/special split, Pokédex order, egg moves.
^
That's how I plan to create my hack. Steps 1, 2, 3 and 4 are done.