I've had interviews that take months, but I don't really see the value of this. Why do you need 6 people to make a decision? Why do you need to ask them technical questions when you can ask for their college results? Why do you need to test them for skills they'll use maybe once a year?
I'm not talking about rock stars.
Anyway, what takes more time is actually getting the interview, and this depends on the value your company adds to collaborators. For example, if you're a company with great reputation, salaries, good benefits, interesting projects, you will get good candidates in line. But if your company isn't really "outstanding", finding someone that's truly good will take a lot of effort. Bear in mind software developers have many job offers, in a weekly basis.
This is why it's so important to build an employers brand!!
* specificity of targeting
* commonality of targeted skills in the market place
* competition for such candidates
Confusing something good for those factors is half the reason many companies stop reading resumes and make poor hiring decisions. A poor hiring decision is not just someone unqualified but also people who are well qualified yet not what you expect or need.
In my case as a JavaScript developer many companies knowingly ship the same kinds of crappy software over and over because they leverage their hiring risks away from writing software to tooling popular tools/frameworks.
Whenever I hear companies struggle with hiring at least a lot of the time the reason is that there are better jobs available in the same city for more money.
Whenever I've been between jobs I've just googled "Sysadmin $location", and tend to find a new position within 2-4 weeks. But if there are five adverts and two of them have low salaries I ignore them.
Shift the deadline
Pay contractors
Sacrifice quality by either working overtime or reducing standards
Depending on organization the hiring process can be fast and effective.