Competing is the best way to get good fast and get to the next level, for the reasons that I just mentioned earlier. If you are just training for fun, you may not really look in the mirror and work hard to fix your weaknesses the same as someone who just lost at a big competition. But, if you are a good student, you train regularly, and you do your homework, you will get better, there is no way around it. I love to see the guys who don’t really compete give the young competitors a tough time, it just shows the beauty of jiu-jitsu – anyone can do it.I think just enough competition is ideal for developing your jiu jitsu. For me, that works out to 3-4 times a year. Too much competition, in my mind, leads to a jiu jitsu that is too limited, too focused on "what works". Too little competition and you get potentially the problem that Raphael talks about, a jiu jitsu that doesn't self-examine enough. I think this point is a little less relevant at the lower belts, when you are constantly training against purple, brown and black belts who will readily expose your weaknesses. But for advanced belts, it becomes increasingly important to test your skills - not obsessively, but consistently - against both the best in your own area and the unpredictability of opponents that you've never trained with before. At least if you want to continually improve and refine your game.
That said, much credit to blue belts like Steve and Benny who have recently played no small part in helping expose some holes in my treasured half guard!