My experience & approach
I've learned the ropes of combat design when working at SUPERHOT and polished my craft working on Harpagun. I've worked on enemies, weapons, arenas, boss encounters and core combat systems like HP & ammo.
I've developed an apporach that starts with the basic tools available to the player in combat. Based on that I like to create obstacles and enemies that allow the player to utilize this toolkit in different ways. If a player has a knife - what kind of enemy could encourage the player to use it? When each enemy has to be 'solved' in a unique manner, the gameplay becomes rich and dynamic.
On top of that making the enemies work as difficulty layers that leave less & less room for mistakes with each kind you add to an encounter allow for complex situations without overloading the battlefield.
Weapon Design
In my mind weapons and abilities are about how they make you feel when using them. They need to be exciting first, you can balance them later on.
For a simple weapon like a machine gun with a limited ammo I've started with how long do I want to be able to shoot before I run out of ammo and what is a fire rate that makes me feel powerful and has a good sound. Once that was in lace it was easy to balance the rest of the numbers.
Enemy Design
Enemies for me are a reflection of players abilities, they exist so the player can test his skill.
Unique and memorable is how I like to design them. Once in the fray of the fight players need to be able to recognize the most imminent danger and react to it.
As for their balance, I like to think in terms of 'hits to kill' and how will that evolve over time. It's good to have even the weakest enemies take a few hits at the beginning so that later the player can feel the power spike one-shooting them!
In terms of design documentation for enemies I like to be visual, I sketch and animate to test out silhouettes, weak points, attack patterns and other ideas. This helps tremendously with further implementation with other teams.
One enemy I designed was walking explosive. He was dangerous in chaotic situations, but for the skilled player he became a tactical weapon.
Environment
To let the combat shine I use my level design skills to set up situations that surprise the player but also give him interesting ways to overcome challenges.
Covers, power-ups, spawn timings, environmental weapons, pathing, paths of entry/exit are all fun to play with. There is no golden rule here, just a lot of small ones, but I let my intuition guide these decisions.
Systems
Resources, HP, movement, spawning, cooldowns, recovery, enemy behaviors, aim-assists, etc. shape the way the combat will look like in the end. If players take a lot of damage easily they will play cautiously. If enemies have a hard time hitting a running target the game will be skewed towards movement.
For designing any of these systems I start with the design pillars - what feeling do we want the combat to evoke?
In Harpagun we designed a special Predator mode, that came into play when players had low HP. It highlighted enemies and desaturated the environments. Enemies that would drop HP and ammo pickups were signposted. This system was put in place to support the player and to produce near death moments that generated excitement.