Patience. I'm trying to be more patient in my street photography and it's the key to getting better street images I believe. In portrait or fashion photography, you're creating the image. In landscape and street photography, you're usually finding the image and, more often than not, waiting for it. Except that in landscape photography you know when the sun is going to rise or set, and when the lighting is likely to be good. In street photography, you don't know when the right person will walk past the right spot, wearing the right colours. Or even what that person will look like until they appear.
Say you're at an elevated point such as a rooftop. You look down and there's a cool view of a square below. It's raining so there are a few umbrellas around, but they're all black. If you don't have time, you take the shot and move on. If you can be patient, maybe a red umbrella will appear, or the black umbrellas will happen to form an interesting pattern. The chances of it being a great image the moment you arrive are low. Start to wait around, take you time, observe, and your odds start to increase.
For the image on the left below, I'd noticed the woman reading by the river. I liked her hat. It could make a decent image with some negative space, but I thought I'd wait to see if I could include a passer-by too. I waited, tried a few more shots, then noticed the skater in the distance. So I set up the shot and waited for the skater to come into frame for the single shot.
It's often frustrating. I regularly see an image but it's gone before I have chance to take the shot. I'm too slow, but that's ok, there will be others. For a portrait session I might take about 300 photos in an hour. I might process and show 10% of those. On the street I might take 10-20 photos in an hour. Again, roughly 10% I'll like and want to work on.
To me, street photography is slow, frustrating, time-consuming, challenging, difficult, great fun and incredibly rewarding. I should do it more often.