A bug is something we find in a software product that âdoesnât look rightâ (this is my personal definition). A bug can be hidden or visible; it can be âalready fixedâ or âstill presentâ; it can be critical or cosmetic; it can be urgent or of a low priority. What is important is that the more bugs we are able to find and fix before our customers see them, the higher the perceived quality of the software. Simply put, bugs are a very good thing, if they are found by us, not our customers. We pay our programmers for each bug they find. Here is a cheat sheet for them, showing where and how they can find those bugs, to make more money.
Obviously, if something is broken, itâs a bug; no need to mention it here. However, when a product is more or less stable, not too many things are visibly broken. But we still pay for bugs. What should you look out for? Read on. This list (in no particular order) will help you.
Lack of functionality. If a class (yegor256/cactoos#558) or the entire module (yegor256/cactoos#399) doesnât provide the functionality you expect it to have, itâs a bug.
Lack of tests. If a class doesnât have a unit test (yegor256/takes#43) or the existing test doesnât cover some critical aspects of the class (yegor256/cactoos#375), itâs a bug.
Lack of documentation. If, say, a Javadoc block for a class does not clearly explain to you how to use the class, or the entire module is not documented well (yegor256/takes#790), itâs a bug.
Suboptimal implementation. If a piece of code doesnât look good to you, and you think it can be refactored to look better, itâs a bug.
Design inconsistency. If the design doesnât look logical to you (yegor256/cactoos#436) and you know how it can be improved, itâs a bug.
Naming is weird. If class, variable or package names donât look consistent and obvious to you, and you know how they can be fixed (yegor256/cactoos#274), itâs a bug.
Unstable test. If a unit test fails sporadically (yegor256/takes#506) or doesnât work in some particular environment (yegor256/jpeek#151), itâs a bug.
Also, itâs worth mentioning that minor, cosmetic, or poorly formulated bug reports will most likely be rejected or not paid for. If you want us to pay for your bug reports, make sure they sound right, in order to help us move the project forward to a better state.
