A common mistake is turning on too many rules without considering developer workflow and noise. If the profile becomes overly strict or noisy, teams start ignoring issues and the control loses effectiveness. Another mistake is copying a built-in profile and then failing to maintain it, which leaves the ruleset drifting away from current best practice over time.
Where quality profile customisation goes wrong
Teams usually get this wrong in two ways: they optimize for coverage instead of signal, and they treat the profile as a one-time setup instead of a maintained decision. A custom profile should reflect how the language is used in that codebase, the team’s tolerance for false positives, and the rules that actually drive better fixes. If those choices are disconnected, the profile becomes noise rather than guidance.
The most common failure is overfitting the profile to a theoretical standard without checking whether developers can act on the findings. A rule that is technically valid but repeatedly irrelevant creates alert fatigue, and once that happens the team stops trusting the profile. The better test is whether each enabled rule improves code quality in a way the team can sustain.
Another mistake is copying a built-in profile as a starting point and then never revisiting it. Language defaults, framework usage, and team conventions change over time, so a profile that was reasonable six months ago can become stale. When that happens, teams keep enforcing old assumptions while missing new patterns that matter more in the current codebase.
Why too much strictness usually makes the profile weaker
Customisation often fails because teams assume more rules automatically means better quality. In practice, a dense profile can hide the issues that really need attention, especially when developers are flooded with low-value findings. That changes the profile from a prioritisation tool into a compliance exercise, which is usually when adoption starts to drop.
Noise is not just a usability problem; it changes behaviour. When engineers learn that most findings are ignorable, they begin to skim all findings, including the important ones. A quality profile only works when the team can distinguish genuinely actionable issues from style or preference-based checks, and when the profile supports that distinction consistently.
Built-in profiles also tend to be generic by design, which means they need context before they are useful. A rule that matters in one stack or repository may be unnecessary in another because of different frameworks, architecture patterns, or code ownership. The mistake is not customising enough, but customising without a clear standard for what should remain on, what should be tuned, and what should be removed.
What good customisation looks like over time
Effective profile management is iterative. Teams should review whether a rule still produces useful findings, whether it is being waived too often, and whether it aligns with current coding patterns. That review needs to happen often enough that the profile stays current, but not so often that every team makes ad hoc edits without a clear reason.
The best profiles are usually boring in a good way: they are narrow enough to be trusted, stable enough to be understood, and flexible enough to evolve. Teams should prefer a smaller set of high-value rules over a long list of marginal ones, especially when the codebase already has mature review practices. The goal is not to maximize rule count, but to improve the quality of decisions developers make while coding and reviewing.
Profiling also works best when there is explicit ownership. Someone has to decide which rules are mandatory, which are guidance, and which are temporary exceptions. Without ownership, the profile drifts by accumulation, and that drift is hard to reverse because no one wants to remove a rule once it has been added.
Practitioner Guidance
What to prioritize: Start by identifying the few rules that catch high-value defects in your codebase and produce findings developers actually fix. If a rule mostly generates discussion or waivers, it is a candidate for tuning, scoping, or removal.
What to verify: Check the profile against recent pull requests and known defects, not just against the default vendor or tool preset. You want evidence that the enabled rules reflect current language usage, framework conventions, and team workflow rather than inherited assumptions.
Common mistake: Teams often treat customisation as a one-time hardening step, when it is really a lifecycle decision. A profile that is not reviewed and pruned will usually drift toward either noise or blind spots.
Practitioner takeaway: The best custom profile is the one the team will keep using, which means it must stay relevant, explainable, and maintainable as the codebase and delivery process change.
Related resources from NHI Mgmt Group
- What do security teams get wrong when they try to fix log quality inside the SIEM?
- What do organisations get wrong when they try to impose standard cybersecurity language on nonprofit teams?
- What do teams get wrong when they rely on large language model testing without human oversight?
- What do teams get wrong when they rely on generic accuracy scores for AI quality?