'Firm' as an adjective can mean strong, solid, steady, or unyielding. In this sense, 'strong' is an appropriate synonym conveying the idea of something robust and dependable. 'Rough' and 'Shaky' suggest instability. 'Soft' is an antonym, not a synonym, in this context.