---WARNING: HERE THERE BE PERSONAL OPINION DRAGONS---
I'll start with this: we're a software development company. More precisely, we're a video game developer. Anything and everything can change in the software development world, for reasons that are often impossible to predict ahead of time. As a result, we're hesitant to 100% commit to anything. We've learned that, no matter how confident we are at any given point, there's always a very real chance that there's something we haven't thought of that makes what we want to do impossible.
The whole "weeks, not months" thing makes an easy example. At the time that was said, we firmly believed that it would only take us a few weeks to polish off Tanaan and fix a few areas we knew were likely to have some bugs, and then we'd roll out the flying patch. It's easy enough, right? We just change a few 0's to 1's and it's all done.
Then we started finding a lot more bugs and glitches than we expected. We found tiny pockets of the world that weren't properly obeying the flight rules, and would drop players to their deaths if you happened to fly through them. We found issues with certain mounts and class abilities that were caused by hotfixes to resolve exploits, which resulted in those mounts and abilities not working. We found situations in which if you fly into your Garrison at juuuuust the right angle, you get disconnected and can't get back onto your character for a good half hour or so.
Finding those bugs, implementing fixes, testing those fixes, finding more bugs (sometimes caused by those fixes)... it all added up to a lot more work being needed to actually enable flying than we had originally expected. And as a result, what we originally thought would only take a few weeks ended up taking a couple months.
Now, don't get me wrong: I'm not making excuses here. And I don't at all blame the players who are frustrated and upset that we didn't hit the timeline we originally stated. Honestly, we probably should never have said that it would only take a few weeks. That was clearly a mistake, and I apologize for it.
But that should hopefully give you an idea of why -- ESPECIALLY given the missteps we've made in the recent past -- we simply can't 100% guarantee that nothing will go wrong between now and September 1st. Truth is, we're more confident in this release date than we usually are this far in advance of a patch. That's why we felt that we could give a date at all.
There's just always -- ALWAYS -- a chance that something can go wrong at the last minute. We could, say, be finishing the fixes for the last couple of dismount bugs on the Saturday before release, and when we compile the final build, all of a sudden activating your flying mount teleports you to the graveyard in Westfall and deletes the contents of your inventory. Is that likely? Not really, no. But it's possible, so we need to make sure you're aware that things can change, just in case something like that does happen.
There are alternatives, of course. We could just not give a date until we know for 100% certain, which is our usual strategy. Like I said, we feel a little more confident in this date than usual, so we thought it was okay to share it.
The other option would have been to try to have the patch ready to go by the 1st, but not actually plan to release it until a week or so later. That would let us announce a date we'd be extremely confident in, but we'd essentially be delaying the release of flight even further, and we definitely don't want to do that. So, we gave a date that we feel pretty good about, with the reminder that we won't be able to release if something catastrophic happens.
This ended up being a giant wall of text, but I'll leave it with this: I know it's super frustrating when it feels like we're not being as open as we possibly could be. And I know it's equally frustrating when it seems like we're completely unwilling to commit to anything concrete. I spent 8 years as a player before I became an employee. I know exactly how it feels.
I just also know that it's better to not expect much and be pleasantly surprised, than to feel like a promise was broken. At least that's my opinion.
Regarding the transition from 6.2.1 to 6.2.2: we actually had two potential plans that were dependent on how things fell in terms of development timelines, which is why some of what we've said seems contradictory.
The core of it comes from our PTR testing process, and the fact that we are blessed with some extremely savvy fansite operators who are capable of combing through patch data, finding nuggets of information, and drawing educated conclusions based on that information. If we'd put, say, the Illidan-themed Murloc pet into the PTR data before Legion was announced, that would have been a pretty big tip-off. At the same time, we needed to get PTR testing for flight underway as quickly as possible, so that we could make sure we found all those silly obnoxious bugs I mentioned in my earlier post.
So, our strategy was to create two separate versions of the patch. 6.2.1 would have all of the relevant patch features (including flight), and 6.2.2 would have everything in 6.2.1 plus the upcoming stuff that the art team has been working on. In the unlikely event that everything went EXTREMELY smoothly with flight, we'd have the option to go ahead and push out 6.2.1, and 6.2.2 would come separately. If not, we'd just carry on with 6.2.2, which was basically the same patch plus some stuff that other parts of the WoW development team had been working on. As you're all aware, things did not go extremely smoothly with flight, so the latter option was what ended up happening.
I'll make a silly analogy. Think of the patch like a bus. This bus is waiting for a high-profile dignitary (flying) to finish up some negotiations, and as soon as she's done with those, she needs to leave to get to another conference. That bus will not leave without the dignitary, and it will leave immediately once she's on board.
That said, the bus is also capable of taking on other passengers (who for the sake of the analogy we'll assume are headed to the same place). The longer the dignitary's negotiations take, the more opportunity there is for other passengers to hitch a ride. The other passengers, in this case, are things like Mercenary Mode or the new pets and mounts. If the dignitary had finished unexpectedly quickly, there would be another bus coming by later that could take those passengers, but since she hasn't, the bus company decides to just take one trip instead of two. Make sense?
One other note: 6.2.1 was briefly labelled as a "Release Candidate" on the PTR prior to the switch to 6.2.2. "Release Candidate" is an internal term we use to basically mean "we think we might have fixed everything." As it turns out, we hadn't. In this case, if we hadn't had the transition to 6.2.2, 6.2.1 would have just stayed as "Release Candidate" until September 1st. But since we had this weird extra "hide your kids" strategy going on with the Legion stuff, the title was switched back as part of the changeover. I completely understand why that looks like "Blizzard delayed the patch to add some pets" to those who aren't familiar with our internal workings.
Regarding "you should have designed the world with flight from the beginning!" We actually did, we just had to do a lot more development after that, and some of that stuff broke flying in ways we didn't fully anticipate.
For example, when Warlords released, our servers were unable to handle the massive numbers of players trying to log into the game. Our server technicians pulled some absolutely crazy magic to dramatically increase the number of players who could be on a given server at one time. That solved the load issues, but ended up creating a large number of the dismount/de-instancing issues that players who have been testing flight on the PTR will have noticed.
Another example: a few weeks later, some exploits surfaced that were allowing certain players to fly in clearly unintended ways (such as Druids being able to leave Ashran with the Flight Form book still active). We hotfixed those exploits as they came up, but some of those hotfixes broke flying in Draenor in ways that continued even with flying properly enabled.
Obviously, we knew that both of those things were likely to cause some issues, we just severely underestimated how widespread (and difficult to resolve) those issues would be. And we didn't want to delay rolling out those fixes, because they had major implications for the live game (especially the server stuff), where no one was supposed to be able to fly at the time anyway.
Given the choice between letting thousands more people actually play the game and potentially breaking something that (at the time) we weren't sure was even going to matter later, it was an easy decision. But even easy decisions have consequences, and now we're having to deal with those in 6.2.1/6.2.2.