16
Cross Platform Mobile Development & Xamarin Successful Outsourcing

Cross-Platform Mobile Development & Xamarin

Embed Size (px)

Citation preview

Page 1: Cross-Platform Mobile Development & Xamarin

Cross Platform Mobile Development

& Xamarin

Successful Outsourcing

Page 2: Cross-Platform Mobile Development & Xamarin

Mobile Devices – Internet Gateways• Today, mobile devices are,

and will continue to be, the gateway to services and information on the Internet• Globally, smartphones

account for at least 50% of all usage

• Within major developed countries, smartphone usage is at or above 70%

Page 3: Cross-Platform Mobile Development & Xamarin

Mobile Devices – Internet Gateways• Mobile users are far more

likely to use a mobile app to access a service than a search engine like Google• Mobile users use travel

apps to check for flight prices, recipe apps to find recipes & restaurant apps to check reviews and make reservations

• Mobile users share results & the apps used with little regard to platform. They expect apps to be available cross platform

Page 4: Cross-Platform Mobile Development & Xamarin

Reaching +80% of Market Means…• By addressing both Android & iOS –

app developers can reach more than 80% of the market on smartphones• Mobile apps fill specific needs &

transform network-based data/services into user context

• Very well-designed, user-focused apps can reach a significant user market

• But – developing for more than one platform requires significant planning.

• You could have:• One team of highly-skilled, cross-

platform developers • Two or more teams of developers

skilled in native code working on each platform version

• One team of developers with cross- platform tools & environments

• But – which strategy might work for your situation?

Page 5: Cross-Platform Mobile Development & Xamarin

Highly-Skilled, Cross-Platform Team• One team of agile, cross-platform developers, maintaining multiple,

coordinated, native code bases• Assures feature coordination, fast light code, full use of platform capabilities• Sets the team as subject matter experts for product development &

functionality• Requires a stable group of highly skilled & experienced developers who have

worked in cross platform situations with highly interdependent individuals.• For complex and/or high value projects – this can be a very expensive

strategy. Maintaining the necessary team over the product lifecycle is a risk. • If the team size is relatively small (and manageable) the total elapsed time

required to develop functionality will generally be higher than multiple teams working in parallel. If the team size is increased, sourcing costs increase and coordination overhead grows.

Page 6: Cross-Platform Mobile Development & Xamarin

Multiple Agile TeamsNative-Code Focused• Multiple agile teams of developers, each focused a specific, native code

base• Coordinated across project with scrum of scrums for functionality, data & user

interface implementations across platforms• Coordination is key

• High level of collaboration and communication required across entire project team. Can slow development significantly, especially in early phases as teams work to coordinate approaches to common functionality

• Easier to maintain each team of developers • But individuals must have soft-skills necessary to work in this environment• Replacing a team member can have large impact on project productivity if they are

not well-suited to the environment• Can shorten project timeline but, overhead will be higher

• Each team will need to have a target code base QA capability, whether it is embedded or not

Page 7: Cross-Platform Mobile Development & Xamarin

Small Agile Team, Cross-Platform Tools• One agile team using cross-platform tools & environments

• Two could be needed if significant backend (Internet based app) is required• Develop once for multiple platforms (not individually for each)

• Many tools available – picking the right one for the project is critical• Some have better capabilities and produce tighter code• Some have wider acceptance and larger, more experienced, pool of

developers• Once tool choice is made, it is nearly impossible to make a change mid-

stream• For outsourced projects, vendor needs to be part of the platform selection

to ensure there is a match with the resources and experience they can provide

Page 8: Cross-Platform Mobile Development & Xamarin

Small Agile Team, Cross-Platform Tools• Strategy can bring benefits of both earlier approaches – depending

on tools and environment selected• Success depends on a capable tool set that produces code than can be

used on target platforms with little overhead and that leverages the skillset of available resources without a lot of tool-specific (re)training

• Some tools use web-based technologies and produce what amounts to a web-based application. • May be good enough for light applications, but can create serious functionality gaps

for others• May end up narrowing possible functionality upgrades, usability or inhibiting

application maintenance• End app QA is based on successful functionality and is less dependent on

code deployed for each platform. Puts the weight of proper code on the dev team and functionality on the product owner and their team (as it should be)

Page 9: Cross-Platform Mobile Development & Xamarin

Which to Choose?• If you are, or are working with a

high-volume mobile app provider & you have the cash available – first or second strategy make sense

• But, not everyone wants to take the risk (even if they have the money)• +4 million apps available from

authorized app stores• Getting a foothold takes money and

time after app is released• Native code apps are a nice way to

go but you have to control cash burn to be able to be successful in the long run

Page 10: Cross-Platform Mobile Development & Xamarin

Entrepreneurs, Lean Startups• If you are using the

Lean Startup approach to bring your app-based service to market• You probably are not expecting to

“bust a market” on release• You want to start with a

Minimum Viable Product (MVP) and evolve to meet the needs of your market

• Strategy is lower risk but requires commitment of resources and cash to “go big” when the product meets the need of target user

Page 11: Cross-Platform Mobile Development & Xamarin

Entrepreneurs, Lean Startups• In a Lean Startup methodology, the third strategy begins to fit• Team size can be relatively small with high productivity if the tool set selected leverages team skills and fits for the target application• Easier to maintain team over development period •Code base is unified, not separate & unique• Smaller teams can be more agile, adapted to Lean and able to manage change required to be successful

Page 12: Cross-Platform Mobile Development & Xamarin

Xamarin as a Toolset• As a toolset for an agile development team with a cross-platform

toolset and environment – Xamarin is a useful example• Allows developers with experience with the C# programming language

to develop native code mobile apps for Android, iOS, and Windows with one code base

• C# developers can work in Visual Studio with companion tools that bring in capabilities from backend systems, cloud services, UI controls, 3rd party libraries

• Provides test cloud that allows the many flavors of each platform to be tested without jailbreaks or dealing with multiple app stores

• Rich environment comes from success of toolset as well as funding and eventual purchase by Microsoft

• Prime example of a stable, rich, cross-platform environment for mobile development

Page 13: Cross-Platform Mobile Development & Xamarin

Xamarin as a Toolset• Xamarin is backed by over 1 million developers

working in 120 countries• Level of acceptance makes a difference if you are trying to

resource or find an outsourcing vendor• But – because it is relatively transparent to the development

team – you won’t find many vendors or resources with a search for Xamarin skills. Instead, you will find them listed as “mobile C# developers.”

Page 14: Cross-Platform Mobile Development & Xamarin

Bottom Line• Mobile apps will continue to grow and are the primary

method for accessing global network services. There is no turning back. • Mobile app development needs to be able to reach

across platforms to reach market successfully (in most cases).• But because there are multiple, very different platforms and

many implementations in the field, this is a serious issue• Developing a development strategy for multiple

platforms is non-trivial. How you deal with cost, time-to-market, shifts in user requirements, usability, and more are critical issues

Page 15: Cross-Platform Mobile Development & Xamarin

Bottom Line• Available resources & skills make a difference. Picking a strategy

that gives you good access to resources and a completive pool of vendors you can depend on during product development is important• Developer cost per hour is NOT the determining factor in

managing project cost. A strategy with larger, specialized teams and upfront costs becomes very risky in a market of 4 million apps. You have to have the operational cash to last and grow at the right time for the market• There are other toolsets & environments like Xamarin that can be

good for specific situations. There is no “one size fits all.” The skills available from your team or vendor are a good starting point.

Page 16: Cross-Platform Mobile Development & Xamarin

We’re Scio• Scio is a provider of nearshore, software development

service for our clients in North America• We develop mobile & Internet-based apps using a variety of

approaches, depending on the situation & client needs• We would be happy to talk to you about your next project

and tell you how we can help you achieve success• Contact us for more information