Speed is really a misnomer. Your upload and download "speed" really is bandwidth. Bandwidth is the amount of data you can move per time period (second normally) on AVERAGE. Let's look at 2 situations:
1. Every .1 second my connection moves 1 megabit of data and it's very consistent.
2. In 1 second my connection move 100 megabits of data, but then for the next 9 seconds it does nothing. Repeat.
In both situations I have a 10 megabits/second connection, but number 1 would be good for gaming and number 2 would suck.
What upload do you need for good gaming ... 200-400 kilobits/second (generally ... there are some extreme games out there) consistently. The higher bandwidth you pay for the more likely you are to get that little consistent slice ... well, sometimes.
What causes lag? Data being delaying while traveling from A to B. Why would data be delayed?
1. Congestion ... more data trying to get from A to B than the equipment can handle. Generally, the excess data is stored (buffered) until the equipment can finally deal with it. It's kinda light a red light at in intersection. This can happen on your network when someone tries to upload their 20 best selfies while your gaming or it can happen out on the internet.
2. Packet loss ... data is lost because it is corrupted, sent to the wrong place, or equipment is so overwhelmed that is just starts ignoring new incoming data.
Hope this helps.