For small spaces it's important to go vertical and the same applies to small gardens. When space is at a minimum use vertical tiered planters to maximize a small balcony or patio and create a lush corner of plants and flowers:
Sure you can buy one of these planters (here and here) or you can make your own version by creating some shelving outdoors with some cinder blocks and sealed plywood planks. Place pots atop or go all in and build one of these planters yourself (bonus points if anyone can break it down and tell all of us how). Another idea we saw was this great use of stacking old crates to take advantage of some vertical space in a tiny spot. Also if you have an issue with privacy you can plant bamboo in your top tier and it will grow to become a screen.
Take it one step further and try out a living wall (more examples here and here.)