If you want to learn Spanish properly, enough to communicate and build relationships with people then your Spanish needs to be of a fairly advanced level. Friendships and any type of relationship, albeit, regularly conversing with the butcher, can only go so far with two word phrases, animated expressions, arm flapping and english words pronounced in a perceived spanish accent.
So is attending classes the answer? From what I have seen over the last four years of living in Spain, attending a class twice a week, sometimes even everyday has its benefits. The most obvious progress is made during the beginning when learning is very accelerated. However, after a year or so progress slows down and classes alone are not enough. I know people that have "studied" Spanish much more than I have, yet my level of fluency is years ahead compared to theirs in terms of progress.
In order to succeed in learning Spanish, the correct attitude is key. I am not saying that people who attend classes have the wrong attitude but they quickly become complacent in their progrss and bogged down with grammar rather than commuication. Many of these learners do not put their heart and soul into it but yet expect miracles. The right attitude is one where learning, both active and passive, is carried out around the clock. It is similar to an immersion pogramme in which you expose yourself to the language in as many diffrent situations as possible. Here are some of the ways in which to do it:
No satellite television. Go cold turkey, it is the only way to improve your listening skils. This means no watching UK television whatsoever. It is tough but you get used to it.
Less supermarket shopping where the only spanish that is required is "Hola" and "Gracias" to the check out girl. Throw yourself in at the deep end at the local shops where the staff don't speak any English.
Attend everything and anything, local political talks, parenting talks, open air theatre. Check out noticeboards in town halls etc.
Spanish radio only
Eaves drop in conversations whilst out shopping, having a coffee etc. People watching is perfectly acceptable behaviour in Spain and you can learn so much from studying facial expressions, gestures, pauses and absolutely anything relatd to communication.
Join the library and borrow books to grow your vocabulary. It doesn't have to be Cervantes, you can learn a lot from children's books aimed at primary level.
Buy activity books from crosswords to reading comprehensions for six year olds, it all helps.
The truth is you really have to put yourself out there and without wanting to sound too New Age, become "at one" with the language. Those who religiously attend classes for years on end, feel as though they do their bit so don't need to put in the extra hours on the street. Whether you learn in a classroom setting or purely on the street, it needs around the clock commitment. Integrate it into all areas of your life, ideally get a job that requires you to use it and you will soon improve your fluency.