How do we balance the benefits and drawbacks of automation and abstraction? I've taken a ‘more is better’ approach in the past, but a few of this week's articles have made me reconsider. Ironies of automation and the accompanying paper discuss the costs of automation. Goodbye, Clean Code discusses the cost of overzealous refactoring (and the same could be said of rewrites). By trying to achieve a better process, we've traded one complexity for another. We need to have a sufficient understanding of how the pieces fit into the whole and be willing to accept the risks and costs that process improvement can bring. Something to reflect on while you go throughout your day.
Have a great week.
Kings of Capital by David Carey and John E. Morris - A thorough history of Blackstone. If you're interested in private equity firms and leveraged buyouts, this is your book. If those don't sound appealing, you should take a pass.
Work Rules! by Laszlo Bock - A detailed look at the people operations unit at Google. There's a lot to be said about how data driven Google is, and there should be no surprise that they apply that mentality to every area of the business. This was a tangible counterpart to How Google Works that I read a couple weeks ago. Biggest takeaway was from their Project Oxygen study which found eight attributes of a good manager:
- Be a good coach.
- Empower the team and do not micromanage.
- Express interest/concern for team members’ success and personal well-being.
- Be very productive/results-oriented.
- Be a good communicator – listen and share information.
- Help the team with career development.
- Have a clear vision/strategy for the team.
- Have important technical skills that help advise the team.
They sound like commonsense, but there's value in spending time thinking about the list explicitly and how you can improve as a manager.
Some extraordinary episodes from this week:
Teddy Bears - Pessimists Archive - I just started listening to this podcast, and I already think highly of it.
Gilbert Strang: Linear Algebra, Deep Learning, Teaching, and MIT OpenCourseWare
Grant Sanderson: 3Blue1Brown and the Beauty of Mathematics
Vladimir Vapnik: Statistical Learning
Hidden Technical Debt in Machine Learning Systems - Anyone putting machine learning into production should also be aware of the complexity and costs it adds. I see this paper as a tangible example of Ironies of Automation.
Machine learning offers a fantastically powerful toolkit for building useful complex prediction systems quickly. This paper argues it is dangerous to think of these quick wins as coming for free. Using the software engineering framework of technical debt, we find it is common to incur massive ongoing maintenance costs in real-world ML systems. We explore several ML-specific risk factors to account for in system design. These include boundary erosion, entanglement, hidden feedback loops, undeclared consumers, data dependencies, configuration issues, changes in the external world, and a variety of system-level anti-patterns.
In some organizations, earnest efforts to be “data-driven” devolve into a culture of false certainty in which the influence of metrics is dictated not by their reliability but rather by their abundance and the confidence with which they’re wielded.
People Who Are Obsessed With Success and Prestige - I wonder how many people who follow the actuarial career path fall into this trap.
The question that remains: When things are not going well around you, what’s not going well inside you?
How To Be Successful (At Your Career, Twitter Edition) - Sam Altman is channeling some Paul Graham in this twitter thread. Good insights.
François Chollet on the mislabeling of “artificial intelligence” - I wish anyone talking about “artificial intelligence” would read this.
Our field isn't quite "artificial intelligence" -- it's "cognitive automation": the encoding and operationalization of human-generated abstractions / behaviors / skills. The "intelligence" label is a category error— François Chollet (@fchollet) January 7, 2020
The End of the Beginning - I would have never thought of relating the current state of the tech industry to the automotive industry. Ben brings up interesting parallels between the two.
From 15,000 database connections to under 100: DigitalOcean's tale of tech debt - Technical debt is a reality at every company. Paying down the right debt effectively is a lot more challenging.
Code-wise, cloud-foolish thinking uses custom code to accomplish non-differentiated tasks that cloud services already perform.
This reminds me of a similar article by Joel Spolsky where he defends “Not-Invented-Here Syndrome”:
If it’s a core business function — do it yourself, no matter what.
Why I use R - I agree with all four of his main points:
- Native data science structures
- Non-standard evaluation
- Packaging consensus (The glory of CRAN)
- Functional programming
Hands-On Machine Learning with R - Available free online, this looks like a decent resource for anyone wanting to tangibly work on machine learning in R. Word of caution though: there is a lot of development going on in the “tidymodels” landscape, and this book uses some more established packages rather than something under heavy development. That's understandable, but as the modeling work by RStudio becomes more production ready, I'd expect an update to this book.
A Country Is Not a Company - Hard to believe this was written in 1996. A prescient piece that is as relevant today as ever.
That's it for this week.
Are there any topics or concepts you'd like me to write more about? Send any suggestions to email@example.com.
Thanks everyone who sent me links and recommendations this week. If you stumble across something interesting, send it my way! You can send any recommendations to firstname.lastname@example.org. If you haven't done so yet, subscribe to get all my posts delivered directly to your email.