The best topwater time for me is post spawn and right through the summer. Buzzbaits work alright when the bass are a bit agressive, but I've found that there are a couple of baits in certain situations that seem to produce consistantly for me.
The most productive in my mind is the Rapala Skitter Pop. They make a couple different sizes, I prefer the smallest and the next size up, which I think is 3/16 and 1/4... but might be 1/4 and 3/8. I use the pearl/shad color mostly if I recall with largemouths and use either that or a clown/charteuse based color up north for smallmouth. I've had to replace the hooks several times, and it looks like I've been pike fishing with it its got so many scratches on its back from big bass gumming it. It does have trebles, so you need to fish it away from weed lines a bit or you'll bring in all sorts of trash. Its also a favorite bait of mine for stripers when they run up from the bay in the spring and get in the rapids around Richmond.
Another bait that I think is awesome in the dog days of summer is the Jitterbug. Its old as monofilament line, and it flat out works. Its simple to retrieve, and the bass just demolish it. On still mornings and evenings its easy to see where you have cast to already, because it leaves a trail of bubbles. Great for prospecting.
There are two baits that I use in thick crud, which where I fish is mostly lily pads. The fish love to get up under them during the middle of the day, and even in low light times. One is the scum frog. Its almost impossible to hang up on something even if you try. The only catch is you have to let the fish take it good. The hooks are right up againest that firm rubber frog body and the fish has to have bitten down on it for you to hook him. A good two or three count is a MUST. I look for open holes and cast just beyond them... lots of times I'll even try to flip it onto a pad and work it out towards the opening. Lots of times you are fishing and opening no larger than a basketball... which seems to fit the size of the mouth of some of the bass I've caught on it.
In those same conditions as above, I have found an unconventional topwater bait to work even better than the scum frog. I take a long shank worm hook and a 3 or 4" tube in a dark color like smoke or pumpkin seed and run the hook so the bend is just outside the tube. Basically the shank runs down the middle of the tube itself. Only trick is making it float everytime. You need to squeeze the water out after each cast. You can hang this bait up on pads, but its still fairly weedless and I have a lot more hook ups than with the frog, where a good day will have you hooking up one in four. Its more like 3 out of 4 with the tube. I've even tried putting expandable ear plugs inside the tubes, and that worked ok. With a bit of practice you can make that tube stay on top and walk the dog almost like a zara spook. Its very very subtle, works great in the shallows, and is flat out awesome on inactive fish and active fish alike.
The key to topwater tackle is having a fairly stiff rod, with a bit of a lively tip. If you are fishing in the thick stuff, I'd go with a medium heavy and at least 12# test. I tend to err on the side of light line... never been much on anything over 14# for bass.
But the real #1 secret is patience and presentation. Its a bit tough for a fish to hit a bait on the surface, so you have to make it easy on him. Sometimes they will swirl at it, you might have to let them see it a couple times. When the fish hits the bait, most people want to immediately set the hook... I always wait until I feel the fish pulling the bait away or down under the water before letting him have it. Sometimes they will hit it, pull it under but just as a sort of exploratory bite. If you set the hook, you'll pull it away from the fish, and probably catch it in the face as it whips back past you. Leave it sit, twitch it a time or two, and most often the fish will smash it. Sometimes there is more than one fish, and after one nibbles or swirls, another will get competitive and slam it. Gotta leave it in the strike zone.