I tried chain fishing but my chains are always broken.
All it take is practice and patience. The worst part is when you are trying for a certain pokemon and it gives you something else. I think I ended up with 15 or 20 shiny Poliwhirl before getting the shiny Dragonair I was looking for.