Founder at Crystalnix.com
Delivered open-source based frontends & backends to mid-enterprise companies from USA, Europe and New Zealand.
The industries are Telecom (ISP), IT security, Video Streaming, Travel, Inventory Management, Real Estate.
The technology stack: AWS, Django, React, Native iOS and Android.
Let me tell you about my story but from the point of an outsourcing company. In short, I think it is possible to have the most of work outsourced but it's very desirable to have a person who can manage this remote team on your side (or within your business hours).
My partner and I co-founded a start-up in New Zealand with two local business people. He acted as a CTO from the beginning of start-up accelerator and MVP development. The development team is located in Russia.
After funding and a year of work they could hire a local CTO and my partner transferred all responsibilities to him. Currently this CTO works with our team remotely and we had no serious issues in terms of technical side despite of some time difference and lack of personal communication with the team. This model also allows to hire local staff gradually reducing the number of remote members.
So the bottom line is it's possible to organize it but like many people noticed here you will need a person who can manage the tech team. Also I wrote a small blog post that could help you to pay attention to some important details: http://crystalnix.com/blog/2014/04/29/how-pick-proper-it-outsourcing-vendor/
We were a little bit hesitating first couple of times with our customers in terms of asking for App Store credentials and wrote instructions for them since it's really private. But it turned out that most of our customers suggested to share credentials with us not to spend time on publication process that I would not call obvious. Since then we started to ask and work with customers' credentials completely maintaining their accounts.
Like it was mentioned in the previous answer -- outsourcing is a different model of business assuming a bunch of activities aimed at serving client's development process. Having own app that we develop and sell by ourselves I would say that these activities are completely different and requires different skillset that just iOS development. So I'd say that yes it looks to me like a common practice.
No, iOS app store doesn't suggest any options for running trials. You could provide another half of functionality as an in-app purchase (freemium)
Let me please cite a piece of my company's blog article about developing two versions of the same app.
Don’t apply the same UI principles for different platforms. It is always good to have a principle as a foundation and do things according to this principle. This is what our team has done using the principle: “consistent design across all platforms”. We tried to design one mobile app for two different platform (iOS and Android) in the same way. Although it sounds good there were some serious side effects. The process of UI design became a battle between developers of these two platforms. For example, swipe on a cell inside a list is a really easy job for iOS app developers. But for Android developers the implementation of the swipes is quite tricky. Most importantly it is not what users of Android apps are used to. On Android it is supposed that the drop down menu is attached to each cell in the list.
At the same time if you design an app using just standard controls then your users don’t need to learn how to use it. In other words, borrowing UI approaches from built-in apps like calendar, email and notes is a right way to go. However a side effect of such an approach is the same app on different platforms does not look and behave similarly. Therefore a new feature should be designed separately for each platform.
I would add that supporting of old versions of Android (2.2) also will make development a little longer.
Hope this helps.
I don't think there is the best outsourcing value country for everyone. It really depends on your needs. For example, one of our customers has another small team in Ukraine with rare and excellent skill set which was the most important for him in spite of big time difference and lack of English speaking skills. Rather then picking by a country I would filter an outsourcing teams by some general criteria (the order doesn't assume importance, all of them are important in my opinion):
1. Close time zone and business hours intersection (from one of the reports I've red recently: most of European countries tend to near-shore). Desirable to meet in person.
2. How communication is organized (one of the key factors in my opinion, India and Philippines have an advantage in terms of English language and I guess it's much more easier to communicate).
3. Particular skill set, proven experience, references. It will be probably better to find particular experts at marketplace (like oDesk or Elance) and gather a team consisting of them if you need certain industry experience like speech recognition or video processing/streaming. If the skills are relatively general I would seek for a team which is specialized at this particular stack (RoR, for example). I observed both approaches and it worked.
4. Pricing model and budget (fixed price, risk sharing, gain sharing, etc).
I tried Basecamp, Jira, Unfuddle, Trello and PivotalTracker before for different projects which were developed with agile approach. All of them worked fine to me and I needed some time to setup my framework and processes there.
I think it would be worth checking Trello or PivotalTracker which I personally like more than Basecamp because of better agile oriented structure.
I did not actually have too much experience with bookkeeping platforms before. But we stick with Xero and there is no reason why I should look for another option.
According to experience of our team we have stored venue_ids and check-ins names in our own database to be able to reflect these on a map or open 4sq app with a corresponding venue.
Great knowledge of C++ and wide range of utility libraries. Deep understanding of OOD and general projects concepts.