Chrome was delivered without any sprints at all. The team came in at 9 and left at 5 (figuratively, people actually kept their own ~8h schedules) every workday for a couple years like clockwork. No drama. No broken marriages, no broken families.
It was one of the most formative experiences of my career.
I hear you asking, dear reader, how this miracle came to pass. How did chrome-team manage to deliver high quality software without death marches?
Funny you ask... Turns out that software projects actually benefit strongly from having senior technical leadership deeply involved.
By "senior" I mean, as a crude approximation, "old enough to have school aged children at home".
By "involved" I mean "typing code" and "reviewing code".
I know! In our industry it has been more common for such folks to age out to management and leave the typing to the kids.
I mean even at Google (on a different team) I was a "technical lead" in my 20s, and let me tell you, I had noooo business leading anything technical of any importance. But this is very common!
We would never accept this in other fields. Would you live in a house built entirely by junior carpenters in their late 20s who built one or two houses that barely stood up? Would you drive cars designed and built by junior engineers?
Software engineering is engineering. Like other kinds of engineering, it's a skill you develop over a lifetime, not a decade.
When I joined chrome-team I was in my early 30s. And I was on the junior side.
Most of the core team had already worked on one or two browsers before!
Having strong technical leadership has lots of advantages, but one of them is it naturally leads to a healthier cadence. These folks typically have to be home for dinner, and they're old enough to know that death marches don't work.
I think a decade or so back, it was harder to staff teams with strong technical leadership, because the industry was growing so fast and was so young. But that's changing now!
So if you're building a software project: don't cheat yourself, find experienced engineers to run it...
... and if you're on the younger side, also don't cheat yourself. Find you a team with experienced leaders to learn from.
Well this blew up. No SoundCloud but if you’re of the technically bent, I wrote a little bit more about Chrome’s dev process awhile back:
@jamespearce I should do a video on this or something. So many questions, continuously. 😅
@jamespearce Eh, I'm too lazy / busy to do this but open offer to anyone who does tech podcasts to come on and talk about the landscape as I see it.
People ask me a lot about this. I tried to do a video and I'm too perfectionisty to publish it. So I'm going to try this format.
Here is how I think about the local-first/sync space.
First, it is a definitely a big, beautiful, hot mess. There's so much energy and excitement in the space and nothing has congealed yet. All kinds of incredibly smart people doing fascinating work.
Gears was um ... not met with enthusiasm by the browser community. Web dev reactions ran the gamut, some were excited somebody was finally doing something, others were concerned about introduction of non-standard APIs.
2008: Chrome launches, with Gears built-in.
2009: Hixie (who edits the HTML spec and sits down the hall from me) drafts the WebSQL spec. His argument is that browsers are going to start shipping this, so somebody should document it quick for interop. Chrome and Safari ship it.
2009: Microsoft and Mozilla refuse to implement WebSQL. Their argument is it will be impossible to build independent compatible impls.
At the time this argument resonates with me, but honestly HTML is 20x more complex than SQLite SQL and we do that fine.
A long, tragic history of SQLite, the web, and my career.
Before diving in, disclaimer: I'm not drawing any conclusions or placing blame here. Just documenting this crazy tale as best I can remember it.
I am probably remembering some parts wrong.
June 2000: I publish my first OSS JS lib
August 2000: SQLite 1.0
December 2004: I join Google
Jan 2005: I recruit @ErikArvidsson and other JS friends
~2006: Erik and I join the Gears project.
After years of being hamstrung by moribund browsers, I am *thrilled* to finally be able to improve the situation. To webdevs at this time, it feels like browser developers just don't care about the platform. To me, Gears feels like a way to directly affect change.
sunday webdev challenge: can you think of a way to test network connectivity that *does not* print an error to dev tools?
For Replicache we want to periodically test connectivity while offline. It's *not* an error for us to be offline, so don't want to spam console though.
*saturday.
And first prize goes to @msnegurski with the idea to use a web worker.
My kids are 6 and 8. I've loved skiing and snowboarding since I was their age. I waited their whole lives to start teaching them. I also taught my nieces (now college-age) to ski.
Here's what I've learned 🤷♂️: 1/?
1/ First, why even do this? Teaching young kids to ski is super worthwhile IMO because it's one of the most accessible adventures available. By adventure, I mean it is something very foreign to the everyday experience of most kids: cold, snowy, fast, physical, dangerous feeling…
2/ ... but also very accessible. Done right, the chance of success (kid having a great time and feeling accomplished) is almost guaranteed. The techniques for teaching kids to ski are well known and most kids can get to competently skiing green runs in a long weekend.
A sort of bittersweet thought that pops into my head every so often:
I think we are living in a sort of golden age for software development. Similar to the 1980s for cinema or early 1900s for some kinds of american craftsmanship, or the renaissance for science and art.
I think there's an implicit assumption in our work that there is proportionate value, in chasing better and better experiences. We dump really obscene amounts of money and energy into polishing every interaction.
And there *is* value. But it's at least significantly artistic value, the same way there was value in really lovingly crafted victorian homes, or in getting all the shots perfect in E.T.