The other night I was out for drinks after work, talking to a product manager. He spoke about the difficulty in adding new features to an existing application, in the technical debt that a lot of companies build up as they try to meet the varying needs of different clients and prospects.
We drew a comparison to an idea in fiction that I'll call 'character debt.' Character debt is the idea that when writing a story or a screenplay, adding another character introduces unforeseen complexities to the narrative.
Every story starts out with a single character, the protagonist. When creating this character, in order to portray a sense of depth and realism, the author must manifest in them their likes and dislikes, their mannerisms and colloquialisms, their outward projection and their inner dialogue.
Meet Gail. Gail contains complexities.
The design of this character's attributes takes effort on the part of the author. For the sake of this post, we'll label the effort associated with the creation of one character as a single unit of effort.
In most stories, the author introduces a second character with their own qualities and attributes. We assume that drafting this second character takes just one additional unit of effort. It makes sense: two units of efforts for two characters on the page.
In fact, by bringing this second character into the story, the author introduces a third element: the relationship between the protagonist and this new character. Every time these two characters interact, the author must manage the interface between them; the outward projection each promotes to the other, as well as their internalized receptions of the other's projection. Relationships are complicated.
By introducing a second character, the author has increased their count of effort units to three.
Gail, meet Bob. Bob is conflicted.
So what happens when an author introduces a third character? Brimming with our newfound knowledge of relationships and their implications on the effort involved in a story, we assume that by introducing a third character, the author introduces two new relationships: those between this new character and the extant two. This raises the total units of effort involved to six.
Introducing Linda. She means business.
But, again, we are mistaken. For with this third character the author has introduced yet another unexpected dynamic: the dynamic of the group. In any scenes featuring all three of the characters, the author must now account for all of the external and internal dynamics of the group, as well as any combinations that might result from it. What if Gail and Bob, team up on Linda? Does that change their character? What if Linda and Gail team up on Bob? Thus, we see that the actual effort associated with introducing this new character is ten. Three units of effort for the individual characters, three units for their 1 : 1 relationships, and four units to account for every permutation of the group dynamic.
Days of Our Lives.
Effort (E) as a function of characters (n). It's exponential. E=e^n. This is why the fringe characters of a story sometimes lack the depth of primary characters. As an author adds more and more characters to a story, the math behind additional characters exponentially drives up the effort required to maintain a sense of realism.
This is character debt.
It lines up pretty well with technical debt: the idea that every feature added to a product presents unexpected complexity. Nothing can be evaluated in isolation. There will inevitably be unforeseen effort in the relation of that new feature to the existing system, and complications that arise from the new interfaces and relationships introduced.
A lot of technical teams unknowingly solve for this complexity the same way authors do. They try to reduce the depth of new features. In stories we see periphery characters pale in comparison to those first introduced to us. In companies we see new product releases that underwhelm, or fail to stack up to the company's original hit. We see feature bloat.
Many say feature bloat is an inevitable result of new features. That companies with more than one primary focus are doomed. This is majority, but not the rule. Companies that decide to introduce a feature are certainly signing up for a larger scope of work (often on an exponential scale,) but this doesn’t mean it can’t be done.
Occasionally, there are great epics of fiction, epics in which a never-ending procession of complex characters weave between one another, without detracting from the plausibility of the primary story. Tolstoy did this. Wallace, who I wrote about in last week’s post, did as well.
In tech, there are similar (albeit less romantic) titans of scope. I leave it to your discretion to elect comparisons.