Software Principle 11: The Only Constant is Change

The only constant you should hold in life is change. If you hold change as a constant, you will learn to adapt and manage life’s complexities well. Your software should reflect this principle and allow itself to evolve and adapt. It’s essential to keep things simple while also ensuring that you can adapt the system to the inevitable yet unpredictable future. A simple system is easy to evolve.

Software Principle 10: Keep State at the Edges

Complexity in any system is what creates defects. Developers are easily able to reason about a single unit of code or even sometimes, a simple component.

If that is the case, then why are defects understood to be a natural part of software development? There are two causes of this: intricate integration patterns and state.

Software Principle 9: Enforce Your Boundaries

Most systems of non-trivial scale have multiple components or layers within them. Each one of these components or layers becomes its context.

Occasionally, and a lot more often now than in the past, these components communicate to external systems as a means to integrate third-party functionality.

Each one of these components has its interface and boundaries that define it.

Here’s What CIOs And Company Leaders Really Need To Know About Successful Digital Transformation

Here’s What CIOs And Company Leaders Really Need To Know About Successful Digital Transformation

Today, every company is becoming a technology company—whether they like it or not.

Even if it's a hardware store, like Lowes, people will come in with smartphones and headphones. Business owners have no choice but to respect that. They need to be able to deploy technology solutions to give customers the technological experience they’ve come to expect. If they don’t, Home Depot or other competitors will. And when they do, they’ll be able to provide a better customer experience.

Why Entrepreneurs Shouldn’t Fundraise—Yes, You Read That Right

Why Entrepreneurs Shouldn’t Fundraise—Yes, You Read That Right

Most entrepreneurs consider fundraising to be the first and most crucial step to starting a business. A quick Google search will confirm—there’s no shortage of articles out there about how to raise large amounts of money for your startup, and fast. 

But the notion that you need to fundraise to start a company can be misleading. You don’t.

Founders Love The Mantra, “We’re Creating Value In The World.” Here's How To Tell Whether You’re Actually Succeeding

Founders Love The Mantra, “We’re Creating Value In The World.” Here's How To Tell Whether You’re Actually Succeeding

When you think about what “value” means, you might see dollar signs. That’s what many companies think, too. 

In an era where social responsibility is increasingly important to consumers, companies are scrambling to showcase their “values” as a way to turn in a profit. There’s a reason so many tech company slogans sound similar. It’s not just that they’re all trying to do the same thing (make a profit), it’s also that they want to take our attention away from their primary goal—the bottom line. 


The Good, The Bad, And The Ugly Of Regulation In The Tech Industry

The Good, The Bad, And The Ugly Of Regulation In The Tech Industry

Today, we're all walking around with mini-computers in our pockets more powerful than all of NASA’s combined computing in 1969. In fact, most of us can hardly remember a time before smartphones—despite the fact that the first iPhone launched in 2007.

Tech evolves at a breakneck pace, but regulation is often slow to catch up.

Here’s what I mean:

Companies have been using our personal data to target sales and advertising for years, but it wasn’t until last year that lawmakers intervened in an effort to protect consumers.

Digital Transformation Isn’t Just For Silicon Valley. Here’s How It’s Impacting The Way We Live, Work, And Connect On A Global Scale

Digital Transformation Isn’t Just For Silicon Valley. Here’s How It’s Impacting The Way We Live, Work, And Connect On A Global Scale

For as long as we can remember, we’ve had houses, cars, and streetlights.

But today, there’s often more to these staples of modern life than meets the eye. Where a streetlight was once timed to turn red every 30 seconds, and after 15 seconds, turn green again—today, that light is smart, meaning it adapts to movement by pedestrians, cyclists and cars. And where a house was once just four walls and a roof, today it adapts its temperature based on its surroundings. Our cars are no longer simply at the mercy of the drivers—today, they can communicate with each other to slow down based on traffic patterns.

3 Ways Thoughtful Software Development Can Transform The Tech Industry (And Society) For The Better

3 Ways Thoughtful Software Development Can Transform The Tech Industry (And Society) For The Better

Businesses, like people, are all guided by different values.

Some want to sell ads, others are focused chiefly on adoption, and some only care about the bottom line. Most of the time, a company’s values fall in line with meeting the needs of their customers. But occasionally, a company’s goals and solving its customers’ pain points don’t quite match up.

This is a phenomenon that’s especially problematic—and common—in the tech space.

Software Principle 8: Buying is Focus

There is a common thought in entrepreneur circles that greatness isn’t defined by what you say yes to, but what you say no to. This rings true in many domains but in software it can become a way of life. In software, the build vs buy challenge is fraught with strong opinions either way. There are a lot of incredibly smart engineers that can build almost anything given the right resources. 

Software Principle 7: Abstraction- Why Underabstraction Is Almost Always Better

Abstraction is a powerful tool. Some of the greatest inventions in technology: operating systems, programming languages, compilers, etc. are abstractions. However, when misused or misunderstood, they can be destructive.

Over abstraction can create unmaintainable, untestable monstrosities. Under abstraction may mean duplicate code, but duplicate code is almost always better than unmaintainable code.

Software Principle 6: Consistency is King

Most personal development books will tell you to set goals and work towards those consistently.

Consistency forms habits and creates progress towards goals no matter how small.

There’s an often-quoted statistic that if you do 1% a day or get 1% better you are 37.78x closer to your goal or improved as a person.