"Former OS X developer here. I'd say the biggest change in the development methodology happened when Bertrand Serlet was replaced with Craig Federighi. With Bertrand, we would move in giant monolithic releases where every group would just dump in whatever they had ready and the whole thing would get released with nightly builds. With SnowLeopard in particular, I remember three dozen releases in a row where Xcode was unusable due to obj-c garbage collection issues. Random stuff you didn't expect like CoreGraphics would have showstopper issues and then we'd report it and it would get fixed by the next week. This resulted in extremely late releases that had a ton of bugs that we piled patches onto as time went on. Craig moved the organization onto a sprint system, where we would develop new features for 2 weeks and then spend a week fixing bugs. After 10 or 12 or 16 of these cycles, we would deem it ready and ship it out. I felt this produced more stable but more conservative software. It seemed like giant rewrites and massive features would be very difficult to introduce and if they did get done, wouldn't happen until two thirds or so into the release cycle. On the other hand, Craig has consistently been able to release on time with most of the features promised. I was only there up to the release of Lion (the first Craig release), so I don't know how updates and patches worked from then on. Maybe they're worse now. But I've been using OS X all this time, and honestly I don't think it's any worse than before. What has changed is that releases and features happen more often. Tiger and Leopard had a good 2 years to mature and get patches while their delayed successors missed target dates. In the meantime they stagnated with ancient unix tools, safari build, QuickTime frameworks, graphics drivers etc. They felt stable because they were just old, sort of like Debian stable. Meanwhile, the development versions of Leopard and Snow Leopard (the two I spent most of my career at Apple developing) were downright horrible and unreleasable. Each of those releases went gold and had an almost immediate .1 release to fix glaring issues. It's just that you remember them better because they had a longer history as a stable legacy OS than the modern versions."
"current apple engineer... the sprint (milestone) development system is still in place... it's not the problem though, it's the problem is the focus on new useless [imo] features at the expense of core functionality and quality hope marco, geoff and others keep writing these articles so that eventually tim or someone sees one and shakes things up. pressure from the bottom has not worked so far"
Take with a grain of salt because this is the internet.
Some interesting comments about this and the Geoff Wozniak article found here: https://news.ycombinator.com/item?id=8836734
Highlights:
Take with a grain of salt because this is the internet.