From a developer’s perspective, other developers are both the best and the worst users imaginable.
It’s not the point of this post, but it helps with sketching a nice image and I just feel like typing it out while I still can. (Something something arms.) Developers make terrible users, because most will share a certain kind of curiosity and need for tinkering that makes them much more likely to find issues with your software than an average user. And as we all know, a bug is not a bug until it is discovered. Nonetheless, when users “create” bugs like that, it is also a good thing, since they can be indicators of bad software design or simply silly mistakes that may also have consequences elsewhere.
When reporting bugs, developers are the best users you can have, provided they use their knowledge and understanding to help you help them. That is, help you fix the issue so they can enjoy more robust software. A quick “feature X doesn’t work as intended” is fine, but it only alerts us to a problem. We’re still lacking a lot of information we may need to track it down, like the specific issue (“feature X does Y instead of Z”), the steps you took to trigger it (“after setting A to value B and pressing button C”), and sometimes even the good ol’ where’s it running (“on a Brand Model using Operator Systemos 2000-X”). Your average user can provide this (if you’re lucky), but a developer should know to do this without even being asked to.
Because let’s be honest here, your car will be fixed much more swiftly if you tell the technician “I have a flat tire” instead of “vehicle doesn’t move very fast”. (Not taking into account the obviousness of the tire problem.)