Hyperobjects in software engineering

Hyperobjects in software engineering

Recently watched @vsauce episode on hyperobjects and reason. This clicked well "Software that fits in your head" principle that Dan North mentions in his talks.

What are hyperobjects?

A single cup - is a simple object. You can tell if it's warm, cold, big or small, broken or intact - in an instant. You can understand all the states, parameters and make judgments. Even though a cup can last a long time, it is simple enough so you could fit the entire concept in your head and make some sort of predictions about it.

Hyperobjects - are massively distributed in time and space, so you can't understand the whole object just by observing it's single manifestation.

Philosopher Timothy Morton coined the term back in 2008 to describe things like global warming. 

I can’t see it. I can’t touch it. But I know it exists, and I know I’m part of it. I should care about it.


Hyperobjects in software engineering

In software engineering, we are surrounded by things with multiple parameters, states, effects that exist over long periods:

  • Impact of a new procedure that was scaled across dozens of teams and thousands of daily actions.
  • Impact of gradual loss of knowledge.
  • Impact of the accumulated tech debt on your release schedule.
  • Impact of a few bad decisions made while building a microservice architecture.

I would call these things hyperobjects, as single person can't accurately evaluate or make predictions of the outcomes.

With the best effort, we can perhaps comprehend a such events in a single slice of time. But if you ever tried to wrap your head around 5-dimensional geometry - a single slice doesn't help you understand the whole shape.

Human cognitive busyness, otherwise limitation of our operating memory was perfectly described in Thinking Fast & Slow by Daniel Kahneman. A great read.


Enhance your cognitive abilities with tech

What tech solutions do, is enable people to achieve more by outsourcing memory, number crunching & patterns analysis. Essentially expanding our intelligence.

Lets look at Codigy as example, it continuously processes activity data of hundreds of engineers to form simple, actionable insights that people can use:

  • Automatically monitors all the relationships between people, processes, and code.
  • Filters out the insignificant events, cutting down the amount of data for a human to review;
  • Visualizes detected patterns for easier comprehension;
  • Reports the important findings to the area owners to empower an entire team.

With reduced amount data and insights structured in depth layers - we avoid mental overload , simply pointing out the tightest bottlenecks, highest risks and what could be a potential root cause. An outline of the hyperobject, which we can reason about.


Is there a point to all this?

Not immediate. But it's thrilling to see how software becomes an extension of our intelligence and helps solve problems that were outside of our reach.

If you are excited about such challenges - come join our team @Codigy! We are hiring JAVA backend engineers. Drop me an email at [email protected] or direct message me on LinkedIn

要查看或添加评论,请登录

Igor Podoprygora的更多文章

社区洞察

其他会员也浏览了