BSNL connection is poor in terms of following:
As per what I have experienced, it goes down quite often. However, when up the speed is decent.
Their customer service is bad.
If you are not on unlimited plan, you run the risk of getting huge bill suddenly(I got a huge bill of 9K for internet only when my monthly bill was Rs 600/- for about a year). Writing to them or compalining is no good and BSNL being a govt. body, you know how tough it is to get such matters resolved
Some good point of BSNL is
Coverage: They give connection at any place(where you might not get connection from airtel etc).
So as per me the first choice should be someone like Airtel(their speed is good, billing seems transparent and their customer support is great) and then if you have to go for BSNL be careful to keep track of your bill(even with unlimited plan, you still need to keep track of your phone bills - they sent me a bill of Rs 3000/- for local calls only -and you dont get records of local calls:-).
Just to add - Have a look at the following(it seems there are lot of cases like mine).
https://techtree.com/techtree/jsp/user_review.jsp?review_id=689