3 ms·
Your description makes the first company seem better in comparison until you stop to think the tradeoffs. There are always tradeoffs. My previous role was in a
by picardo 5y ago
Your description makes the first company seem better in comparison until you stop to think the tradeoffs. There are always tradeoffs.
My previous role was in a team run like the first company. There were sky high barriers to get code into production, mostly centered around code reviews. It could take weeks to get the attention of enough people to review your code. Complex features had to be broken into multiple code reviews, and only people at your level or higher could review your code. So you ended up with a lot of code reviews and not enough reviewers.
The result? Politics. And where there is politics, there is corruption.
One time, one of my former team mates casually asked me to send him some Bitcoin if I wanted him to move faster. I refused, and the code review was delayed. Another team member stonewalled my code reviews as a retribution on an unrelated technical dispute.
It took me weeks to move through all my code reviews into production. I left the team immediately thereafter.
Be careful what you wish for.
- neilk 5y agoYeah, I was worried that I'd painted the second company as the bad guys. They were not. They made different choices. And both have been extremely influential in terms of process, but... influential at different extremes. At the perfectionist company we were six weeks away from final release - for a year. On the other hand, that company's codebase almost brought me to tears with its conceptual unity and perfection. And some process was worthwhile for us; we were adding fintech features to a userbase of hundreds of millions. At the speedy company we did social media, so there were way lower stakes. Projects turned around really fast. LAMP stack all the way. The attitude was that code would always be kind of sloppy and unpredictable, and there would always be unforeseen disasters. To cushion shocks like that, they invested a lot in their feature flag and deployment system. These are both paths borne of wisdom and experience. But here's where culture comes in. The culture at both companies was that these weren't choices that worked for them, but the optimal choice for everyone. At either company I think most people would think the other company's approach was not just bad, but literally impossible.
- picardo 5y agoEven teams with good team cultures can screw up their processes. In my experience, a bad process is one that 1) produces responsibility without accountability, and 2) does not account for process bottlenecks.