So there are a thousand ways to build that killer app but how do you choose which technology to use? I don’t believe there is a one size fits all technology platform. You are somewhat limited within the mobile space because, strictly speaking, you have to construct your applications using the tool kits provided by the mobile device manufacturers (although there are even exceptions to this!).
Here are some of the questions you need to ask when choosing:
- Are you rebuilding or starting from scratch? If you are rebuilding, think of any issues/limitations you had with the choice of technology that you had the last time.
- Do you have any technical talent who are proficient on a specific platform? If the answer is yes, then use that technology. Unless your team is using a very obscure and antiquated technology, most of the modern technology platforms can be used to produced very efficient, scalable and sturdy products if they are correctly designed and implemented.
- What’s your budget? It’s sad but true, the all might dollar/pound/euro still rules the roost when it comes to decisions on technology for most people. The cost of implementing a Java platform is much higher than the cost to roll out a comparable system in PHP.
- How quickly is the product required? The delivery time of a product can often determine your technology choices. For instance, because of the tools inherent to Ruby on Rails, it is much quicker to develop systems on that platform than say PHP.
- What is the use case for the product? Is this a proof of concept or a full blown production ready system? Proof of concepts can be built quickly using throw away technology.
- How prevalent is the technology? This is important when you have to grow your team. If there are only a few technically competent people in the technology, growing your team will become difficult in the future.
Often you’ll find that the choice of initial technology platform isn’t the most important choice. Ensuring that the product is well designed and that you have a competent team of technical resources is far more important than worrying about things like scaling.