Software Is a Deceptive Book, and You Are an Ant
A thought exercise in the efforts of labor from the lens of software development
Books are not complex structures. Books require an introduction, a rising action, climax, falling action, and exposition. This is a consistent theme across the whole category. However, rarely have I considered the difficulty in consistency in writing a single book...until recently.
I am of the opinion that software is a book. Some books are simple and small; some complex and large; while others are obscure and inconsistent, no matter the size. Consistency in anything of scale, in terms of team or task size, is difficult. Unless you are an ant.
'Go to the ant, you sluggard; consider its ways and be wise! '
- Proverbs 6:6 (ESV)
Are humans as efficient as ants at laboring consistently towards one goal?
To answer this, one must ponder the nature of an ant:
The nature of an ant is to live as a physical being in community, striving for one common goal with the colony. If ants attempt isolation, they will accomplish little to nothing due to their size. They will miss the camaraderie that exists in life with others. Soon thereafter, they die.
Now, imagine ants trying to perform their task virtually. Are humans different from ants in this regard? Can we stay on task in isolation and develop consistency and clear direction in achieving a goal?
Can remote teams write a 300 page book that is consistent? What about a consistent 900 page book? My hypothesis in the intermediate is no, and my hypothesis in the future is that the software will be a curse to work with.
Now, obviously a book likely has but one author and a quantity of editors. Am I arguing for the writer to bifurcate their vision in an attempt to gel with the direction of what the colony desires for their novel? By no means. Vision, clarity, and camaraderie all matter. Sacrificing vision and clarity for camaraderie is not worthwhile; too many ants trying to accomplish the same task is equally as bad for the colony as a group of virtual, isolated ants.
A thought I have stolen from David Heinemeier Hansson is that people that write software are not developers or engineers, they're writers.
“Writing” is a much more suitable metaphor for what we do most of the time than “engineering” is. Writing is about clarity and presenting information in a clear-to-follow manner so that anybody can understand it.
David Heinemeier Hansson, https://evrone.com/blog/dhh-interview
The more writers onboarded into the colony that do not share the vision or passion for the mission critical task, the more at risk your product is in terms of gaining apathy, lack of clarity, and inconsistency.
Be careful who is invited into your colony. If the words of a physical book are written by a colony, you'll likely know. Inconsistencies will be obvious to the naked eyes of the reader. The character that has brown hair on page 24 suddenly may have violet hair on page 353. Yet, software inconsistencies do not always mar the surface of the book. However, once these problems take root, they inevitably surface to users over time.
How should you cure this? Write your own software or choose a workplace that you are passionate enough about that no detail is too small to perfect. Choose structure and clarity over scale and speed. Like the ant, work with a colony that truly cares and has one goal. And please, do it in person! Craft a beautiful environment that says something about your colony (see Austin Tunnell’s Building Culture for inspiration).
Above all, though, understand this: to be challenged by a few in the colony is a gift; to be challenged by the whole lot, a curse. Unique thought is hard to come by, and sitting at a desk and writing from 8-5 is not how any creative writer or inventor has ever performed. Software is not mindless spreadsheet work.
On the note of unique thought, one of the best things Steve Jobs ever did is take a typography class at Reed College; dwell on that. I am writing about that next.