I think that they are a good first step, but I don't think that they should be the final result. The are a good way to test if a person is programmer, but asking someone a difficult problem on a whiteboard is not a good way to evaluate them as a programmer.
I lean more and more to the idea that a portfolio is the best way to evaluate someone. You can see the way that they work. But more importantly you can see the quality of the code that they produce. That being said, portfolios have their own issues. You could be a phenomenal programmer, but if you don't code outside of work, you can't really show that. Also, it is a huge time commitment, and some people don't want to do that. Lastly you can just plagiarize code.
There is no perfect interview method, but I don't think that whiteboarding is that best method for final evaluation, but it may be good enough for initial evaluation.
A portfolio is often the rarest thing you will find with full time developers who are working on key industry projects. Often they don't have time to code outside of their job or the last thing they want to do after coding at work all day is do the same when they get home in order to make a portfolio. If I see a developer with a portfolio who is not a contractor I start to wonder; do they have an unhealthy obsession with development and no social life or are they so devoid of work in their role that they have the time to do a portfolio on the side.
I think that these are all good, valid points. :)
I just think that it is a good way to judge the development skills of junior devs. When I got my first job, it was definitely being able to talk about the side project that I had created and the processes that I used that landed me the job, not my ability to solve fizz buzz and do SQL queries.
Once you are a mid-level or senior dev, I think that people are able to evaluate your skills in a different ways.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.