The vast majority of current software development is guis for databases and can be done with relatively little training, not even requiring a BS in CS much less a PHD. But there is more advanced development where the more theoretical backing is at least useful.
(Although weighing 8 years writing software against 8 years in grad school, I might go with the guy who has work experience... is kind of a toss up).
I largely agree, but it depends on what kind of software the programmer was writing. Doing major kernel hacking for a Linux distro is highly impressive for instance, doing maintenance patches for yet another database front end is not.
Also remember that the two is not an either or proposition.
It requires a somewhat flexible day job and it may take longer, but you can work on a graduate degree while holding down a day job. I work a help desk part time for most of my undergrad degree and work as a DBA/Sr. Programmer while working on my masters right now for instance. On the flip side, you can go to class at day and contribute to open source or do contracting at night.