Some things shouldn’t be tweeted. Opinions with nuance need complete thoughts. We can assume Paul Graham meant something very specific that we can’t intuit from his tweets.

But we’re not going to do that. Because fuck Paul Graham.

Here are some things big companies are better at than startups.

Ergonomics

[Large computer manufacturer] was my first job out of college, and I worked there from 2008 to 2012. It was huge, corporate, and everything a sane person should hate in a company, but I also learned a fuck ton.

Every year at [Large computer manufacturer], we had to watch an hour long video on ergonomics and take a stupid test to prove that it took. If you didn’t complete the video, your manager would get an email about it. Then his manager. I didn’t let it get any further, but it would have trickled up to the CEO.

At my company, our interns have a week of learning about our programming languages, build tools, and culture. If ergonomics is shoved in there, it doesn’t take. Their posture is horrible.

My coworker complained about back problems. Instead of ergonomics training like would force upon you, our supervisor agreed to let them work from home mornings (my company really discourages working remotely), and it didn’t help. They never learned how to setup her desk.

There has to be a balance between boring videos and never teaching anything. Maybe IT could give employees a pamphlet when they set up their desk.

Splitting Work Into Tasks

The biggest difference between junior developers and developers is being able to split a big task into smaller tasks. The younger you are the less you know about how long something should take to complete.

On a Rails app, I’ve seen someone try to switch the UI from Erb templates to Ember, update the models and their relationships because the old structure didn’t make sense with the UI, change the UI to match a new mockup from our UX designer, and move to Active Model Serializers all at the same time. After three months, they had a gorgeous new UI that was still unusable. They did good work, but it was never merged because it was always incomplete. They needed someone to direct them, and not let them bite off more than they could chew. Their failure was our fault.

At big companies you have a dedicated project manager and are forced to split your tasks into measurable chunks. When I was a consultant, our estimates for each ticket were measured in hours. No ticket would take more than 24 hours or it would be split up into smaller tickets. Junior developers need that guidance until they learn how to do it naturally.

Organizational Structure

Maybe I was lucky, but my manager at [Large computer manufacturer] knew what he was doing. Eden saw his job as facilitating my development and getting out of my way. If something was critical, once a day he would stop by my desk and ask if I needed anything. He excelled at leaning on other teams to do their job when we were waiting on them.

At the startup where I work, communication between teams that don’t regularly work together is still… hazy. I’m working on ads. Another team is working on a new project. My manager proactively sends me to reach out to them about their ad needs. They don’t need us. The first ads will be native. A month later our team, discussing with the ad trafficking team, decides to serve native ads through Google DFP to track clicks and impressions. We release the first native ads on our site. Now when that other team starts working on ads, they’ll circle back to us. The roles aren’t defined, so there’s misdirection and wasted time.

I work on the ad rendering. What happens whenever anyone ever wants to make a change to something that sorta, kinda touches our code? We’ll give them a 30 minute overview of how our code works and… they’ll realize that we’re not the team they need to talk to.

Documentation

This is a fun conversation that you can in the world of startups.
Tester: “Your branch is producing some weird logs. When are these events supposed to fire?”
Staff Engineer: “I don’t know. How does it work in master.”
Three testers start regression testing, comparing the two branches

Efficiency.

Fuck Paul Graham

Let me suggest that the biggest threat to startups is out of touch VCs who convince you to ignore a huge market of skilled developers.

Asides

  1. I will never work anywhere near Mark Hurd, Léo Apotheker, or Meg Whitman.
  2. Paul Graham is responding to clarify that it's junior developers that are a problem and senior developers and the hiring managers know the risks and what they're getting into. That... doesn't... make... sense. Junior developers are way more adaptable than older developers.

    Holy fucking shit. This is propaganda. When I think of a big company, I think of HP and IBM. Not Paul Graham. Paul Graham is shaming college kids to keep them from joining Facebook, Google, and Apple. There is a shortage of qualified developers, and Paul Graham is trying to keep Y-Combinator founders and future employees of Y-Combinator companies from joining big companies. Fuck you, Paul Graham.

  3. It's the senior developers who are bad-programmer-but-gets-shit-done who cause the most problems. They can't handle the move from being the only developer of a new project to working on a team. The more developers you have the more standards and process, aka "bureaucracy", matter.
  4. If this really is about a specific, or a shit ton, of bad employees who came from big co's Graham should tell us those stories instead.
  5. Does it still count as a startup if you're employee 350?
  6. I'm glad other people feel the same way