Software Development the JetBrains Way: Dogfooding and Other Key Principles
JetBrains has turned 20, and over the years, we’ve honed methods for development that match the style, values, and needs of our company. These processes work so well for us that we want to share them with others. Dogfooding, for example, has always played a central role in the development of our products, and with this video we want to share its role in our creative process with you.
In the software development industry, dogfooding is the practice of testing your products within your company, using them as the end users would. Effectively, you have to eat your own dog food to ensure that your product is of the highest quality.
We at JetBrains have always been in a good position to do this. Indeed, since 2000, when we started to create the first JetBrains product, the ideas for our tools have often developed in response to an internal need. The products we build, from IntelliJ IDEA to Kotlin and Space, are all designed first for ourselves, and we use them in our daily work.
Of course dogfooding is not a panacea, and in addition to its benefits, it also has a number of pitfalls that we discuss in this video.
On the one hand, the practice of dogfooding gives us the advantage of being able to solve product-related problems, such as UI/UX issues, early, before users have had a bad experience. It also helps us discover the functionality that real customers will expect from the product. Basically, dogfooding allows us to step into our users’ shoes. On its own, writing good code doesn’t necessarily result in developing the right product, and dogfooding helps us address this issue.
On the other hand, dogfooding is not a silver bullet for developing software. It can sometimes cause bias, and it must be combined with other practices or used carefully to ensure that the final product is appropriate for the target user. And in this video we examine our best practices for handling these situations.
Learn more about the way we create products at JetBrains and about how the products are made to meet not only our users’ high standards but also our own.
The Drive to Develop
Subscribe to Blog updates
Thanks, we've got you!
BeamSearch in code generation
In the previous article devoted to full-line code completion, we looked into the vocabulary that the neural net of our full line completion plugin uses for Python. However, just having 16384 tokens like self., or, s.append(, return value, and others described in the article is not enough to generate…
Looking at Python through the eyes of a neural net
The JetBrains full line code completion plugin for Python is now available as a public beta. We would like to talk about some of the technologies and algorithms used to create the plugin and share statistics about Python programming that we’ve collected in the process. What is “full line code co…
State of the event industry: the perspective of tech conference organizers and developers
“I don’t think the fundamental reason why people attend conferences has changed or is going to change – it’s about those meaningful connections.”Kevin McDonald, Chief Commercial Officer at Web Summit TL;DR The event industry has had to change significantly to adapt to the pandemic and it is co…
Code Completion, Episode 4: Model Training
The previous articles from the series covered the following topics: In the first episode, we discussed general code completion scenarios.The second episode was devoted to the difficulties of heuristics-based implementation and explaining the necessity of machine learning.In the third episode, we …