If you want to develop a good product, eat your own dog food

If you want to develop a good product, eat your own dog food

Finally got back to my series of articles on "So, you want to be a developer?"

Maria, the Chair of our board, thinks the term eating your own dog food is disgusting, so I try to use it as much as possible. If you're not familiar, it means to use your own product or service.

You: Alpha Tester Zero

I have seen a few products that I predicted (correctly) from day one would be total flops. There was the founding team of three, young guys doing a new product for pap smears. Let me just say that every woman in the audience crossed her legs during the pitch. There was the rich guy who hadn't ever been in a public school who was going to revolutionize math education because "It's only K-12 math, anyone can do it."

The best products I have seen have come from people solving problems they have. For example, we made 7 Gen Blocks because making educational games took a lot of time and, consequently, cost a lot of money. We wanted to shorten that time so we could make better games in the same time and break-even on making games for smaller markets, like, say, middle school students in Chile, or fourth-graders learning North Dakota history. (You can subscribe to The Learning Game newsletter to see how that worked out. Spoiler: Better than the pap smear guys.)

Some people will argue that you are neither a representative sample nor a market, both of which are true facts. However, if you have a problem that guarantees at least one person in the world needs what you are building. You can do market research later. For now, build the thing that solves your problem, and use it. Because you can see a clear use for it, you're more likely to be motivated to finish it and less likely to get sidetracked to learning Tailwind or Shiny or one of a million other options. Bang it out with whatever language and packages you know.

Edge Cases Come from Power Users

I'm a big believer in our 7 Gen Blocks because I use them every day. Right now, I'm working on a bilingual game. Because the blocks have saved me a lot of time on coding, I'm able to create games with a larger scope, and that makes me happy. That also means that I'm really putting the application through its paces.

If you use your application a lot, you're going to find the basic bugs right away, for example, that you forgot to add a function that increases the score every time the user gets another point, so their score always stays at zero. You're also going to find the bugs only a small number of users will encounter, like that the bilingual function wasn't applied to the scoreboard at the top of the screen so that while everything else is in Spanish, the score says "Collisions" instead of "Colisiones".

Maybe you're not making games, but rather, a website of hundreds of lesson plans with multiple fields users can search on, like Growing Math and teachers have the option under history of searching Navajo, Lakota, Ojibwe, Latino, etc. history. One day, you have a lesson that teaches about multiple tribes and you realize you need to add a category of Native American history.

As a power user of your product, you'll learn what those hidden bugs are, and then you'll fix them.

You'll Learn a Lot Fixing Bugs that Bug You

If, like with both of the examples I mentioned above, you are working on parts of the code written by other people, you'll gain an understanding of their code while stepping through it trying to find the line that puts the word "Collision" in the header. I've, written before about the value of reading other people's code .

Very likely, you won't find what you need to fix right away, so you'll learn a little about taxonomies as you search where the heck you add a term under a category. You'll see how to import a module in a JavaScript program. That's another thing most really good developers have in common, they have gone down a lot of rabbit holes because one interesting thing led to another.

Most of the really good developers I know got that way by working on projects that they either found intrinsically interesting or that fixed a problem that irritated them.


Rabbit sitting up underneath a tree


bruce toups

Licensed Managing Real Estate Broker at Georgia Brokers

2 个月

that is what the 4 stages of product development are about. Concept, prototype, preproduction and finally full production. then additional learning curves develop as the product cycle matures and it either finds adaptions in uses or customers. Bruce Toups

回复

要查看或添加评论,请登录

AnnMaria De Mars的更多文章

社区洞察

其他会员也浏览了