On the flipside, we absolutely smash out the work here. I love being able to finish stuff every day, every week.
Most places you work have one or two people who really care. They care about people. They care about process. They care about technology, software design, about doing the right thing the right way.
At Pivotal that's everyone. I've yet to meet a single example of the shrugging "eh, it's just a job" archetype I've previously found elsewhere.
It's so incredibly hard to create this kind of a self-reflective, self-correcting culture. Pivotal's done it and under conditions of enormous growth.
Really. It's the best job I've ever had, by a country mile.
Edit: one more marker.
People come back to Pivotal. It's the first company I've seen with reverse attrition. It's common for Pivots to head to other companies and then come back in less than a year. There's no bridge-burning: if you head out from Pivotal to do something new, you leave as a friend and you can return as one.
Reverse attrition doesn't mean anything.
I'd love to work there but dont know what I can do.
That said, I never much enjoyed using Pivotal Tracker, and Trello seems to do more or less everything it does but in a nicer and more client-friendly way.
Trello is a good tool. I've seen it used on several teams in roles that Tracker doesn't neatly fill.
I don't think there's a faster way to send me running away screaming. I'd actually take "100% Visual Basic" over "100% Pair Programming" if I had to choose one at gunpoint.
I was skeptical. Now I greatly prefer it. It would take a ludicrous raise to shift me to a company that doesn't do it as a regular practice.
Pivotal is a for-profit company. We pair program because we think it's more effective for most engineering activities (not all: most) than soloing.
I'm vastly more productive in a pair. I don't take 3 hour "5 minute" Facebook breaks. If I get stuck, my pair usually has an idea, so rather than spending a day fighting I spend minutes. Usually the discussion with a pair comes to a better design, sooner, than nutting it out by myself. Working with a pair makes me accountable -- I am far less tempted to take shortcuts with tests, code, readability, design or other important properties.
Many folk will say well gosh, they don't need a pair for these things. I envy you, brave superhuman. I have ADHD and the crippling disability of being merely mortal, so pairing is awesome for me.
As an introvert I don't think I could handle the "pair all day" approach.
The literature is, I believe, pretty thin and equivocal. However the suspicion is that pair programming is pretty much the core loop of bouncing back and forth, reduced to the smallest possible size.
It also avoids some of the antipatterns I've seen with code reviews -- widely distributed patches, reviews getting stale because they were too hard for a Monday, then a Tuesday... then a Friday ...
> As an introvert I don't think I could handle the "pair all day" approach.
You can take a break if you need one. Lunchtime is fixed at an hour. I typically go and spend it alone with a book.
There is sometimes a confusion between intro/extraversion and sociability. I'm quite sociable, I genuinely like talking to people, but it drains me because I lean towards introverted. So the lunchtime recharge is very helpful.
Each pair finds their own balance.
At some point you're going to need more than one person to understand the code and they either go through that learning process months down the road or right now when they can be most useful in shaping that code.
It's not simple mathematics.