As a developer, I pride myself on being able to explain techy stuff to non-techy folks. In fact, I think it’s one of the most important skills that a client-facing developer can foster:
Can you understand the goals of the business you’re working with? And not just their goals now, but what their goals might be two years from now?
Can you understand the current technical landscape enough to identify a handful of viable options to solve those problems?
Can you work with the client to weigh the relative pros and cons of those options?
Knowing all of that, can you make a professional recommendation that you believe to be best option for that business, and not just the thing you want to build?
I believe that we have a responsibility as developers to make informed technical recommendations, independently of what frameworks we like, or whether it leads to a bigger contract.
One client may want to update an old CakePHP site, when their business is actually better served by investing in a new React app. Another client wants to “build for scalability,” when a $20 Digital Ocean server will do just fine. Hell, what they need might actually be a closer to a Google Form and an AirTable, rather than a piece of custom software. Sometimes, the most valuable thing you can do for a client is to tell them they don’t need custom software at all.
Yes, these are over-simplifications, and sure, not every client will want you to engage in this analysis. Some clients will just want you to make the thing they want you to make, and that’s okay, too.
But, it’s a good habit to build into your practice.
As developers, we have a tendency to specialize in one language or framework. This makes sense: building mastery takes time and focus. But there is also value in maintaining a T-shaped awareness of what else is out there, of knowing what your chosen toolset does well, and where other options might be better. It’s not the client’s job to know they want a Laravel app with Turbolinks, a Redis cache, ElasticSearch, and a sharded MySQL database; it’s your job to know that, and to believe that’s truly the best thing you can do for the client.