Software is awesome. You’d assume we would say something like that, seeing as how we’re a software company.

But truly, software–great software–is awesome.

  • It can put hours back into your week by simplifying workflows or automating repetitive tasks.
  • It can save you money by identifying opportunities to reduce costs.
  • It can increase income by efficiently exposing data that signals new or latent opportunities.
  • It can add years back to your life by identifying bad habits and providing alternatives.
  • It can simplify how you communicate, improve how you work, and change the way you live.

Like I said: awesome. And that’s not even a complete list. 

But when it comes to enterprise software, there is all too often the notion that truly meaningful, valuable software must also be difficult to learn, hard to understand, complicated to operate, and frustrating to use. 

Perhaps that’s because we believe complicated problems require complicated solutions. Or perhaps it is simply because we don’t ask ourselves why some solutions–especially software solutions–are so difficult.

“If a thing can be done adequately by means of one, it is superfluous to do it by means of several ….” -Thomas Aquinas

As a software company focused on solving complicated problems, we operate with a few guiding principles:

  • Create value. Remove clicks.
  • There’s always a way to make it easier. Find it.
  • If your sixth grader can’t figure out how to use it, it’s probably broken. Try again.
  • Never accept the status quo. Anything less is just lazy.

We believe these things not because we’re a software company, but because we’re software users

There is nothing more frustrating than opening a tool that provides a critical function in your life or your work only to realize it doesn’t do what it’s supposed to, what it does is hard to figure out without an engineering degree from MIT, and even when you do figure it out it takes 5x the effort for a fraction of the benefit.

Perhaps part of the problem is that the barrier to entry for software companies has become unimaginably low. As a result, hundreds of software platforms have been designed and implemented by people with [some] knowledge of the business problem, but no knowledge or experience designing software solutions to solve those (or any) problems. 

It’s like asking someone who has lived in a house to use their knowledge of being a home dweller as the basis for designing, architecting, and building a house. Is there some logic to that? Maybe. Some. You have a pretty good idea of what rooms you need and what amenities might be useful.  But is knowledge of how one might need to use a house going to get you the safest, most efficient, and most functional result? Well, no. Of course not. 

Nevertheless, when it comes to software, we tend to believe anyone who has built a software product must be good at building software. (It sounds even more ridiculous when you read that sentence out loud.)

Like anything else, software products are architected, designed, built, deployed, supported, and improved by teams of people with a wide range of skills and abilities. But great software products are delivered when those teams are all aligned to the common goal of not only solving a problem but more importantly leveraging their unique understanding of the underlying technologies to create the greatest amount of user value for the least amount of user effort.

Great software does three things:

  1. It knows and understands the problem it is solving or the need it is addressing
  2. It provides the most efficient path possible for solving that problem or addressing that need
  3. It constantly evolves in order to solve that problem/meet that need faster, better, and more efficiently over time

To put an even finer point on it, why do you think Google won?

What can OSS learn from Google and ChatGPT? | Passionate About OSS and BSS

Yes, the answer may be more complicated than that. But then again, is it?