This is the talk that I saw this year that has changed my thinking the most, that I have referred to most often.
Fixme, by David Heinemeier Hansson
It’s an hour long, but it’s an hour well-spent. Here are some highlights/timestamps.
2:15 – After 20 years, instead of youthful ignorance and enthusiasm, I’m driven by a sense of history. So much of what is at the core of what we do is the relational database.
12:50 – There’s a pattern – we may sometimes need to dive into the historical things that we used to get here, but we don’t need to anymore. Ruby has taken all our garbage collection problems and given them to @tenderlove. That’s great! That’s real progress. Even though the basis of lots of what we do is relational databases, it’s not like we’re handwriting SQL anymore.
17:30 – Conceptual Compression. We don’t need to need to understand our full stack in order to use it. Conceptual compression is the most important thing we’re doing in Rails development. If we don’t compress our concepts we understand, we won’t have room for the new ones coming in.
Why are you building a Millenium Falcon out of Legos, when you could be just buying the whole toy? Because you’re invested in building it, but it’s not a better product. It’s self-indulgent.
24:00 – Today a programmer with less experience can start and accomplish more than ever before, because we have conceptually compressed so much.
30:00 – The more we can lower the barriers to entry, the more people can work with us, and that’s great. If you want to gate-keep it, fuck off!
37:30 – We want to make it easy to learn, and we want to make it easy to launch. The fewer concepts that you need to operate and juggle to launch, the sooner you can get going.
42:45 – If we want a broader spectrum of people making technology, we have to lower the barriers to entry and allow more kinds of people access to change our systems. We can’t apply the people of today to the problems of tomorrow and get a different world.
We should use the past to inform our choices in the future, and we have to look back and make sure that we use our skills to at least hold our ground.
We’re backsliding. The industry has a lot of conceptual expansion, but we’re not compressing it down to be usable. Modern web applications are so much harder than they used to be, and it either turns people away, or it drives heavy specialization.
51:30 – When we are highly specialized, we become alienated from the products of our labor. When our impact is tiny, we don’t understand how we’re changing the world.
Even when we may not agree with the prescription of Marxism, the description of the symptoms is important, and especially meaningful right now.
Harry Braverman quote.
(the hysterical giggling is me, because I saw where he was heading)
The more alienated we are from the product of our labor, the easier it is for us to commit software iatrogenics – by trying to do good, we do harm. Software has never harmed more people than it does right now. It also helps a lot of people, but these things are not invariably linked.
The more specialized you are, the stronger your blinders, the harder it is to see the bigger picture, and the easier it is to defend your contribution to the evil you’ve been doing.
This plays in especially because we’ve been colonized – the internet has been conquered by conquistadors who are getting fabulously wealthy by extracting our attention and our privacy. We didn’t fully understand the trade – they showed up with cheap mirrors and shitty combs and traded us the most valuable aspects of our humanity.
The internet didn’t used to be colonized the way it is now.
Piketty! The rate of return on capital is greater than the rate of growth in the economy.
We can’t, as the implementors and inventors of these systems, ignore the consequences of what we create.
Our mission should be to liberate the best ideas. Arm the rebels with the best ideas and conceptually compress them so they’re easier to transmit.
Software IS eating the world, but who’s writing that software? You are. So how do you NOT have a moral and ethical obligation to steer that?
So, yeah, that’s my top talk. If you want just the most stunning part, you can start around 40 minutes and get the parts about conceptual compression lowering the barriers to entry, refusing to be alienated from the products of our labor, and taking responsibility for our own actions as software creators.
O'Reilly Software Architecture/Velocity
The Lead Developer London