cross-platform mobile development & xamarin
TRANSCRIPT
Cross Platform Mobile Development
& Xamarin
Successful Outsourcing
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%
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
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?
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.
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
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
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)
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
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
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
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
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.”
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
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.
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