I don't know what carrier model you've got, but I've got the Verizon model and it was a pain. I installed nearly every driver, setup ADB, ran the program and... nothing. For the Verizon model you had to switch the "PC connection" toggle from Ethernet to Modem over and over again until it finally found the device. In the meantime as I was trying to do this, the phone was acting as if it was being unplugged and then re-plugged in over and over again very quickly. This caused it to continuously vibrate and cause the message prompt for what I'd like the PC connection to be to popup non-stop making it nearly impossible to select a PC connection mode.
That combined with it successfully completing half the rooting process and then failing at the second half (after you replug it in once you've disabled/re-enabled) was extremely annoying and took me a while to figure out why it wasn't working. The reason was because you first need to initially have the phone plugged in with the PC connection mode set to Ethernet. Once you've completed the first half and you plug it back in to finish the second half, you can't just plug it back in in Ethernet mode. The phone seems to "forget" or ignore that its still in the Ethernet PC connection mode, so when you plug it back in and continue to the next step, it reports an error. To correct this, you have to change the mode for the second half from Ethernet to Modem. Then it will be able to find the device again and complete the rest.
I don't know if it was just me who had this problem (although it appears that way since no one on XDA reported it and a Google search turned up no results), but it was very time consuming trying to figure out what the problem was. Between the time it took to try to find the reason behind the failure to gain root, switching between OS X and my bootcamp Windows partition, and uninstalling and re-setting up ADB on both Windows and OS X, I probably spent at least 6 hours if not more just trying to gain root. It was a major pain in the ass.
In hindsight, the issue was a simple problem with the software on the phone itself, but at the time, I had no idea what the cause of the issue was. The only reason I figured out how to finally get past the issue was because I was messing with the different modes on the phone and noticed a pattern that caused it to first be identified by ADB, then unidentified, then re-identified by toggling specific modes. And it's not like I'm unexperienced either, as I've been rooting and ROMing Android phones since 2009. If an Android user that was new to rooting had this kind of experience they probably would've just given up.