There is a lot of debate these days about whether or not the technology behind a product matters. Does it matter whether you choose C# or Java as your programming language? Does it matter if it’s on Windows or Linux? Does it matter if it’s MS SQL or MySQL?
The conventional wisdom is to view this issue from an end-user’s perspective. To the end user, the technology doesn’t matter. It’s the product that’s important. If the product is good, the users don’t care if it’s written in Java, C# or Cobol. They just want something that solves their problem.
But a lot of software companies and IT shops are using this argument to imply that the technology they choose for development makes no difference. Who cares if they choose Perl or Ruby or C#? After all, the end users don’t care, so why should it matter to them?
The fact is, choosing the right technology matters more than most people think and could be the difference between shipping a great product and creating vaporware. Today, it would be comical if an IT shop chose Cobol as their development language or banked on FoxPro as their database backend for new projects. If the technology didn’t matter, these should be sound choices, but it’s obvious to most in the software business that banking on these particular technologies would have disastrous results. So the question is why? Why does choosing the right technology matter?
There are a number of reasons:
Attracting the Right Talent – By far the most important aspect of choosing the right technology is making sure you can attract the talent that can get the job done. If the best brains in the world, the ones that can get jobs anywhere, avoid your project because of the technologies you have chosen, you’ll be left with second tier software engineers who are forced to accept a position purely for financial reasons. As tough as is to find truly talented people in the US job market today, you want every advantage you can get. So, choose the technology that will attract the best possible talent.
Time to Code – The amount of time it takes to write a solution to a problem plays a huge factor in choosing the right technology. If you plan to write a program that will be used in the 2008 Super Bowl on February 3rd and you are starting to write code now, you better choose technologies that can provide huge shortcuts in writing the code. Delivering a solution on February 4th, no matter how good, is completely worthless. On the other hand, if you are choosing shorter coding time when time to market is not an exceptionally important factor, you may be picking a technology that does not scale well as the application grows in popularity.
Execution Speed – As computers get faster, there’s less and less concern with the execution speed and hardly any thought is given to which technology should be chosen based on this criteria. But talk to any serious game developer and they’ll set you straight about the importance of execution speed of their code and why this factor alone has kept them one generation behind on the latest language developments. When C became popular, game developers were still doing assembly. When C++ was big, they finally made the switch to C and while C# and Java have taken over, games are still largely written in C++. The reason? Execution speed.
Code Maintenance – Choosing the right technology from the standpoint of code maintenance can mean the difference between longevity and M.C. Hammer. If the code cannot be easily maintained, enhanced and expanded, it will collapse under its own weight.
- Future Support – Will it be around in the future? This is a tougher question to answer, but if the future support of a technology is largely in question, it might be smart to avoid it. If a technology does not hit the mainstream, it will be harder to find talent and there will be a lack of state-of-the-art development tools, affecting time to code and execution speed. Choosing popular technologies that are well supported by the industry and profitable companies can be an easy way to avoid future pitfalls.
Although the casual gamer enjoying a video game couldn’t care less if the game he’s playing was written in C++ or Python, the success of the game largely depended on the chosen technology. That’s why you’ll find larger more sophisticated IT organizations care a great deal about the underlying technology of the products they choose. They want to make sure the future viability of the products and companies they choose are sound.
At Axosoft, our choice to adopt Microsoft .NET and SQL Server as the technologies of choice has given us a significant competitive advantage providing us an edge in each of the 5 categories mentioned above. From attracting the right talent (developers often leave their jobs just to use newer, more exciting technologies) to shorter time to code to execution speed, code maintenance and future support. In each of these categories, .NET provided Axosoft with a significant competitive advantage allowing us to grow faster and provide a more solid product.
Stay on the cutting edge of software development by getting innovative tips, trends and stories delivered to your inbox every month!