I worked on Vista in the WMDRM team. I can tell you in a lot fewer words what was wrong with Longhorn. The core? Process. Layers and layers of process, feifdoms competing for our time and pushing us to use extra layers of tools, all of them put into the process before they were quite ready. We were lucky to get four hours of work in a 70 hour week.
I would walk by a closed doorway and hear someone wracking with sobs, frustrated beyond endurance by having to do the same things over and over because a network had burped or someone had forgotten to renew a certificate.
Entire hallways resigned, for some reason more QAs then developers. By the time I threw in the towel I had had at least one nervous breakdown and I was starting to imagine I could hear peoples’ thoughts.
But the worst part was, and any of you who were there can verify this,
A four hour slog after many hours in a glacial queue. Want to know why Vista/:Longhorn was so late and why the released version could suck a golf ball through ten meters of garden hose? That was it right there.
One time I volunteered to improve code coverage metrics, and I still had to do my foreground work. I must have put in over 80 hours that week and finally at 3AM Sunday morning with the work due in five hours, I submitted it to wmcheckin and crawled home. I did it. Thank god.
When I came in that morning I found that my checkin had failed because, yup, some network burp. My resubmission with no code changes went through and passed, but as far as my manager was concerned I had missed the deadline as surely as if I hadn’t done any work at all.
I didn’t care anymore after that.
When Brian Valentine told us to use Vista instead of XP as our development machines we nearly burned the building down. No. Freaking. Way. we were using this trash.
I resigned. Two weeks later I was back as a contractor in Windows mobile with a great manager and a command line checkin with no crap, and had a great year and made tons of money.