Answer:
NO. It is not good by itself for self-defense. It is too ground-oriented. If you are talking real-world self-defence, then you cannot afford to roll around on your back, you need to be up and able to see someone.
If you are interested in self-defence, then sorry charlie, learn a striking art first. BJJ is cool, tough and demanding, but the truth is you are not dealing with someone hitting you or kicking you unless you are also cross-training in Muy Thai.
Now should you take BJJ? Absolutely. It can come in handy. It is good especially if you are fighting someone ONE-ON-ONE and know that person is weak on the ground. Then you got 'em!
Now all no's being said, most BJJ places and practitioners I've met also study some type of striking, typically Muy Thai. Or, they also are Judo players. Or, they have a black belt ranking in a Taekwondo or Karate type style then decide to take BJJ because they have been intimidated by the media into thinking that their art, which is actually more geared to the real world, is inferior.
Take BJJ for sure. But take something to either complement it or boost it. BJJ/Judo and BJJ/Wrestling training makes for some tough grapplers. And remember, most BJJ dojos are going to most likely force you to do some Muy Thai for your standup.
A word to the wise: please do not show up at a Judo contest and think that you are going to tap every single Judo player there because you major in ground work. When BJJ players show up at Judo tournaments, I beat them on the ground. Why? Because Judo ALSO has ground work. Why? Because lots of Judo players are cross-training in BJJ too. I have probably subconsiously bummed some BJJ techniques from the cross-trainers and just did not know it. Others I have blantantly stolen because a cross-trainer shared it with me. And in turn, I pass on what I can to my TKD kids, where applicable.