Simple (adjective) - easily understood.
Easy - (adjective) - achieved without great effort.
Last week, I had a friend of mine say, “Why did you build a time tracking app? Somebody can copy it so easily. It seems so simple.”
I had to explain to her why “simple” does not mean the same thing as “easy”. Sure, many people can build a small time tracking application, but making it simple is actually the hard part.
Easy implies that building a software application is “achieved without great effort”. This is far from the case.
Building software that is flexible, intuitive, and maintainable is one of the hardest trades in the modern world (along with accounting, investing, law, medicine, etc). We’ve been studying software engineering for many years to get to the point where we could build and deploy a stable application. This includes database architecture, server performance, various programming languages/frameworks, responsive design, UX/UI (user experience and user interface), and the list goes on. After many years of professional software development, I would argue that the hardest thing to get right is the user experience.
When we first used other time trackers, we were amazed at how many applications forced you to set up things before getting started. Some of the main screens were way too cluttered, had useless calendars, multiple windows, or confusing interfaces. I said, “It’s a time tracking app! All I want is a simple start and stop!”
The problem these apps ran into is time tracking is actually a complex problem. There are customers, projects, invoices, billing rates, and other objects you must implement. If you’re not careful about how you present these features, you can drive away users through bad design.
Building an application is the “easy” part. Making it “simple” is difficult.
Simple means it’s “easily understood” and this was our goal from day one.
When we first had the idea of HoursLogger, we intentionally wanted to do less than other apps. We wanted to build “simple” into the product through great design. Most apps have too many features that are unnecessary. They have too many buttons, settings, and fluff to make the app seem bigger.
We REALLY pride ourselves on the things our app doesn’t do. If we add a feature to our app, it’s because we truly believe it is NECESSARY for consultants to do their job well. It takes careful planning and implementation to make sure we aren’t straying away from this core value. This keeps us from adding too much that could potentially confuse new users.
We spent countless hours selecting smart defaults so users can hop in and start right away. Clients, tasks, and other objects can all be created on the fly so you don’t have to navigate to a different screen to create related objects. This is not as easy as it sounds and requires addition programming effort to get correct.
Do not confuse simple with easy.
When something is done well, it’s hard to see how difficult it really is.