This is only the tip of the iceberg, but a good place for you to start if you have no idea is to define what good balance means to you, and how you want your battles to be like. You are going to need Excel for this if you really want to understand the process. Here's an example of (a tiny part of) my workflow:
Before starting, you should know:
A. What kind of number scale you are using (do you want big numbers? small numbers?)
B. At what pace you expect/design players to level up at
1. How you envision the enemy encounter
Regardless of whether you are using DTB/ATB/CTB, how many turns (and character actions) do you envision a regular/mid-boss/boss battle to be? (One step above this would be to think about how long (actual time-wise) you want the encounter to be, but that's going too off track). Let's say you are designing a boss battle and you think 10 turns (assuming a party of 4, so 40 actions) is what you want to aim for.
2. How players will need to split their resources (turns)
With the expectation that this battle will take 10 turns, out of the 40 actions, how much should be dedicated to healing? If the default party composition is Tank/Healer/DPS-Mage/DPS-Ranged, then for argument's sake let's say the healer is expected to heal throughout the battle. That means 10/40 actions are for healing, 30/40 are for attacking
3. Anticipating damage dealt/received
You need to decide how strong each of your classes are relative to each other. That is, if we use 100 as a baseline for your DPS Mage, what would the tank's output be? the ranged? Tanks should probably be weaker, so maybe we could assign a value of 75. Maybe your ranged DPS is better at dealing single-target damage than your mage, so we might be able to put him at 115. Since we expect the healer to heal throughout the entire encounter, we can ignore that. Since you now have the total party damage output figured out (100 + 75 + 115 = 290) and the contributing proportions figured out, you can extrapolate the actual damage numbers based on what kind of scale you are using, and where you expect this encounter to be in your game.
For example, if this is a late-game boss and you like big numbers, maybe the 290 can translate into 29000, so that each turn your tank is doing 7,500 damage on average, your mage 10,000, and your ranged 11,500. In which case, you now also have a rough idea of the boss's HP (290,000) because you want the battle to last 10 turns.
4. Figuring your stats (at this point) out based on your damage formula
With the expected damage numbers figured out, you just need to plug them into your damage formula and work backwards to figure out what the corresponding stats should be. If you were using a simple linear formula, where damage is a.atk * 10, then you'll know that your tank will need a ATK of 750, your mage 1000, and your DPS 1150 for this particular point in your game.
5. Repeat 1 - 4 for numerous boss encounters/points in your game
Once you have at least 2 points, you can start drawing lines. If boss battle A require your tank to have an ATK of 750, and the next one requires an ATK of 800, then you'll know that between Boss A and Boss B, you need to let your players earn those 50 additional points of ATK. You can obviously do this for items, but if we were looking only at stat growth, then you have to think about how many levels you expect/design for the average player to gain between these 2 boss fights. If the average player is expected/designed to gain 3 levels, and there are no equipment upgrades, then you'll know that you need to divide the 50 ATK points into 3 levels, which would make your growth equal 16.7 ATK/level for the tank if growth is linear.
---
This should give you a VERY ROUGH idea of how you can approach this problem. Bear in mind that this is only a bare-bones framework. Further fine-tuning and balancing will probably require non-linear functions and models, which is where Excel comes in handy. If you want to give players the feeling that they are getting stronger (with bigger numbers), but at the same time making battles harder, then you DEFINITELY will need non-linear models.
Lastly, trial and error is a good way to figure things out too. Take some pre-existing damage formula / stat growth tables, make an Excel sheet with those, and then make data tables and play around with numbers so that you get a feel for how different models work and why they work.
Hope this helps. =)