I worked at Apple on Mac OS X until 2008. For QA, Bertrand believed in a lightweight touch, with dedicated QA staffing only at the top of the stack (plus a few key places like the filesystem), with the idea that any bugs will bubble up and be found through real-world usage. Most QA was informal, through heavy dogfooding.
You felt a real sense of ownership to the thing that you worked on. You worked hard and fixed bugs because it felt like it mattered, because you thought about how e.g. your mom would end up using the product, and also Steve Jobs would see it, so it had to be great. Also, teams were small. Something would involve only 1-2 people, and then we would look over at Redmond and they'd have dozens of people working on the same thing. The need-to-know secrecy was not just for PR value; it helped keep circles of communication tight, cutting out a lot of noise, so you could just focus. The organization was stable (and relatively flat, around 5 levels from junior engineer to SJ). I think in my 9 years or so there, there were no major reorgs. Avie phased himself out and retired, and Bertrand moved up. The only major disruption was when the iPhone project happened.
Release cycles were annual. Throughout most of the release cycle, it was pretty free up to each team and engineer to decide what to work on and how to prioritize it. Near the end of a release, it would get more and more strict on what you were allowed to change, up to the point where Bertrand sometimes would even ask to see code diffs.
I don't really know what is going on over there now. They have moved to a more agile approach, with more frequent integration checkpoints. In theory this should be better, but I suspect there's less sense of ownership and more of a feeling of a software factory. But it's probably mostly to do with the fact that the systems are way more complex, both the tech and the org, with way more moving parts. Even the programming language itself (Swift) is a moving target. I know (from talking to friends) there's a lot more politics and career-building going on, the kind of corporate douchebaggery that would not have been tolerated under Steve Jobs. People are thinking about RSUs and their promotions, rather than the products.
Ultimately, I think it boils down to this observation by jwz at Netscape, that there's "two kinds of people: those who want to go work for a company to make it successful, and those who want to go work for a successful company." Post-iPhone, Apple has filled up with the latter. A majority of the people at Apple now didn't work there under SJ, and the senior management who did experience that is now aging and retiring. At least from the outside, as a customer and end-user, it feels obvious that the founder-led product-obsessed culture is gone.
You felt a real sense of ownership to the thing that you worked on. You worked hard and fixed bugs because it felt like it mattered, because you thought about how e.g. your mom would end up using the product, and also Steve Jobs would see it, so it had to be great. Also, teams were small. Something would involve only 1-2 people, and then we would look over at Redmond and they'd have dozens of people working on the same thing. The need-to-know secrecy was not just for PR value; it helped keep circles of communication tight, cutting out a lot of noise, so you could just focus. The organization was stable (and relatively flat, around 5 levels from junior engineer to SJ). I think in my 9 years or so there, there were no major reorgs. Avie phased himself out and retired, and Bertrand moved up. The only major disruption was when the iPhone project happened.
Release cycles were annual. Throughout most of the release cycle, it was pretty free up to each team and engineer to decide what to work on and how to prioritize it. Near the end of a release, it would get more and more strict on what you were allowed to change, up to the point where Bertrand sometimes would even ask to see code diffs.
I don't really know what is going on over there now. They have moved to a more agile approach, with more frequent integration checkpoints. In theory this should be better, but I suspect there's less sense of ownership and more of a feeling of a software factory. But it's probably mostly to do with the fact that the systems are way more complex, both the tech and the org, with way more moving parts. Even the programming language itself (Swift) is a moving target. I know (from talking to friends) there's a lot more politics and career-building going on, the kind of corporate douchebaggery that would not have been tolerated under Steve Jobs. People are thinking about RSUs and their promotions, rather than the products.
Ultimately, I think it boils down to this observation by jwz at Netscape, that there's "two kinds of people: those who want to go work for a company to make it successful, and those who want to go work for a successful company." Post-iPhone, Apple has filled up with the latter. A majority of the people at Apple now didn't work there under SJ, and the senior management who did experience that is now aging and retiring. At least from the outside, as a customer and end-user, it feels obvious that the founder-led product-obsessed culture is gone.