Usability is done during and after Sprint 0 on a regular basis and is usually done when certain features need to be tested by real world customers. User testing should be a integral part of the entire development process throughout the entire release, not just at certain times during design, developer, or QA sprints. It is essential to get feedback at the early stages of design and development for effeciency - you could say the Agile process was invented with customer facing criticism in mind. Typically after each sprint the working feature is put in front of customers to gage their reaction. If it is bad, you cycle back to do a better revision of the feature in the current or next sprint, if there aren't enough resources to redo it immediately.
In every company I have worked for, not enough usability testing is done for the product. In my mind the development process would be:
Unfortunately that is rarely the case. In an effort to reach or surpass feature parity with competitors, not enough design time or user testing time is scheduled. The biggest mistake software developers make in most cases is thinking they need to have more features than the others, or be the first to market, when what they really need are BETTER features than the others. I don't even need to prove that point - it is so obvious with the success of Apple and Google, and even Amazon. (Sorry Microsoft, you don't make the cut.) Apple was really late to the game in music players but took over the market with the best device. Google Apps weren't even around when MS Office dominated the office software space, but now Google is a real challenge to Microsoft's dominance.
There are also a lot of online solutions for usability testing as well, such as Loop 11, Usabilla, UserTesting.com and many more. I've found the best method for testing how easy your app is to use is to ask people - real live customers. There just isn't any subsitute for quietly sitting and taking notes as someone "thinks out loud" and performs a task scenario. Some of the tools provide an online way to do this that takes you out of the equation, and given enough of a sample it's still very valuable data, but seeing a persons reaction live and not on camera is priceless.
I've set up two usabilty labs and the first thing you have to do is put a cap on your ego - your hard work is going to be criticized and it can be difficult to take at first. It took me many years to come to grips with UX Design's most important aspect: different people will digest your design differently. One participant in a focus group might praise a menu system while the next finds it baffling. In cases like that you have to realize that there is no "perfect" design, because someone somewhere will hate it, really hate it, even if everyone else loves it. This website is a perfect example: some people will find it to utilitarian, others will like it because it is. I created it as a counterpoint to the countless bouncy parallax full screen video websites that are becoming the norm. I just don't like that approach to conveying information.