What background should a Product Owner have?
I don't like the term product owner. I wish Brian Marick's term "product director" had become more popular.
A LinkedIn user reported that he sees job postings for product owners that expect TDD, BDD, OO, programming skills, and a degree in IT. (I assume that a computer science degree would qualify, otherwise I couldn't get that job.) On the one hand, that doesn't surprise me, as the people posting those jobs likely copy and paste the requirements from some generic list of agile-sounding techniques. On the other hand, I don't quite understand why one would (intentionally) demand programmer skills for a product owner.
I expect a product owner to have the information and authority to decide which features to build next and what it means to use those features. This means that this person should either know those things or be able to figure them out, and feel comfortable taking the responsibility to do that. They would also need to feel comfortable either learning what they didn't know or getting help from other people; they couldn't just sit there, hoping that the unknowns would take care of themselves.
So a product owner should know the business or feel comfortable learning about it. They should also be able to figure out how "important people" will judge the success of the product, because that will determine how they choose features. With luck, they will need basic financial literacy to make those decisions based on profit, but more likely they would need to learn what would make the product a "personal win" for the key stakeholders, and that relies on some knowledge of psychology—particularly sales. I have in mind the kind of thing one would learn by reading The New Strategic Selling.
I don't think a product owner needs to have been a programmer. It could be disastrous if they had worked as a programmer 15 years ago and pretended that their understanding of technical tradeoffs remained perfectly relevant today. I've worked with product owners who had stopped programming 15 years earlier and couldn't understand why something that was easy to do on a Green Screen application took longer to do with Enterprise Java. This led in some cases to fights over cost estimates. It might help to know what's feasible, but if they work with programmers that they can trust, then that becomes less of an issue.
Product owners might find testing skill handy, because they might better identify holes sooner in the product. I've never worked with a product owner who had ever worked as a skilled tester, so I raise this point purely hypothetically.
I just don't know why HR departments would expect TDD/OO skills from a product owner. I can understand why they'd look for BDD skills, but one can do BDD well without having worked as a programmer. To any interviewer that thinks otherwise, I recommend citing articles by Liz Keogh to strengthen your case. Start with "Step Away From the Tools".
As an example, I'd trust a candidate with an economics degree who understands basic finance (distinguishes profit from revenue) who also shows a willingness to collaborate and negotiate. I can teach the key techniques to that person, if I had to. No programming skill required.