Alright, so I know this is like 7 years too late, but hopefully some people will find this useful.
So, while the other answers are correct, there is one slight problem that should probably be addressed. While it is true that everything is pre-determined upon receiving the egg, making, if you saved right before hatching it, then soft-reset over and over again, that Pokemon will always be the same, the reason for that has to do with your trainer ID.
In other words, if you finally find a shiny, and you soft reset, leaving it as an egg, yes, it will be shiny, always. However, if you trade that shiny egg to your friend, it will not (necessarily) be shiny for him/her.
I accidentally hatched a shiny HA Litten and found this out. That Litten was always going to be traded to my girlfriend, but I didn't plan on it being shiny. When I traded the egg to her, she hatched it, and it WASN'T!! So, she traded it back to me, where I hatched it, and it was still shiny.
Sorry that's long but I hope it clears up any confusion.