In August 1998, we had just shipped Visual Studio 6.0, and I was sitting in a room with my peers when the guy in charge of all of Visual Studio, having recently been poached from Borland for what was rumored to be a 7 figure payout, told the room that we would be shipping Visual Studio 7.0, which later came to be known as Visual Studio .Net, in less than 12 months.
Yes, I said that right. In less than 12 months, a completely new runtime using 1 completely new language (C#) and 1 re-worked language (VB.Net) would be running in a brand new, consolidated IDE. Previous versions of Visual Studio might have looked like they were in the same IDE, but they weren’t. There was a core framework in place for some products, but the older guard products were still running in a shell that was primarily developed for them, but made to look like the standard IDE.
When our new leader showed us the schedule, it was met with a few gasps, a few laughs, and a lot of stunned silence at just how patently absurd it all was. The runtime at that point was a mess, and not due to be consumable for months. Much of the other work hadn’t even started yet, and the team was just coming off of a ship cycle where they had released 2 versions in the previous 18 months. 1 row up for me, a manager I recognized pretended to light up an imaginary joint, then took a hit and offered to pass it down the row. When someone looked at him puzzled, he said “You should have some of what they’re having.”
Realistically, 18-24 months made a lot of sense. We were about 6 months away from the team having worked on the .Net runtime nearly a year, and around that time it was starting to become useful. The IDE and all of the associated libraries, wizards, and controls couldn’t really start until after that milestone was achieved, so another 12-18 months to sort those out would have been right on par with previous versions of Visual Studio. But new leadership, particular when a new leader just came in with a high price tag, wants to flex some muscle, so we got a schedule that was impossible.
The result? Visual Studio .Net shipped in late 2001, nearly 2.5 years late on a 12 month project. And it wasn’t that it needed nearly 4 years to ship, it’s that the overly aggressive schedule up front caused all sorts of problems long term. No one wanted to admit that the schedule was that wrong, and so there were a series of “micro-slips”, rather than accurately judging things again and giving the project the extra 6-12 months that it really needed. And yes, I’m overgeneralizing to an extent here, but this was a major problem on the macro level.
Want to know something else crazy? Windows had made the same mistake from 1996-1999, during the project that eventually became Windows 2000. But that’s a story for another day….