Does this sound like you?
You are a founder with an idea for a new product.
You’ve validated the idea.
You’re ready to put some concrete work into the product.
Whether you’re working through the decision alone or you have a co-founder with a technical background, you’ve come to the point where it is time to make some decisions and turn your idea into reality.
There is no stock answer and these ideas do not individually guarantee a clear choice. But together they will give a place to start and a framework for making your decision.
Lean on your strengths
If you already have a co-founder with a technical background or a developer you have been comfortable working with on previous projects, lean on them. Your advantage will be that you can move faster with the technologies you are already familiar with as an organization.
A caveat to this is that they are going to be more prone to use the technologies they are more familiar with, and due to special circumstances, the choice may be inappropriate. We’ll talk about some of those considerations.
Software-as-a-service products do not necessarily have to be web-based. It is likely,
Products with a primarily desktop UI like Slack, Adobe CS, or even Microsoft Office might be built using a technology platform more conducive to desktop development like C++, C#, or Objective-C.
If your product requires interactions with specialized hardware such as scanners or other sensors, you may be looking at C or Assembly.
Products that deal with massive processing of data would benefit from a platform like R or Python which are particularly built to solve those needs in a more efficient or performant way than others.
The talent pool surrounding particular technology platforms can vary. If you are looking at a new, hip technology, chances are it doesn’t have a mature developer community around it. There may not be a lot of people that have experience with it. Similarly, it’s specialized nature may result in a smaller community that has developed around it.
On the other hand, a well-established general purpose language like PHP, Ruby, Java, C#, and others will generally have a large community of developers around them. This makes accessing talent much easier.
The location of your company or the location you want to hire in can have a large impact on your ability to find and recruit talent to your team. If you are willing to work with someone anywhere in the world then the options vastly increase over the preference to only work with someone local.
Larger cities often have a technology platform that is more prevalent. For instance, in two cities I have lived in, the conventional wisdom was that one was “a Java town” or the other is “
A lot of times a particular industry will have a particular technology platform that becomes the standard. For example, conventional wisdom says that the financial industry primarily utilizes the Java platform while the healthcare industry primarily utilizes the Microsoft platform. Going back to our previous example,
If you are starting a product in a particularly large, established industry, this is relevant because off integrations and recruiting within the industry.
If your product roadmap plans to have critical integrations with other platforms, using the technology platform utilized by your industry can make this easier. Modern APIs and integration technologies have greatly reduced this concern but it’s worth considering.
Related to finding and recruiting talent, people who have prior experience and industry knowledge will also likely have the most recent technical experience with the dominant technology platform used in their industry.
Total Cost of Ownership
The total cost of ownership of a technology platform is not only the potential cost of purchasing the technology but its operation cost as well. Revisiting our talent discussion briefly, remember that a newer or more specialized technology platform may have limited access to people which in turn might lead to higher costs in employing that talent to work on your product
Newer technology platforms also suffer from increased management costs without well established and understood toolsets. There may be a lack of tooling for developers which reduces productivity during development as would a lack of mature tools to manage deployments and do automated testing. These platforms also represent a higher security risk not having benefited from long periods of testing and exposure to real-world scenarios. A lack of support along with bugs in the technology can hamper the ability to resolve issues efficiently.
An older, more seasoned platform would benefit from well-established communities and robust tooling around the platform. These platforms are exposed to a wide range of situations and are time-tested giving them an opportunity to work out bugs or security vulnerabilities.
Beware of the new shiny technology. Often developers are attracted to build features using new and untested, but exciting technologies. New technology is certainly valuable and can bring a competitive edge to the business. However, as we previously discussed, it is often offset by volatility, unreliability, and a higher total cost of ownership due to lack of tooling, resources, and general support. In general, you should avoid these technologies unless you have a large budget or experienced technical staff.
After taking these factors into consideration, don’t let a particular one be the basis of your decision. Conversely, don’t let one of them move you to inaction. If you’ve worked through the factors and done some due diligence, jump in and ship. For most situations, it’s going to be hard to do something that is such a bad decision you can’t change directions and the
We’ve only touched on software development languages but these considerations generally apply to the choice of technology whether you are choosing a database, UI framework, or server technology.
When looking for a developer or a trusted partner, talk to several and find out what their approach would be. A pattern may emerge that will give you a path to start on. Certainly the better the decisions you make up front will translate to more efficiency or less technical debt down the road. An experienced senior technologist can help you architect a solution that will provide a foundation for success.