Hacker News new | past | comments | ask | show | jobs | submit login

Things are so broken here at Apple. I joined about 4 years ago.

I am awed by the fact that we manage to release any software at all, let alone functional software.

The biggest problem is communication. No one fucking communicates.

- No communication between orgs. Tons of bureaucratic tape to cut through just to get a hand on someone working on a different product

- Barely any communication between teams. Literally every group of 4 people is in a little silo with no incentive to go outside it

- Broken management structure. I have had many managers (a red flag in itself) but even worse none of the managers take suggestions from engineers. Everything is purely top down. If an engineer realizes there is a problem on a macro scale they cannot fix it. It is literally impossible to unite more than 1.5 teams to get anything done.

- So what happens is that you’re working on a product that’s part of another product but you never talked to any other teams or orgs on how to make your product fit in

- 10 different teams working on the same products and services. Zero unification means you are literally wasting developers and internally fragmenting every tool. Even worse, these teams compete for internal market domination

- Culture of secrecy means nothing gets fucking done. You file a bug report and you can’t even see it any more for some orgs

This is only the tip of the iceberg. There are fundamental and serious problems at Apple that no one in management gives a shit about solving. Any time engineers try to congregate or work on anything constructive with another team, they are shot down.

The only time I have seen cross-team developers working together has been to deal with critical bugs.

Because of the lack of communication, none of management’s goals align. They are all out of sync and poorly thought out. So year after year your manager has something they want you to implement but the feature for the year is bullshit because it makes no sense and is just there to pad the manager’s resume.

And you can’t speak out about this. Apple doesn’t take well to employees complaining. Even then, because of the lack of organization there is no one you could raise these issues with.

It absolutely isn't the individual employee developers job or responsibility to try to fix corporate culture. Almost anyone on here or reading this is a line worker developer and trying to take on the job responsibilities of C level staff is setting yourself up for disappointment and failure.

Any company larger than a few dozen people is entrenched - there will be a hierarchy and the top will dictate the order of things. If they are paying you to write pointless software then you are either content with the paycheck and probably a lot of free time at work if nothing really matters or can go somewhere else to find meaningful work.

But seriously, the larger the company the less you should ever consider thinking yourself as some engineering talent can change the system. You change the system in those circumstances by realizing the failure, networking with your peers, and starting your own company to do it better. Assuming you didn't sign a deal with the devil by noncompeting your way into being stuck. You were hired to write code, not fix corporate culture. Largely because most large corporations have layers of management dedicated to insuring it is not fixed.

In my first job I was put into a team of about 5 people in a company of roughly 10,000 employees. After a year or two, another junior person joined my team and he started making contact with senior people all over the place, not quite C-level but only one or two levels down. Not even just in the software department but product development and in sales (to get an idea of user requirements). He sat next to me so I heard all the phone conversations (and winced!).

As time passed, it gradually became apparent to us mortals that he wasn't just being humoured - the people he was contacting came to respect him and even consider him their man "on the inside". He ended up doing pretty well - not promoted instantly to senior management, but certainly promoted faster than me (and ended up moving to sales).

Now admittedly lots of things are different from what your comment is suggesting. That company was big, but not as big as Apple (?) and intra-company communication nowhere near as bad by the sounds of it. This guy also didn't try turn over the whole company culture; for the most part he just spoke to the right people to progress things within our team's products. And finally, a key ingredient was him; if I made a conscious decision to act like he did, I'm sure it would not have gone well.

But my point is just that you shouldn't always write off fighting the corporate hierarchy. For the right person, in the right situation, it can actually make sense.

My argument is more that if you do "fight" the hierarchy, you are doing it as charity. People are paid exorbitant amounts to analyze and structure corporate cultures efficiently, way more than any of the grunt developers will be, and trying to take on those kind of job responsibilities without the compensation for it, even if you are the one in a million that succeeds, just means you did an amount of work that would in professional business be worth a lot to the company for free, and they don't have any obligation to compensate you for your effort because its not your job to do.

And thats all predicated on you succeeding, of course. You weren't offered the responsibilities to fix corporate culture, and thus trying to do so in the first place often just serves to piss off your higher ups who feel you are disrespecting their authority to do it themselves.

Yes it isn't but who else will do that for them? Culture is only possible when people talk to each other and/or exchange thoughts in other ways. If normal people can't do that, there's no single culture, there's many little cultures. Remember that organizations are people and not some magical beings from a different dimension.

Culture is one of those things where once it's broken, it's usually easier to let it die than to fix it. Go join some smaller organization that doesn't have a broken culture and help it succeed. Once enough people do that, the small company becomes a big company, the big company rots on the vine and eventually goes bankrupt, and the cycle starts again.

That assumes that the big company doesn't have enough inertia to keep going on and on, strangling the small business or buying it outright (thus incorporating it into the broken culture, Borg-like).

This. Culture is one of the only things that every employee can change by themselves, just by going out of their way to find and talk to people. It takes work, but also takes absolutely zero permission or red tape, and it makes a huge difference. Talk to a new stranger at work every day, and in a month, you'll be solving problems nobody knew about.

This isn’t consistent with my experience. Imo the fish rots from the head.

disappointing to see this grey, because i think there's a lot of truth in here.

i think a lot of developers are used to wielding great power with technology, getting immediate visceral feedback, shipping, and whatever else. this gives them an impression that fixing people problems is just as easy - the equivalent of opening up the ol' IDE and rocking out for 8 uninterrupted hours, getting an MVP up.

the differences, though, are crucial. the compiler doesn't lie to you - you missed a semicolon; that's not the case with people. the in memory database doesn't have another agenda; again, not the case with people. the UI doesn't aspire to be something greater, or protect itself; managers often do.

i really appreciate that individuals try - i just don't think it's really worth it, if the org is > 15 or so people.

People really hate to acknowledge that working for most corporations, especially big public tech giants, is not them being welcomed in to change the world and blaze trails but to write code for their boss.

> Assuming you didn't sign a deal with the devil by noncompeting your way into being stuck.

Well, in California it's basically impossible to enforce a non-compete, so there's that going for anyone who wants to do this as a current Apple employee.

I think the issue is that culture at Apple is very much not supposed to be this, and this probably isn’t what the C-suite is intending to push. So you’re not really going against them; rather, you’re going with them but against the current status quo.

If upper management wants culture to change they will take the action necessary to change it. The last people to be powerless to inflict change on a corporation are the executives running said business.

You should do some reading about the idea of the "frozen middle", which is pretty much what's being described as the problem. It's as resistant to edicts from the top as ground-up initiatives from the bottom.

Thanks for pointing out the proper term for this disease!

First upper management has to realize there's a problem. Often they're so insulated from the day-to-day operations that they're clueless.

Well, the GE story in the Business Adventures book clearly shows that, sometimes, they are utterly powerless

In the sense that everyone wants cake and to eat it sure.. But really everything anyone wants is stack ranked and their management prefers the apple demo to the world format long after the luster has gone in no small part because of the secrecy, silos and paranoia it requires. In a financial sense their management is right and an employee wanting to be part of something less bland and Oracle like is wrong.

> Any company larger than a few dozen people is entrenched - there will be a hierarchy and the top will dictate the order of things.

To a point, but have you ever tried changing something purely through a dictate from the top? People will just say ‘Yes boss!’ and then keep working exactly as they had been.

This is what unions are good for.

When I worked there under SJ, the Mac OS org (then under Betrand Serlet), it was sort of open amongst the org itself. It was really easy to walk to someone's office and strike up an interesting conversation. Many late nights were spent working through collaborative problems. Or randomly, I had a friend who would pop by my office and spend hours explaining how he figured out some complex Javascript compiler bug of the day.

It always felt like we were in a mission to ship Mac OS together. What Apple did do back then was create these special versions of the OS that had a few key hidden/secret products that SJ was going to demo, like iTunes or iPhoto. So while I could install the latest internal developer build of the OS, it would have a feature or two missing. You would then get radars that mentioned the code-name and explained a bug that you had to fix for the feature, but you had to fix the bug blinded and send the bug back to verify. (Radars could never be closed until the original creator verified them) The secrecy didn't really get in the way and it made for an interesting culture.

Then it all started to change when Forstall was promoted to VP of the iPhone effort. He took what was probably meant to be a short term secret launch team culture and expanded it to create this massive secret island in the company. The program office and by extension, the original founding engineers were all promoted to management that expanded on the secret culture. I think if management meant to open the culture back up to the same level as Mac OS in 2009, they would have been burned by Samsung and Palm WebOS making exact copies of the software coming out at the time. So the hyper locked down culture persisted and SJ passed away. Then Forstall was fired and Federighi was promoted to replace him and merge both the Mac OS and iOS orgs finally killing off any of the remaining openness that once existed.

Then came all the ridiculous tools such as checking someone's security clearance when you had a meeting with them. [Apple Confidential] :-P

I’m on an internal infra team, and even tho we’re supposed to be making tooling for the rest of the company, it’s just as much of a clusterf*.

I’ve been interviewing with other teams, but with this disaster of a release and us demonstrating that our corporate values are just empty words in the face of opposition from China, it’s likely time for me to make my exit.

The overt sexism that I’ve been witness to in iCloud management certainly doesn’t help either.

> The overt sexism that I’ve been witness to in iCloud management certainly doesn’t help either.

Yikes! Is this something you could share the nature of?

There is shockingly little female representation, especially in management. I’m well aware software engineering skews male, and infrastructure even further so, but the numbers are absurd.

In one section of iCloud, there’s zero female managers in a 200+ person org. In another, after recent re-orgs, there’s only one remaining female manager in a 600+ person org, and even then, she only has a small team of engineers. No representation in upper management whatsoever.

With multiple recent re-orgs caused by poor management, there has been ample opportunity to address this imbalance, but upper management has doubled down, cancelling nearly every project managed by a female manager before the changes, or giving their projects to male managers.

I raised this as a concern with HR months ago, but they have yet to take any action or even follow up.

I should note that most developers here really do care, and that’s probably why products can be released in the first place. You have to have really dedicated people willing to cut through the organizational bullshit to get things done.

All of the engineers I’ve met here are smart and innovative. Only if we could organize, things would be much better.

What do you mean when you say "organize"?

Not OP, but I'm guessing they mean something like 'make sure the right hand knows what the left hand is doing'. Making sure the effort to produce something is done collaboratively by all teams instead of each team working in isolation without coordinating with others, with the risk of duplicated effort or one team tripping up others.

Or you know, things like unions.

I think they meant to say, ‘organise’.

This sounds largely as I feared. The organization was built to serve the will of an omniscient god-king who knew better than anyone else. And now he's gone, and the organization is still set up to make orders trickle down from on high (despite no-one qualified or interested being there to make those calls) and hasn't learned make good decisions by communicating internally either. So the acolytes and high priests try to just keep doing what they were doing before god died.

If you read other insiders’ comments here you can notice that this is not the case at all. Under Jobs the Mac OS team was more open and collaborative, so probably this happened “by chance” and the death of Jobs was probably a force toward closeness.

It sort of makes sense to me. The god-king likely demanded answers and accountability, that must make people cooperate somewhat. With stagnation, power plays and petty turf-wars take over.

Agreed. When Sj died a power vacuum opened. His presence really was so big that there is no way a single person or even a couple people could fill the charisma and power he wielded over the company. Anytime there is a vacuum, the power plays and turf wars become the goal over delivering product.

> The biggest problem is communication. No one fucking communicates.

Elon Musk says something interesting about this here:

"Product errors reflect organizational errors."


He's specifically talking about how the product subsystems are effectively mapped out by the product departments and that they should try to interface with each other with minimal constraints.

But, my take was that there needs to be a LOT of communication between departments and an ongoing debate between them as well.

Edit: The more that I think about it...

This might a big reason why Musk companies defy the odds, and why it is so difficult for incumbents to catch up.

The over the air updates of Tesla are a good example of hardware & software departments working together to make something very difficult to compete with (if you're a regular old school siloed company).

Not dismissing what Elon said but it is commonly know as Conway's law: https://en.m.wikipedia.org/wiki/Conway%27s_law

Yeah, I’ve been trying to teach my organization that if the input to my team is crap, the chances of anything but crap coming out are fairly low.

  Crap >> Team >> Crap
We’re front-end, and basically the lowest part of the pipeline, so literally everyones crap gets dumped on us.

On two occasions I have been asked, — "Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?" In one case a member of the Upper, and in the other a member of the Lower, House put this question. I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.

    Passages from the Life of a Philosopher (1864), ch. 5 "Difference Engine No. 1"

When my friends at apple talk to me I feel any of them could write your post except...none of them would say "I am awed by the fact that we manage to release any software at all, let alone functional software" (well, maybe one would).

I'd like to work with these folks again* but the incredible secrecy would bug me. I understand that some things have to be secret, and I don't at feel I need to know what that group over there is doing but I'd like to talk with my (NDAd, same company) friends about what I work on! So I don't even apply for a job there. But some people seem to consider it OK.

* The subset of friends there who used to be colleagues of mine, I mean.

I’m not surprised by that line. Honestly I think many employees would say the same of their employers if they could.

> - So what happens is that you’re working on a product that’s part of another product but you never talked to any other teams or orgs on how to make your product fit in

I'm surprised to read this, because I've always thought tight integration and clever synergies between product lines were precisely one of the things Apple excelled at.

And I was wondering how exactly they managed to make that happen in such a famously secretive organization, where very few people have the 10.000 feet view required to come up with these ideas.

How do you make Mac Catalyst or Sidecar happen with 4 people silos who hardly ever meet and adjust ? How do you redesign the iOS photos app to the capabilities of the new hardware, in a way that will make sense once software+hardware become a product ? How do pictures of unreleased Airpods end up in recent iOS beta releases ? I mean, at some point you've got to make these things work together, and one decision on one side that's oblivious to the other side's constraints might make things impossible to them, and they'll want to push back. This is how "normal" companies function.

One more example, not something especially clever but more something that would have been a huge bummer if it hadn't happened : it seems like the Pro Display XDR has charging capabilities way beyond what any current Apple device might require, and it's speculated that it's for the upcoming 16" MBP : https://www.macrumors.com/2019/10/04/16-inch-macbook-pro-96w...

Again, how do you even achieve that if people don't communicate ? Through extremely well defined internal interfaces and specs ?

> How do you make Mac Catalyst or Sidecar happen with 4 people silos who hardly ever meet and adjust ?

You don't. What happens is those features are broken or just barely work, and only once they become public can Apple finally get them working. Look at the new iCloud shared folders that's now been pushed to next Spring after early Catalina betas were wiping out people's iCloud.

the fact that GP is complaining about it may be an indication. by hiring good people who see the structural problems and work around them works. you can brute force work around poor management and a bad structure.

Edit: you can see this explained in one of snapples sibling posts.

> How do pictures of unreleased Airpods end up in recent iOS beta releases ?

By the OS Mastering team dropping the ball…

I feel like there are people who get around the secrecy/isolation veil, they just have long-standing friends in other projects and can rely on them to push features and bugs though the bureaucracy. If you don’t have that, well, expect your Radars to sit in “punted from this release” until the end of time.

Seems crazy to hire the best engineers and pay them top dollar only to put a bunch of organizational barriers in the way they have to try and navigate if they want to get anything done.

The prestige from hiring very highly paid people is obviously higher than the one attained when hiring lower paid ones.

Managing 20 people on-site at Apple is different from managing 20 off-shore cheapos (even though they could potentially be just as skilled).

I've never heard Apple referred to as paying software engineers top dollar.

Apple absolutely does not pay top dollar for most engineering staff.

Or just escalate to your Product Manager.

It's not like cross communication doesn't happen it's just via a formal process.

That's hilarious and cute. I'm pretty sure I'd be told off if I tried to push cross-project collaboration up the management ladder beyond making an introduction happen.

This thread is really helping me understand why I can never see eye to eye with anyone on Hacker News. What I had assumed would be engineering companies are companies with engineers but without engineering culture, and there is zero autonomy to be had without getting into management in an over-stratified org-chart.

And what do PMs tell engineers on their team once they're back from their super secret meeting with the PMs from the other team ?

"Do exactly this, I can't give you context but it'll make sense on release day" ? Sounds like extreme Fordism (and basically a hellish way to work for creative minds) and a great way to prevent people from spotting problems early.

I'm on an internal tooling team @ PlayStation and man do I appreciate how much the company encourages cross-site and cross-team collaboration. Reading your comment made me cringe :/ so so sorry for you folks working at Apple.

I have a buddy who's an old Apple QA who tells me similar jaw dropping stories about the silos and secrecy. When I marvel how they can possibly ship all those wonderful products he says it's done through grueling brute force manual QA testing. Which also sounds insane but somehow it has mostly worked through the years. But maybe they're reaching the level of complexity where brute force manual testing is not scaling well enough.

yet, interestingly enough, Apple are never looking for manual QA testers, just Senior Automation Engineers. Or so it seems to me, a lone brute force manual QA tester who every once in a while wonders what kind of an effect he'd have at Apple.

From what I understand about Steve Jobs - he the great integrator. He got lots of disparate folks to work together.

I mean, he got music folks talking to computer folks.

But I think he did this on a smaller scale every day and that might have been his secret sauce for apple.

I worked at Apple for a few years and he was not running around bringing teams together. At the senior leadership team level sure. But not at the engineering or middle management levels.

It sounds quite similar to what OP was experiencing i.e. lots of siloed, secretive teams across a very large, 100K employee organisation.

Hmm, Apple was nowhere near that big in Jobs' era. Everybody was in one or two floors in infinite loop 1 and 2

Absolutely. Based on various anecdotes it seems apple succeeded nearly in spite of him, but he surrounded himself with people like Wozniak, John Carmack, Tevanian etc people who’s confidence in what they knew could always win out against Steve’s bluster. Steve brought people together, but also brought creative tension. He was also pretty good at spotting opportunities and trends. Apple really does feel rudderless without him. There’s no coherence of vision between products. Quality doesnt even really seem to matter. Apple still operates in a very top down manner, but it just doesnt seem as though there’s anyone at the top with much in the way of interesting ideas. Watch did okay, but was hardly a game changer. Earbuds are a success, but they cant be making that much on them ... Steve’s gone, and more’s the pity for all concerned.

> No one fucking communicates.

We all laughed when Tim Cook said that Apple will double-down on secrecy[1]. Who's laughing now? Turns out he was dead serious.

[1] https://www.cnet.com/news/tim-cook-were-going-to-double-down...

I used to work at Dyson and it was a similar story. I think the secrecy thing is key. They went on and on about "protecting our secrets" (ha) and operating on a need-to-know basis. It just meant communication was really bad, and getting help from anyone who didn't know you was impossible.

Ever considered emailing Tim Cook?

Don’t throw your managers under the bus, stay optimistic, anchor your message in whole company success. You might be surprised at the impact you can have & the replies you’ll get.

Here’s a formula you can try...

Hi Tim,

At <company presentation> you talked about <goal>, which I’m excited about!

I/we’ve been experimenting with <new approach>. We’ve seen <results>. What other teams should I/we collaborate with to help Apple get to <Tim’s goal> faster?

Cook is a corporate bureaucrat. in the best case scenario, he’d point you to your management chain, and in the worst, summon an inquiry into why you contacted him in the first place.

Two observations:

1) You seem credible.

2) There's not really a mad rush for questions.

It seems like the magic really is over. ( :/ )

Perhaps a silly question, but if it is so broken, then why do you keep working there? Is it purely a money-thing? Is there still hope that things can improve?

Not judging, but I am genuinely curious about what drives engineers to stay.

If things are so broken, as you describe, why not just pack up and go work somewhere else? Personally I love many of Apple's products but wouldn't be willing to put up with that kind of workplace just for the sake of it being Apple.

Over the years I've been surprised a number of times by seeing Apple hire a particular software engineer that I wouldn't hire for my own little company. You're still kinda junior @ 4 years there, but.. have you seen seen any slippage in hiring standards?

Apple hiring is independent per team. You can literally interview forever at apple and the way each team interviews is wildly variant. Had some pretty cool interview loops. I got rejected and then got an offer after interview 4 or 5 with a team on a high profile app that I really liked.

Apple doesn't give good offers although, so I took another one at a company / team I also really liked with a better offer.

Ah, interesting!

Yeah, this rings pretty true.

The best workaround I've found for this in large companies has been to sidestep the formal management structure as needed to actually get things done and working properly, and then give management credit for it.

The cleverest way to get rid of bad bosses (besides moving to another group yourself) is to get them hired by another company or promoted to irrelevance (though both strategies can backfire.)

Have you worked at a company of similar size before?

was thinking.. the complaints listed above sound very much like an aerospace manufacturer/defense contractor i worked for before. little silos everywhere, and further complicated by gov security clearances. getting anything done was like mud.

Of all the elements you mention, the most deadly is the inability to speak out about the problems. The first step in improving anything is to acknowledge the areas that need work.

thank you. this really validates my decision to work as a backend Python engineer at a well-established startup.

What is a "well-established startup"?

It’s an enterprise full of hipsters that tell themselves they’re changing the world in order to be able to take the punishment (or to be ok with unethical work). :P

Probably a decent-sized one with a proven business model, or at least revenue stream.

that's samsung.

And yet most of Apple's products are consistently best-in-class, so I guess it's working for them? And a bumper crop of bugs in a point zero macOS release doesn't count as a disaster. They've been shipping super buggy point zeros for two decades.

Fans like you are a major factor in why Apple won't change. They can do no wrong.

You do know that hardware and software teams are not the same thing, yeah?

The integration of hardware and software is and has always been one of the things that make Apple's products best-in-class. I'm not sure what your point is.

You are probably segregated away from where the real work is happening. This is by design, because you haven't proven yourself yet or they don't trust you yet. Good work is being done in Apple every day. You're just not a part of it and are not seeing it.

After four years? Seriously? Why would a bad hire not be laid off at that point? What's the difference between "real work" and "not real work"? How many engineers are on-site at HQ who don't do real work?

There might be teams working on "secret" things that are better, but as far as I can tell the "we don't trust you yet so you can't work on anything until you do" is largely a myth.

Yeah, like iOS 13, Catalyst, and Catalina. It’s all rather amazing. Ship on time, ship all features that were announced, heck, their hardware teams can barely keep up!

> Culture of secrecy means nothing gets fucking done. You file a bug report and you can’t even see it any more for some orgs

> And you can’t speak out about this. Apple doesn’t take well to employees complaining. Even then, because of the lack of organization there is no one you could raise these issues with.

Sounds similar to a cult.

No, it sounds like any large multinational. In the end, all commercial entities turn into the same thing where they only differ in branding, segment and origins.

Agreed. Any sufficiently large organisation is, by definition, staffed by average people.

Why would we expect that organisation, as a whole, to be above average?

Right. The poblem is when you focus on and optimize for hiring excellent developers only. Then all the non-excellent people that contribute to the average are in middle-to-higher-level management.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact