
Posted on 12 Feb 2025 in Business,Development
In the past decade or two, we’ve seen an explosion of web development languages, frameworks and other tools for creating content and experiences on the web. This has given us (seemingly) endless possibilities as to how we create websites. But, as we’re seeing, this often has a negative impact on development practices rather than the desired positive one.
Unpopular opinion: we have too many choices in software development. The endless options of languages, frameworks, and tools are slowing us down, not speeding us up. In this article, I’ll break down the main reasons for this and share 3 key steps to avoid getting negatively impacted by this (over)abundance of choice.
Decision paralysis
Having too many choices almost directly translates to decision paralysis, i.e. the inability to decide between several equally adequate options.
In the world of software development, particularly in front end web development, there are countless libraries and frameworks which are able to more or less provide the same features as well as the same look and feel.
React or Vue? Or maybe Angular? Or perhaps you want an even more specialized framework, such as Next.js for React or Nuxt.js for Vue? Or something newer, such as Astro?
It typically boils down to what the people working on a particular project already have experience with, or whatever the client’s requirements are in the case of development agencies.
Shallow expertise and lack of focus
It takes time and effort to develop deep expertise with a particular technology. Experimenting with many different languages and frameworks can be interesting for hobby and/or beginner developers to help them find their footing, and it’s difficult to avoid the allure of new tech for personal projects, especially with the recent focus on improving the developer experience that we’ve seen across many frameworks.
However, professional aspirations require a greater focus on a particular direction, and frameworks and tooling in that specific sphere can then be explored rather than trying out completely new solutions.
For development companies, a lack of focus can be a huge growth impediment and a detriment to long-term stability. While it may be tempting to try out a new technology in order to secure a new client, you need to consider carefully whether the new business justifies the investment, especially since your lack of expertise in the new technology makes it less likely to forge a long-term partnership with the new client.
Constant context switching
Working with a lot of disparate technologies at once also increases the mental strain on developers, making it more difficult to focus and write the most efficient code due to frequent mental context switching.
This often negatively impacts developer productivity, especially with more complex projects, similarly to how too many meetings hamper productivity.
Technical debt from abandoned experiments
Finally, too much experimentation doesn’t just waste time and impede progress, it can also result in a lot of technical debt, further accumulating issues the longer it remains unfixed.
While technical debt doesn’t always need to be the worst thing ever, the more different technologies you have contributing to your technical debt, the more difficult it will be and the longer it will take to resolve things.
This is true even if the team mates working with these outdated technologies are still at your company – but chances are that they won’t be, which might lead to disaster scenarios where you either accept the unfixable technical debt, or hire an expert in a technology you don’t need or use just to get you to that baseline level of healthy technical debt.
So, how can businesses and professionals avoid getting negatively impacted by the vast choice of development technologies?
Let’s break down 3 proven tactics to help you find focus and hone your skills as a development professional.
1. Select a strong, versatile stack
Probably the most important thing is to select a robust technology stack that gives you both stability and versatility. At Agiledrop, we’ve specialized in PHP-based web development ever since our inception, also focusing more and more on front end JavaScript technologies over the past half a decade.
So, with only 2 web technologies, we get access to the huge amounts of innovation happening in their respective ecosystems, and we’re able to satisfy changing client needs without at all diluting our expertise and/or the quality of our services, but instead only continually improving them.
Thanks to PHP, we’ve developed a deep expertise in Drupal which is itself experiencing a kind of renaissance over the past few years. We’ve also embraced Laravel, which is drastically gaining popularity and is becoming pretty much synonymous with PHP development, and we’re now helping more and more high-level clients as Laravel Certified Partners.
JavaScript gives us access to the most popular frameworks and libraries, i.e. React and Vue, as well as different innovative and streamlined frameworks from their communities, such as Next.js, Gatsby and Nuxt.js.
Additionally, we can develop TypeScript-based websites and apps for those clients that have the need, and we can also experiment with newer/smaller libraries such as Vite – all without leaving the JavaScript ecosystem or impeding the growth of our developers.
2. Build a team of specialists
Speaking of the professional growth of developers, building a strong team of experts is the second step to shielding yourself from the negative impact of the abundance of choice in software development.
While targeting the right specialists in your HR practices is certainly a key component of this endeavor, you should also look for people who will be a good culture fit for your team and properly assist them in developing the necessary expertise internally.
Don’t underestimate the value of junior developers who are eager to learn and build, and don’t gatekeep by only focusing on finding the top talent from the get-go, as all of this effort could instead be put towards improving your own culture and processes to facilitate learning and promote collaboration between senior and junior developers.
A strategy that has proved to be extremely successful for us at Agiledrop is developing high-level onboarding programs for the technologies we specialize in, based on cases and issues from our past client work.
This not only makes it easier for newer developers to acquire new skills and to progress, but also allows the senior developers who help them in this process to hone their existing skills.
3. Embrace the ecosystem
This final point is one I’ve already touched on throughout this article: tapping into the ecosystem surrounding the technology you specialize in. This is likely the best way to turn this abundance of choice to your advantage, and help you innovate and grow rather than slowing you down and/or leaving you with technical debt that’s hard to get rid of.
Conclusion
Facebook was first built with PHP. Amazon with Java. It's not about the tool, it's how you use it. And, hopefully, my article has given you some useful insights which will help you use the tools that you have in the best way possible.
In case you need some extra help with your development, learn more about Agiledrop’s technology stack and how we work with development teams, or reach out directly if you have any other questions. Looking forward to hearing from you!