23

I was watching a programming course ("Kotlin for Java Developers" on Coursera). The instructor of the training course said:

"We focused on the use cases we knew about from our everyday work and from what other people told us. This is one of the principles JetBrains runs on: we dog-food all the tools we create. So we use everything that's produced by JetBrains on an everyday basis in our development. And Kotlin was also dog-fooded a lot. We also integrated things from outside JetBrains to understand many more use cases."

I was wondering what is the meaning of "dog-food" here? I think it's about testing and using a tool or product before the releasing stage. Is that true?

5
  • 7
    "We eat our own dog food". It's good enough for us (our canteen lunch?) so that proves it's good enough for your dog. Jan 22 at 20:33
  • 4
    Related on ELU: Origin of the term "eating your own dog food" Jan 22 at 20:45
  • 6
    It's worth knowing that, as a native British English speaker with a pretty wide vocabulary, I had never heard of this term (and was interested to learn the meaning here), so it would be wise to avoid using it without explanation unless in a context where it is more common.
    – dbmag9
    Jan 23 at 19:54
  • 4
    @dbmag9 it's common in writing about software development, but I hadn't encountered it prior to that. Jan 24 at 17:32

4 Answers 4

48

The original phrase was "to eat your own dog food", with the meaning of "to use your own products (no matter how bad they might be) because it will help better the company or product itself." Over the years, it seems that phrase got lexicalized to simply "to dogfood."

Why was "dog food" chosen? I had always thought about it as, "like eating dog food, using your own product is something employees might not want to do." However, the usage of "dog food" is not that important to this metaphor.

This Wikipedia article discusses the complete history and etymology further.

As a real example from the Valley 25 years ago, Sun Microsystems's CEO Scott McNealy strongly believed in and liked the phrase "eating his own dog food" and forced even sales / back-office people to use Sun's office productivity suite. It was so terrible many people were forced to covertly use Microsoft Windows laptops, not Solaris workstations, to get their work done.

1
  • 1
    As an aside to this, a friend of mine used to deal with a major dog food manufacturer whose factory was over the road from a major tinned pie manufacturer, and he remembers the dog food quality control guys (whose job involved tasting the product) saying they were far happier eating their product than what was turned out in the factory over the road.
    – John U
    Jan 25 at 17:41
15

First “dog food” has become an idiom, which means “use your own product”. This is not about using a pre-release version of your product, but using your product at all. Note that this only applies to certain types of product, you wouldn’t expect a company developing ag-software to be running a farm and so wouldn’t expect them to be dog fooding their software.

On the other hand I wouldn’t fly in a plane where the CEO of the aircraft manufacturer refused to fly in that model, or eat in a restaurant where the cook wouldn’t.

Jet Brains develops tools to make development faster and less error prone, requiring their team to use the pre-release version has several advantages: it helps them develop faster with less errors, and it helps them identify errors caused by unexpected situations.

5
8

There is an idiom among programmers "eat the dog food". It means that you are using the software that you are developing as part of your normal suite of programmes used to develop software.

The metaphor seems to be that "dogfood" is the worst thing that is edible. Software that is dogfood is not good enough for release but it is usable.

It comes particularly from people writing web-browsers. If the developers were able to use the web-browser that they were developing for browsing the web (as part of their job, for example) they were "eating the dog-food". The idea is that developers who are using their own software will quickly learn what's missing or broken.

So by extension "to dog-food the tools" means "we use JetBrain as one of the tools we use to develop JetBrain", and so we know its strengths and weaknesses as users of the software and not just as developers.

5
  • 11
    Your definition is right, but the reasoning is not. The metaphor is not that the food is bad, but that they run a factory making dog-food, so they should be the ones to eat it. Jan 22 at 11:30
  • I'm not sure how your comment differs from what I've written "dog food is bad, but edible. Software that is dogfood is not ready for release. You don't release dogfood (except perhaps as a beta, but not with a 1.0 badge). Your comment seems to be the same as mine, but if you feel you can edit my answer for clarity, please feel free to. And if you think my answer is wrong, please write your own.
    – James K
    Jan 22 at 11:46
  • 6
    If you’re a dog food producer then you certainly do release dog food. If you eat it, then your customers can be assured that the product will be of high quality.
    – Rohmer
    Jan 22 at 20:41
  • 2
    You don't need to be using your own software to produce programs. If you write payroll software, and you use that software to do your own payroll it counts. And it comes from 1988, so it isn't primarily about using web browsers. Jan 22 at 20:43
  • 9
    As a student, I did spend some time in a dog food factory. The idiom is quite literal there - the product was made to normal food standards, and they were quite proud to have a tasting room open to all employees to verify the quality of what they were making. Jan 23 at 10:32
6

I always thought the term originated with a dog-food company whose manager advertised that its product was so good, he ate it himself. But there's a bit of a connotation that people in the company aren't using their own product because it stinks, and that's something that needs to change.

(50 years ago I did a vacation job in a Siemens electronics lab. They had two Tektronix oscilloscopes on the bench which they used all the time, and two Siemens oscilloscopes which sat in a corner unused. I was told it was company policy that at least half the equipment they purchased had to be Siemens-manufactured. The reason for the policy wasn't to save money on purchasing, it was to ensure that their own products were as good as the competition. On this occasion, the policy failed.)

It's an excellent principle for software developers because unless you use your own product, you don't experience the frustrations your users do, and you don't fix them. It's one of the reasons it has become commonplace for a compiler for language X to be written in language X. The principle probably long predates the use of the term "dog-food" to describe it.

1
  • 1
    I thought that it was that he fed it to his own dogs, not that he ate it himself. Jan 25 at 1:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .