Skip to content
You've successfully subscribed to Amarinder Sidhu
Great! Next, complete checkout for full access to Amarinder Sidhu
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
Success! Your billing info is updated.
Billing info update failed.

Soul of an Engineer #5

This Issue: Navigating Tar Pits, Automation, Internet's Guts, Changing the World

AmarinderSidhu
AmarinderSidhu
3 min read

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).

Continuum of Complexity, and Tar Pits

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.

Source: @stem_feed


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.

Guts of the Internet

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)?


Afterthought

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

NewsletterSoftwareValue with ValuesComplexity