What makes a good product owner?

I read an awesome post on Coding Horror entitled Are you an Expert. There is a great quote that really exemplifies what product ownership means.

Being an expert isn’t telling other people what you know. It’s understanding what questions to ask, and flexibly applying your knowledge to the specific situation at hand. Being an expert means providing sensible, highly contextual direction.

A product owner has to be so in touch with the product, that they can ask the right questions. If the right questions aren’t asked, a team will soon be working on tasks that were simply on the list, not tasks that are important.

What are your developers talking about?

I found myself in the middle of an argument over the differences between static and global variables today. I started to give my input, and stopped dead in my tracks.internet_argument

I don’t care what the answer is.

I love the fact that my developers enjoy programming enough to argue about the semantics of it. I love that they take software development so seriously. I love that they want to know the answer.

Facilitating an environment where developers can continually improve is super important to me. Good software developers are passionate about programming and are always learning. Great software developers are obsessive about programming and are learning too fast for me to be comfortable. If there isn’t constant communication about new programming principles and practices, something isn’t right.

What are your developers talking about?

Database integration testing, Interested?

Testing database queries is super important, but not easy enough. It can be done, but usually you have to write custom test fixtures and spend too much time doing it. Every project needs to test database integration, so why isn’t there a library out there to make it easier? NDbUnit seems somewhat dead, and only works on a specific set of database providers. Even worse, it relies on a ton of XML setup, which I hate.

So I decided to play around with creating an NUnit addin that makes this a lot easier. Does the following code interest anyone?

 
[MySqlDbTestFixture("Data Source=localhost;User ID=root;"), 
RandomDatabaseName, 
ImportFromFile("schema.sql")]
public class SomeTestFixture
{
    [DbTest,
    ImportFromFile("BadCompanyDataInDb.sql")]
    public void SomethingWorksWithBadCompanyData(IDbConnection conn)
    {
        ...
    }
}

I have most of it working, and want to see if there are any developers that might think of using it. Am I on the right track? Any thoughts or ideas for improvement?

(I told you I would have some code in a post this week)