Since 2012 when I started working at Apple in iOS as a Software Engineer I’ve been asked many questions from “When is the next iPhone coming out?” to “Why is Apple Maps so bad?”. However the most enlightening questions inquire about my specific experiences and the culture there. As you may know, secrecy at Apple is so huge that the security wing of the company helped edit this post with some redactions:

In all seriousness though secrecy and security is so much a part of the culture that after working at Apple for a while these become reflex. I spoke in code words to colleagues, worked in an area that did not allow visitors and was encouraged to answer the “What do you do?” question with “I work at a computer company”. These days Apple is under such a microscope that these measures make sense and they are pretty effective with very few software leaks coming out of Cupertino. However, they have other unfortunate side effects that I’ll talk about later.

The Singular Mission

Photo by Marlith with CC

Before I get too much into specifics of Apple’s software culture I want to discuss a few ideas that permeate the ‘fruit company’:

These tenets result in an enormous company filled with very talented people, all who believe in a singular mission: provide the best experience for the user. Providing that experience requires enormous attention to detail and an organization that constantly welcomes critical feedback. I’ve worked with people at Apple that can notice single pixel changes in UI layouts between daily builds of iOS.

Another benefit of the singular mission is that it creates a common language and understanding among everyone at the company which helps guide challenging product decisions. The hardest part about maintaining this culture is scale. If you look at the Apple job board there are hundreds of open positions which could easily be filled tomorrow. However, for these tenants to remain effective everyone at the company must trust in each other to work beyond that 90% completion point where a product becomes functional and iterate on that last 10% until it becomes just right. Getting this last 10% right is important enough to entail throwing away work, starting over or pulling a feature from a software release. Even everyday office signs at Apple reminding people to wash their hands and drink water are a reminder of this culture in their clean, crisp Helvetica that say things like “Take five minutes to debug yourself” and “Stay thirsty, stay foolish”.

Teamwork Among Silos

Pulling away from the abstract, much of company culture is about the every day interactions between people and teams. One of the things I liked most about Apple is the willingness of everyone on my team to drop what they were working on and answer a question or debug a coworkers problem. In general this extended outside of my team to people I rarely interacted with, but there are always exceptions. Regardless of who you’re talking to, the only thing preventing a quick, thoughtful and friendly response is often the never ending amount of work available. When you try to create a masterpiece, there are always things to improve.

That being said, collaboration could also be the most frustrating and difficult part of working at Apple. Despite its size, Apple is still trying to be as flexible and nimble as a startup. Engineering teams are typically small, setup to operate independently and are given a lot of power to set their own priorities. However, since Apple owns the whole stack this means a lot of teams making software changes in parallel amidst a web of complex dependencies between those teams. Working at the top of the stack as I did this can be equivalent to trying to build a house out of materials that constantly change in size. This situation can be great if your group has lots of political power or many teams are demanding your time, however it can be a very difficult experience if you’re trying to convince other teams to add a feature or fix a bug without a top-down directive. It is easy to see how this can result in lots of wasted productivity just working around a blocked chain of dependency to make minor progress.

The Problem with Scale

These challenges are the beginning of how Apple’s size and politics can impact the productivity of the company. I don’t know if any large software organization has figured out the proper testing culture and build/integration process to help prevent these gridlock situations described, but Apple has a lot of work to do.

Unfortunately, despite the awareness of these daily challenges, it is unclear what is being done to improve upon them. This brings me to my next point. Although Apple has nearly limitless financial resources, I found the company to be incredibly reactive. Eagerly throwing resources into addressing the current biggest user facing issue rather than building the necessary tooling and testing needed to prevent those in the future. Some of this is understandable, it is difficult to determine ROI on testing. Let alone achieve agreement among the many small independent teams on those solutions. However, I would say Apple loses millions of dollars a year in lost productivity so I think the incentive is there.

Can Silos Scale?

Unfortunately, this is also where the culture of secrecy and silos comes into direct conflict with the empowerment of employees to voice that critical feedback I spoke so highly of earlier. Like any software company Apple uses a bug reporting system to track issues internally. Any employee can write up a bug on anything from hardware to software to user experience. As one empowered employee speaking to another through this bug tracking medium you might expect the same thoughtful, friendly and helpful experience I described before right? Not exactly…

In reality this medium is more often used as a bug avoidance system:

  • Instead of thoughtful discussion why my HCI beliefs were wrong, I would read “Jonny Ive approved this” as the final words in a message response.
  • An issue carefully reported today might not even be read until a month later when it is nearly impossible to work on a solution. (My record was a bug returned unread 18 months later)
  • When project managers start tracking bug numbers upon nearing release dates, tactics or tricks are often used to hide or kill bugs in order to meet milestones. One common tactic was to simply make further investigation so onerous on the person who filed it that they give up and kill the bug, marking it as “not enough information to resolve”.

These experiences leave you as an employee frustrated… Living Apple’s singular mission means elevating every issue with product so consumers are never bothered, confused or angered by it. However, when these issues are met with avoidance tactics it leaves one wondering what their impact really is at the company?

Impact, impact, impact

Unsurprisingly given the situation described above, an employee’s ability to have an impact at Apple rarely exceeds the bounds of their daily work and team. There are small triumphs. I once managed to get more contrast in iOS by filing the original bug requesting to change the yellow color in the Notes app to something darker with more contrast. However, at the end of the day other teams find it more time efficient to say no, than really consider your point of view. The positive way of putting this is that as an employee you have focused or specialized impact.

Similarly to impact, the skills you build and the role you hold is also specialized. This means you become an expert in your role, but also that you don’t develop all the well rounded skills required by smaller companies. This can be a problem as a software application engineer, where small companies represent 95% of the opportunities available. Furthermore, there are multiple barriers to using internal transfers to grow those skills:

  • It is extremely difficult to build relationships with other teams outside your role due to Apple’s secrecy culture.
  • Apple only posts jobs requiring intermediate or advanced skills. While your skills are likely lower than intermediate in this area if you are trying to grow them.
  • It is nearly impossible to build your skills outside your role because 20% time does not exist at Apple and your employee contract prevents you from releasing anything on the App Store.
  • Lastly, even if you are a quick learner, there is no concept of transitioning onto another team incrementally. The transfer process is the same as interviewing as an external candidate.

In summary, Apple seems to value results over employee growth and if you want to change roles you often have to leave the company.

Ugh, sounds horrible

Now, after the last few sections I don’t want to give the impression that I didn’t like working at Apple. In fact I believe in the leadership, mission and brand so much it was a very hard decision to leave. At Apple you have the opportunity to do things at an unimaginable scale, your work benefits millions of people and the perks and pay are really great. Where else than Cafe Macs can you get huge, high quality scallops for $8? Or work in a building shaped like a spaceship?

While all the things I mentioned above were frustrations, it was really the realization that Apple was a hardware and frameworks company that influenced me most in leaving the company. Hardware is actually where Apple makes money and with iOS 8 Apple made a statement about it is committed to supporting and creating opportunities for the developer community. As Tim Cook often says on stage, he can’t wait to see what developers will come up with next. As a result, I realized that there was a lot more opportunity to push the boundaries of the iOS platform as a third party developer. This is why I chose to join Coursera, re-defining what education means in the mobile setting and providing reasonable access to knowledge, worldwide.

In closing, I’m extremely proud in the direction Tim Cook has publicly led the company as a socially responsiblesustainable and moral company. I can’t think of a single organization that doesn’t have things to improve upon and I personally know a few great people at Apple working on addressing some of the things I mentioned. So to all of us, onwards and upwards.