Skip to main content

Some Standards Are Meant to Be Changed

“We have always done it this way” may explain how a standard developed, but it does not prove that the standard is still correct. Software development is built on conventions. Coding standards create consistency. Architectural patterns help teams solve familiar problems. Framework guidelines reduce unnecessary decisions, while established processes make development more predictable. These standards […]

More...

Just Because You Can Doesn’t Mean You Should

Modern software development gives us an extraordinary range of possibilities. We can add animations, dashboards, artificial intelligence, real-time notifications, advanced filters, personalized recommendations, multiple configuration screens, and integrations with almost any service imaginable. The technical question is often straightforward: Can we build it? In many cases, the answer is yes. The more important question is: […]

More...

Good Engineering Is Measured by Longevity, Not Complexity

Complex software can be impressive. It can include sophisticated architecture, extensive automation, numerous integrations, and layers of abstraction designed to address every imaginable requirement. None of those qualities necessarily make it good software. The more meaningful test is whether the software continues to work, remains understandable, and can adapt as the organization changes. Good engineering […]

More...

Simple Software Is Usually Better Software

Software has a tendency to become more complicated over time. A client asks for one more option. A developer adds another setting. A plugin introduces a new integration. A workflow that once required three steps now requires seven because the system has been designed to handle every situation someone could imagine. Each addition may seem […]

More...

Technical Debt Is a Shared Decision

Most developers have heard the saying: Good. Fast. Cheap. Pick any two. It has survived for decades because it’s true. Every software project has constraints. Budgets. Deadlines. Resources. Technology. Business priorities. No project has unlimited time or unlimited money, and no development team has unlimited capacity. Every project is a balancing act between what is […]

More...

Designing for Likely Change Without Over-engineering

One of the most important skills a software developer can develop isn’t writing code. It’s analysis. Before writing a single line of code, we should be asking questions. Software is constantly evolving. Today’s “final requirement” often becomes tomorrow’s change request. Planning Without Over-Engineering Years ago, I was working on a project when a product manager […]

More...

Code Is Read Far More Often Than It’s Written

Building upon what was discussed in a previous article, https://highland-software.com/build-for-the-next-developer-not-just-yourself/, we further discuss the need for clean code. “The compiler only needs correct syntax. The next developer needs understanding.” One sentence has influenced the way I write software more than almost any other: Code is read far more often than it’s written. Every developer knows […]

More...

Build for the Next Developer, Not Just Yourself

“Good software should never depend on the original developer being available to explain it.” Several years ago I accepted a contract to replace a developer who was leaving a company. The website was built on Drupal. At least… that’s what everyone thought. What I actually inherited wasn’t really Drupal at all. The login system had […]

More...

Your Website Doesn’t Need 500 Features. It Needs 15 That Work Well.

“Just because you can, doesn’t mean you should.” One of the hardest lessons I’ve learned over the years has nothing to do with WordPress. It has everything to do with restraint. As developers, we’re surrounded by incredible tools. Themes with hundreds of customization options. Page builders capable of creating almost any layout imaginable. Plugins that […]

More...

Technical comTechnical comparison diagramparison diagram

Why Most WordPress Performance Problems Are Self-Inflicted

One of the most common conversations I have with clients begins with a familiar complaint. Their website feels slow. Pages take too long to load. Mobile performance scores are poor. Visitors are dropping off. And almost immediately, the search for solutions begins. Install a caching plugin. Install an image optimization plugin. Install a CDN plugin. […]

More...