In recent months, Apple’s software development has been called into question like never before. Between a critical security bug in macOS, a brand-new product being launched late and without half of its features enabled, or a throttling feature being snuck into an iOS update, it seems that something is wrong in Apple’s development process.
Outwardly, the company says everything is fine, while also revealing that it’s going to take a year off from major feature development to focus on bug fixes and performance. But according to one software engineer who worked on iChat and Maps for years, the problems run deeper than just a lack of focus.
Posting on Reddit, the engineer attributed Apple’s software problems to a culture, not a lack of focus:
As someone who used to work on iOS at Apple, what that company honestly needs is a culture not beholden to the whims of their EPMs (project managers). They used to help organize and work with engineering to schedule things across the company’s waterfall style development. However, by the time I left, they essentially took power over engineering. Radar became the driver for the entire company and instead of thinking about a holistic product, everything became a priority number. P0 meant, emergency fix immediately, P4 meant nice to have. You get the idea.
Nothing could be worked on if it wasn’t in Radar with a priority number attached and signed off by the teams’ EPM. No room for a side project or time away from your daily duties because there were always P1s to fix. If you didn’t personally have any left for the day, you’d take one from another engineer who was likely swamped with their own list of P1s.
Software engineers are notorious for complaining about the layers of management getting in the way of their process, but Apple’s culture here doesn’t exactly sound conducive to producing quality code:
P1 P1 P1, everything is always in crises mode. Also why I and everyone around me felt bad for taking any vacation. If we weren’t constantly thinking about fixing those P1s, we were some how letting our team down.
This is how you get bugs in shipping software. EPMs driven to schedule things and over manage engineers would decide on a whim that something was a P2. That was basically always shelved to a follow-up .1 release.
Ultimately, engineers lost the freedom to decide when a feature was ready to ship. So here I see some “leak” about quality and I think, this is just PR spin for a buggy iOS 11. Unless the company is willing to take power away from the all-mighty EPM org, I just don’t see how engineering will really change.
The engineer’s account lines up perfectly with what Apple’s Craig Federighi told software teams recently, according to Bloomberg:
Software chief Craig Federighi laid out the new strategy to his army of engineers last month, according to a person familiar with the discussion. His team will have more time to work on new features and focus on under-the-hood refinements without being tied to a list of new features annually simply so the company can tout a massive year-over-year leap, people familiar with the situation say. The renewed focus on quality is designed to make sure the company can fulfill promises made each summer at the annual developers conference and that new features work reliably and as advertised.