From a database recoverability, business continuity etc., you need a to have the DB in archivelog mode and use either traditional hot/cold and archivelog backups OR Rman online/offline + archivelog backups. This will be backup you use if anything gets corrupted in the database structure (blocks, files, etc.,) or you loose files. This guarantees that you can restore the file/db from the backup and roll-forward and recover the database fully without any loss of data.
In addition to this, its good practice to have logical backups. For databases that hosts multiple application, this is a good practices for :
1. Recovering from any user errors (users messing up data by fat-fingering)
2. Recovering any code/privileges/structures (stored proc, privs, object structures) if code promotion goes bad.
3. use the logical backup to recover objects/schema's in non-prod environments etc,,
Its ours standard practice to have logical backup everyday and rman backup weekly with archivelog backups (based on FS full threshold OR no. of archives cut). We do this for ALL db's that are less than 200-300GB in size. Any db with size higher than that, we skip data exports and take only empty exports to capture only structure/code/privs.