A cross-platform mobile development is a mess. In order for a company to develop a money making application on different platforms, we need to hire either developers who know a particular platform (which means we have to start as many projects as many platforms we have to support) or we have to hire developers who know it all (which will mean the application will be of average quality).
If we look closer to investigate the problem, we will see, that using a right design and architecture, it will not be a mess any more. The design is more important than the actual coding in any project .
Many methodologies, including Agile and similar flavors are not applicable in this field, because they prioritize "working progress" and customer immediate satisfaction compared to a solid design and architecture.
Agile methodology delivers software very quickly, that's why we need JIRA and similar tools to track all these bugs that have been created in environments, where "DONE" is more important than "DONE RIGHT".
What we need in order to successfully target multiple mobile platforms, is to slow down, sit back and have a cup of tea or coffe and start thinking... I will not be using "scientific" terminology on purpose, because terminologies are invented by people pushing for certain ideas. I don't like being pushed.
Many bright developers have created systems for Android, iPad, iPhone, Windows Phone , Blackberry etc. It is good, each platform has its strengths and these developers tried to squeeze as much as possible out of these devices. It is excellent and for games and specialized applications it is the only way - to go native.
Most of us work for corporations, which are in business to make money, it means, they need to target as many customers as possible. One problem is, that all the customers are using different devices and they are not willing to buy another device only to be able to run our application. Most of applications developed by corporations don't need to squeeze as much as possible from particular device. In fact, they all are similar The application takes input from the user, makes some calculation and possibly saves the result in a database.
And of course, the company producing the software wants to use developers who can be easily replaced or hired. They simply don't want to invest in having Java, Objective-C, C++, C#, etc. experts to be able to develop one application and I don't blame them. It is sufficient to have experts in one of these languages, because then they can come and go and the company will not feel the pain.
In this blog I will be playing with idea of creating a development stack that is good for most corporate applications.
Stay tuned...don't go anywhere.