Navigating Tar Pits
La Brea, a town in California, has old and preserved tar pits. Natural asphalt has been oozing into the ground in these pits since the end of ice age. It is understood, from the fossil records, that prey animals and pursuing predators alike wandered in, got trapped, and died in these tar pits.
In Mythical Man Month, Fred Brooks likens building large software systems to the struggle of animals trapped in tar pits.
"Large-system programming has over the past decade been such a tar pit, and many great and powerful beasts have thrashed violently in it. Most have emerged with running systems–few have met goals, schedules, and budgets. Large and small, massive or wiry, team after team has become entangled in the tar. No one thing seems to cause the difficulty-any particular paw can be pulled away. But the accumulation of simultaneous and interacting factors brings slower and slower motion. Everyone seems to have been surprised by the stickiness of the problem, and it is hard to discern the nature of it."
Brooks wrote this in 1975. While re-reading and reflecting on it this past week, it still resonated with me deeply.
Despite modern software tools and rich vendor app ecosystems, building a real world software system that performs at scale is still very hard. There are tar pits of complexity to navigate. The value of software is constrained by these sources of complexity - within software, from real world, and from human users (see my infographic below).
The art of building valuable software systems is managing this complexity - staying focused on value, building in small batches, and allowing creative problem solving (link to my related post).
Automation and Human Skills
It is hard to imagine designing anything complex without computers now.
This picture triggered the nostalgia of my foundational engineering drawing class. We, my classmates and I, sprawled on the tables for a couple of hours just like the people in these pictures to create drawings. To me, they were the most absorbing two hours during each week of that semester.
As a technologist, I am excited by amount of things we can automate now. But I worry about human skills that die when we automate.
Guts of the Internet
Submarine Cable Map keeps the data on the underground sea cables updated. It is a fascinated thing to play around with.
Certain regions have a single cable that connects. It is also quite obvious that biggest economic markets have the most connections.
If internet is the platform of our connected future, would we end up de-platforming some regions (and people)?
The computer scientist, Bret Victor, reminding how we change the world by "using things" the right way.
"I've spent a lot of time over the years desperately trying to think of a "thing" to change the world. I now know why the search was fruitless -- things don't change the world. People change the world by using things. The focus must be on the "using", not the "thing"."
Source: Worry Dream
Soul of an Engineer
Join the newsletter to receive the latest updates in your inbox.