When writing RTL, you need to consider what style of code will result in high test coverage. For example, an internal async reset make reduce coverage, unless you bypass it during scan mode. Likewise, if you are adding clock gating by hand in to the RTL, you will want to make sure the RTL enables the clock gater during scan shift. Avoid coding on-chip tri-state buses. Etc, etc. Look for some coding guidelines or in a lint rule deck for a more extensive list.