Whenever we are talking about hiring we are talking about the benefits our team or company will get from the new person. To answer that question we first should ask ourselves - will degree boost that person or not, what it would give to us?
It is just a paper which proves that a person has wasted some years listening many lectures (most of which are useless for typical business), and passed many exams, however, it doesn't gives any real practical knowledge and experience.
While many fields do not change so fast like IT and degree might really approve that in those fields a person might have "production-ready" knowledge like it is in the medicine because human body is the same as 100 years ago, the problem with our field is that it changes too fast. It means, that by those X years while someone is studing program Z that program might be no more relevant and main problem is in educational system itself. Because of the legal issues it takes too long time to accreditate a new program.
Another problem is that IT is not only changing, but also evolving too fast, the amount of data and different technologies is growing significantly.
Businesses don't need someone with a lot of theory, businesses needs someone who can just do a simple task.
Many good web engineers don't know very well and use languages like C or Assembly because they, probably, will never use them in real life. Another example - wordpress developers don't know general software engineering principles and patterns, they mostly only know how to be a "plugin operator", but can't write a framework from the scratch themselves, etc.
It always depends on the task and what company is looking for. Knowing everything is also impossible.
The next reason why degree is a waste of time in the IT is that in typical comuter science programs nobody teaches students how to build real business applications, web apps, mobile apps, games, etc.
Because of all that factors I described above, in the software engineering most of developers are self-taught, including myself. I was studing computer science in the local university, but I dropped out on the 2nd year because I started asking myself the same question every day - "What the hell I am doing here?"
The answer, of course, is yes, I might hire someone without a degree. Whenever I am looking for a new team member I do not care about the paper, however, I am looking for strong knowledge - my own definition of the degree.
The problem with computer science programs around the world is that they ignore one very important part of the computer science. CS as any field has theoretical and practical parts. What I am looking for in candidates is practical computer science which is software engineering.
Many people do not agree with me that software engineering is a science. However, not only CS, but all the real world problems we are trying to solve every day also have many questions like:
... and many, many others.
And that is a knowledge I am exactly looking for in any candidate - is he or she capable to write code, read code, test code, maintain code, use his tools, work independently, learn new things fast, etc. And to get that knowledge is much harder then to get a Master's degree.
I am also looking into social aspect of any candidate - GitHub and open-source contribution activity, does he or she writes articles, makes screencasts, participates in meetups, conferences, etc.