Philosophy

Anticulturalism

There's a lot of talk about multiculturalism these days. Well, I'd like to offer an alternative: Anticulturalism.

Multiculturalism is the idea that we ought to celebrate the cultures of the world and welcome them all into our communities. Anticulturalism is the idea that culture divides us from one another and binds us to arbitrary tradition, and that we'd be better off without it.

Where the culturalist will do as the group does, the anticulturalist will follow their own intuition. They will forge their own path, produce their own traditions, and create their own ideas.

To be an anticulturalist is to reject the idea that we should continue doing things a certain way because that's how we've always done them. It's celebrating diversity not at the level of the group, but at the level of the individual. It is taking responsibility for our own thoughts and actions.

The anticulturalist doesn't waste their time reading the news or following politics because they realize the inadequacy of policy to rectify the world's ills. Instead, their crusade is one of liberating those around them from the cultural chains that bind them, so that they too can become empowered to define the course of their own lives.

Usually in the name of pride, the culturalist blindly follows the norms and traditions handed down to them, even if they do not serve their own interests. While the culturalist talks about fictitious entities like "freedom" and "justice" and "purity", the anticulturalist realizes such abstractions aren't real. To be an anticulturalist is to reject archaic narratives that use abstract language to justify the wielding of power over others.

Culture takes us out of the animal body and reduces us to a matrix of loyalty and compliance through language. By refusing to participate, we become free.

Analysis is not action

Have you ever spent a whole day trying to make a decision?

We all sometimes suffer from "analysis paralysis", right? That nagging feeling that we're not doing the so-called right thing. The idea that if we choose to open one door, all the others will be locked forever. Opportunity cost.

And that's true... to a point. We cannot do everything. And our decisions do matter. But sometimes our inability to make decisions quickly hurt us even more.

Perhaps then it could be said that it is wise to carefully consider big decisions, but wiser still to set limits on the duration of your analysis.

When you choose wrong, it hurts. But when you don't choose at all, you don't grow.

Tactics for a happier digital life

I have some beef. Rage, even. For the past decade I've owned an iPhone and had access to the infinite power of the Internet in my pocket.

Do you remember 2006? It was a year when most people looked up when they walked, when asking for directions was normal, and when there wasn't a constant temptation to hide behind a constant flow of distraction.

Then the iPhone happened. And its imitators followed. Suddenly we became a culture immersed in handheld screens. I remember, in my rebellious youth, decrying television as a tool to dumb down an entire generation. And yet, somehow, we were sold on the smartphone as some sort of revolution.

And ... it has been. Tools like Google Maps and Uber fundamentally change the way we interact with the world. I carry a more powerful digital camera in my pocket than even existed 20 years ago. Technology is powerful augmentation for the real world.

But I have a confession: Until recently, my smartphone was more a source of escape from life than an enhancement of it. I'd use it to avoid life: browsing social media, reading toxic articles by people whose main interest is selling me something, or catching up on the latest outrage porn.

"But it's just entertainment!" "It's fun!" "You're being too serious!" Then why does it seem like most of my generation is chronically depressed or anxious? I posit that all this information is doing something sinister to our minds and bodies and that the science will say so soon enough. Could it be that we'll soon find scientific consensus that chronic Internet use is as harmful as chronic sugar consumption or smoking?

So... I decided to quit. I decided it was time to turn back the clock—back to when I remember feeling more contented and less stressed and more creative. The year was 2003.

Remember 2003? There were no smartphones. The Internet was gaining in popularity. Facebook hadn't quite launched. It was a simpler time. A time when you could leave the Internet back at your house and spend your time uninterrupted. Remember?

That's why I quit all social media. I communicate with my friends just fine via SMS, email, and phone calls.

That's why I sold my iPad. I don't need another black glass distraction machine in my life.

That's why I used iOS's Restrictions to disable Safari and the App Store on my phone. I don't want infinity at the touch of a screen in my pocket anymore.

Remember when you could leave the house without getting interrupted? That's why I also disabled all my notifications on my iPhone, except for phone calls. That means no text message notifications, either. Life's just better when you're fully engaged.

That's why I'm vowing to read paper books and magazines again. I want to feel the pages on my skin. I want to feel a sense of commitment to what I'm reading. I want to know infinity isn't a home button away. I want to feel safe.

Those are my tactics for a happier digital life.

Addicted to advice

Self-help books. Articles on Medium and Thought Catalog. Top ten lists. Seminars. Order my monthly coaching package.

And in rushes the anxiety. Are you doing everything you could be? Are you doing enough? Do you have what it takes? What will happen if you don't act now? Are you falling behind?

Are we addicted to advice? Are we listening too much too often to the babble of other people who tell us they know better how to be?

I challenge myself today to rely on instinct. To act on intuition. To beat my own drum and to listen to the song.

I'm Teejay, and I'm a recovering advice addict.

A notificationless life

I'm an anxious person.

Wait, strike that. I'm striving not to carelessly apply labels. I sometimes suffer from anxiety. There. That's better.

I sometimes suffer from anxiety. Having spent the majority of my waking adult life in front of a screen, I'm no stranger to the anxiety-inducing nature of life online in 2017. The average computer or smartphone user has hundreds of apps vying for their attention, each hoping to take a slice.

It didn't used to be this way. Before 2009 and the introduction of Apple's Push Notification Service, your iPhone left you alone except for when you received a phone call or a text message. Those were simpler times.

Now, if we don't do something about it, we're subject to a near-constant buzzing and chirping. Emails. Text messages. Tweets. Likes. It doesn't stop. As a technologist, I feel almost apologetic for the culture of distraction that is now our everyday reality.

That's why I want to do you a favor. I'm going to make a suggestion that hopefully will change your life for the better. Ready?

Turn off all your notifications.

That's right. Turn them all off. Even your text messages. Maybe leave your phone call notifications on so people can reach you in case of an emergency. But you haven't experienced the serenity the people of the twentieth century took for granted until you turn off all your smartphone notifications.

Afraid you'll miss something? You won't. If something is important enough, someone will call you.

Are your rituals serving you?

We knowledge workers love rituals. We're always seeking ways to reduce friction, increase productivity, and increase visibility. There's Agile, XP, Kanban, Pair Programming, and now even Mob Programming. There's an entire industry within an industry devoted to teaching others how to apply these principles.

Some teams hold a daily standup. Most hold some form of an iteration planning meeting. And some apply points-based estimations during their planning meetings.

Both standups and estimation have value, depending on your team. If you have a dedicated project manager who scopes the next sprint's work, they might benefit from points-based estimations because they can measure how much progress to expect next. And if you work on a team building a high-touch customer-oriented product, you might benefit from a daily standup to keep your non-technical stakeholders in the loop.

But I've been on too many teams who did one or both of these rituals even though they didn't provide any tangible value. And in many cases, the maturity of modern network tools has rendered these rituals all but obsolete.

Are your daily standups redundant?

Before the likes of GitHub pull requests, it was difficult to, at a glance, see what your teammates were spending their time on. If they had a question, the daily standup served as a space for making inquiries without feeling like you were interrupting their day.

But now that GitHub pull requests enable a one-click view of ongoing efforts by your team and a vehicle through which questions can be asked and answered on our own time, the daily standup is a relic of a less connected past.

And even if you do commit to a daily standup, does it necessarily need to be a synchronous meeting where everyone is present at the same time? I've worked on a team with a #standup Slack channel. We each post our daily standup in the room. Everyone can read up on what the rest of the team is doing that day and whether they're blocked. And no one has to interrupt their workflow to do it.

Ask yourself: Do you get much or any value from your standup, or is it just another mindless ritual?

Are your estimations meaningless?

Stakeholders want to know how much their software is going to cost. This is a reality with which every software developer must contend. But another reality is that software estimation is a losing game.

We can try, to the best of our ability, to assess a software problem and estimate how long it will take to come up with a solution. Armed with an understanding of a fixed software problem, estimating the time to build a solution is actually relatively easy. But software problems are rarely understood correctly ahead of time, and are rarely ever fixed.

Most software problems are complex enough that they require further inquiry after beginning development. There might be a variable we didn't consider during estimation. We might have misunderstood the original problem and gotten that feedback from the customer halfway into development. When was the last time you developed a piece of software without asking for clarification from your customer in the midst of development?

And even if you're fortunate enough to understand a problem thoroughly enough to implement it to the customer's desires the first time, there's a good chance they'll change their mind about it in the middle of development. Maybe they think of a better way. Or maybe business conditions have changed and it makes more sense to do things differently. Whatever the reason, requirements change. And when requirements change, you can kiss your original estimate's accuracy goodbye.

Okay, then what do we do instead?

Estimation and daily standups attempt to solve a real problem: Making sure everyone involved in your project is held accountable and are aware of the changing conditions of your project.

If your team reports that they find value in these activities, then keep doing them.

But if you really consider the opportunity cost of continuing to live by these rituals, you might find their cost outweighs their benefit.

Does interrupting everyone's flow during ongoing high-value development work to hold a daily standup have a net benefit to your team's productivity and happiness? Or would the team be better informed by committing to reviewing open pull requests and tickets once per day on their own time?

Are your estimations providing your product owner with valuable insight into what progress they should expect in the coming months, or are your estimates so skewed from reality that they're meaningless?

Do you own your rituals, or do your rituals own you?

Only build the bare minimum

Founders ought to be a bit less ambitious.

When you bring software to the marketplace, you're competing for attention in a cruel world. Where you focus your resources matters immensely. Because complexity in software is a multipler, new features built today will cost time, effort and money tomorrow.

That's why it's critical to build the tiniest product you can first. The sooner your application is humming along in a real person's hands, the sooner they're going to tell you all the reasons they love or hate it.

Feedback from real users as early as possible is the most valuable asset to your team. When the only user feedback comes from an insulated CEO or project manager, it's likely the feedback received, while well-meaning, is going to be at least a few degrees away from the needs of your users.

Complexity is a multiplier

If there were one sort of interaction I wish I could take back from all my time as a software consultant, it would be every time I nodded my head at a client when they asked me to add one more feature, knowing full well that its addition would be costly and that the client should place their assumptions about its benefit under more scrutiny.

Considering my title of Digital Product Consultant, you'd think I was up to the task. But a point I think deserves being driven home is how we consultants are paid to increase revenue and decrease cost, even though sometimes we act as though we're paid to follow directions.

The fact is, someone who pays money for custom software isn't necessarily going to be aware of the ongoing costs of maintaining a specific software feature. And these costs, depending on the architecture of a given system and its dependencies, can balloon exponentially. That's because added complexity to a software product multiplies cost.

When your application has a single button that, when pressed, shows a predetermined text string on-screen, you've built a simple program. When you make the button show a bit of randomly selected text from a list when pressed, you've built a slightly more complex program.

With each new feature we add to a software program, the resulting complexity increases. It's easy to assume the increase in complexity (and therefore, the inversely correlated decrease in ease of understanding) is a linear progression. But each feature actually increases complexity exponentially.

This means that for each new feature, it's likely you're going to multiply—not add to—the overall cost of maintaining your software.

Therefore, it's prudent to consider the long-term ramifications of implementing a feature. The real cost center is not in its implementation, but in its continued support. How does the new feature play with existing ones? What happens if we later want to remove it? How will our users react?

What are some ways consultants can help their clients better understand the ramifications new features could have on their ongoing maintenance costs? And what are some ways you can protect yourself if you've hired a consultant but are unsure whether you next feature request will balloon into a Great Expensive Ball of Doom?

Is it additive or foundational?

Does the new feature sit beside or on top of other features in a way that doesn't stand to negatively impact other parts of the application? Is the feature orthogonal, meaning it neither creates nor propagates side effects to other parts of your application? If so, the chances are lower that implementing and shipping the feature will result in regressions or service outages. This is what I call an additive feature.

But if your feature involves widespread changes to fundamental components of your application that are in production, mission-critical, and costly should they malfunction, then you're implementing a fundamental feature. In this case, you ought to spend more time analyizing the costs and benefits of building it.

Performing a cost benefit analysis

If you've identified that your new feature will likely have an impact on existing mission-critical infrastructure, you'll want to do a bit of analysis before you give the thumbs-up to have it built.

List the potential externalities that could arise when shipping the new feature. Could it disrupt orders from being processed? Is there a chance that users won't be able to sign in for a brief period of maintenance time? Will you need to perform an intensive migration on your database that could cause downtime and/or integrity concerns?

List each of these and attempt to quantify the best and worst case scenario you can imagine, in terms of the costs to the business.

For instance, if you think there's a chance you could see some downtime to your sales pipeline for 10 minutes up to 1 hour, and on a typical day you see $24,000 in sales, you stand to lose up to $1,000 in sales as a result of implementing the feature. You'll also want to account for the opportunity cost associated with the hours (or days) your team spends resolving the regression.

In addition to the lost dollar value, you should also consider intangible costs like costs to your brand's value, customer perception, and team morale. While these costs are not necessarily measurable, they have a profound effect on your business over time.

When you spend the extra time coming to terms with the potential externalities of implementing a new feature, you'll increase the reliability of your product and reduce stress resulting from outages. While new features stand to make your product more valuable and stand out among your competition, carefully considering how they will affect your existing featureset can save you time, money, and headaches.

How to befriend uncertainty

Yesterday I found out my biggest client will no longer need my services in a couple months.

The last 24 hours have been a bit of a whirlwind of emotions. Part of me is excited. Another part is scared. I have other sources of income and a savings. But I'm still unsure of what I'll be doing in three months' time.

The funny thing is, I've wanted to go off on my own for some time now. I've been frustrated with the monotony of working on one project for years at a time. But now that I'm faced with it, I'm scared and uncomfortable. Why is it that we're so comfortable being unhappy?

Most of us are constantly chasing certainty. We work jobs we may not enjoy so we're certain we'll have food to eat when we get home. We buy health insurance so we're certain we'll be cared for when we're ill. And we invest for the future so we're certain we won't be out in the cold during old age.

But what is certainty, really? You can't see it. You can't reach out and touch it. Maintaining certainty about tomorrow feels good today, but tomorrow it's gone, leaving us hoping for certainty the next day.

And in the face of complete certainty, we're miserable. We become bored. To know that each day will be the same as the last is the definition of a boring existence.

But there's another way. Instead of seeking certainty day to day, we can befriend uncertainty. We can invite it to sit in our corner with us and share its perspective. After all, just think of the things that wouldn't be possible if we had perfect certainty:

Adventure

When we embark on an adventure—whether it's down the street to the cafe to write or to another country for a month of backpacking—the allure of doing it is that we don't know exactly what will happen. We might have a plan or itinerary, but our reason for adventuring is to see the unseen and to take a chance on something new.

Framing each uncertain moment as an adventure can help to ease the struggle of seeking certainty in an uncertain situation. And too, it can help grant meaning to ordinary everyday activities which may have seemed monotonous when framed as such.

Love

In love, we're entering into the most profound uncertainty. We commit our hearts and minds and energy to one person. Expecting nothing in return and knowing it will end in heartbreak or death, we proceed to give ourselves to another person.

No one ever entered into a romantic relationship knowing how it would turn out.

Passion

I'm not sure there was ever once a passionate artist, businessperson, politician, or writer who knew for certain at the start of their endeavor that their efforts would be meaningful and worthwhile in the end.

The reason people do great things is because of this uncertainty—not in spite of it. We are drawn to the idea that we might achieve what others think to be impossible.

The vicious circle

In modern life we're caught in a vicious circle.

We work long hours at jobs we don't really like because we believe it will result in a better future. Our days are spent in pursuit of a tomorrow that will be oh-so-bright if we just keep our heads down and keep working for it. But then, when tomorrow finally comes, we're befuddled at how inadequate the present suddenly feels. And so we seek yet again for a brighter future, working more and more, until the day we die.

And most of the time, the bright future we're after isn't one where our basic needs are met so that we may pursue some higher artistic calling. No, our hypothetical future has shiny cars and gadgets and a big house and daycare and expensive cocktails and luxurious clothing. It's one where we don't have to deal with life's tedium and we can come and go as we please. It's a future where all our problems are solved and we can finally start living.

It's a future that will never come. It will never come because it cannot exist.

It cannot exist because even when all of life's tedium has been eradicated, more tedium emerges: the tedium of boredom.

Left with nothing to push up against, we create new problems. We continue the habit of looking outward for our gratification. And so, we suffer once more.

It's tempting, but futile to seek a hypothetical future with no problems. Because the nature of a life without problems is problematic itself.

Instead, we might strive to accept life's problems without judgment. To take each passing moment as a blessing, because this moment is the only thing we really have anyway.