Jason:
When it comes to selecting a smartroam value, the smartroam to "RSSI" table that you can find here:
https://support.ruckuswireless.com/answers/000002277may help.
You should be able to view the "RSSI" values that your Ruckus sees for your client by looking at the GUI.
You may want to select a smartroam value based on what the "RSSI" value is at the point you'd like a roaming event to occur.
note: What Ruckus calls RSSI is really SNR.
note: (AFAIK) Smartroam will only "kick" a client when it transitions from an "RSSI" that's higher than your smartroam value to an "RSSI" that's lower than your smartroam value.
This is to "encourage" the client to associate w/ another AP. If it re-associates w/ the original AP and the RSSI stays lower than the smartroam value, your client won't get another "kick".
note: reported "RSSI" values naturally fluctuate, even when a client remains stationary.
If your client happens to be in a location where its "RSSI" is near the smartroam threshold, it's likely to get "kicked" repeatedly. (if it doesn't roam to another AP)
If your client is near the smartroam threshold of the 2 nearest Ruckus APs, your client is likely to get kicked back-and-forth between APs.
This is bad for connectivity and may cause the client to give up on the idea of using WiFi.
note: At least w/ zondedirectors, the smartroam value is configurable on a per-WLAN basis.
It may be possible to configure a pair of WLANS, each w/ different smartroam values so that your client devices can manually choose the SSID that give them the best roaming behavior.
Or.. You can use the Ruckus "When all else fails" technique of assigning a unique SSID to each AP, so that you can manually select the SSID of the nearest AP.
In some cases, manually selecting AP-unique SSIDs may give you a more reliable experience.
This is essentially giving up on automatic roaming behavior but sometimes it's necessary.
At least, this will be the case until Ruckus comes up w/ the idea of having their APs communicate w/ each other to determine when to "kick" a client, instead of depending on a fixed smartroam threshold.