Can We Deliver Mobile Apps
Continuously
DAN WATERS
XAMARIN TECHNICAL SOLUTIONS PROFESSIONAL AT MICROSOFT
DAN@XAMARIN.COM | @DANWATERS
We Can Deliver Mobile Apps
Continuously
DAN WATERS
XAMARIN TECHNICAL SOLUTIONS PROFESSIONAL AT MICROSOFT
DAN@XAMARIN.COM | @DANWATERS
Quality Matters More
On Mobile
Short User Sessions
Small Form Factors
Limited Resources
Thousands of iOS and Android APIs
Public web APIs
Backend integrations
Third party libraries
Memory, CPU and network constraints
Count of distinct device types
(out of 682,000 unique devices running OpenSignal apps)
2013: 11,868
2014: 18,768
2015: 24,093
Mobile app quality can be
OVERWHELMING
How can we do better?
Vision, Tools, Processes, and Baby Steps
7 Reasons To Adopt Continuous Delivery
 Much Higher Release Readiness
 Refactor with Confidence
 Consistent, Actionable, Automated Test Reports
 Better Feedback
 Move Faster, Safely
 Better Team Morale
 Higher Quality Software!
Test Sooner.
Faster Release Cycles
Mobile DevOps Vision
Vision for the developer experience – Mobile DevOps
Pick up a task
Write code
Manual tests
Code review
Push commit
CI with
automated
tests
Automated
deployment to
beta users
Review test
results
Tools Demo
(kinda)
The 20 Minute Goal
Conceptual Build Templates
“Quick CI”
• Optimize for shorter
runtime (< 20 min)
• Run on every check-in (CI)
• Includes critical path smoke
tests
• Also includes smoke tests
for features related to the
commit (rotate new features
in and out)
• Small set of critical devices
CI Regression
• Chain and run only if Quick
CI is green
• Larger set of tests and
devices
• Deploy to beta users if it
passes
• Immediately triage if it fails
Weekly Regression
• Scheduled build starting
after everyone goes home
for the weekend
• Includes all tests and all
target devices
• Runtime could be very long
The Highest-Value Automated UI Test For
Mobile Apps
[Test]
[Category(“smoke-tests”)]
public void AppDoesNotCrash()
{
app.WaitForElement(“main_logo”);
app.Screenshot(“App did not crash.”)
}
C# Example (NUnit + Xamarin.UITest)
Happy Test Cloud Customers
Pinterest uses Xamarin Test Cloud to delight Pinners
everywhere, guaranteeing its apps look amazing and
work without issue on any device for over 100 million
users.
Happy Test Cloud Customers
Coca-Cola Bottling Co. Consolidated is transforming their
business with anywhere, anytime accessible field sales
apps powered by Xamarin for Visual Studio, Azure, and
Visual Studio Team Services.
Learn more at www.xamarin.com/customers
3 Key Takeaways
To Help Delight Your Customers and Team
1. Test Immediately
2. Establish a Build
3. Take Baby Steps
Thank You!
Dan Waters
Xamarin Technical Solutions Professional at Microsoft
dan@xamarin.com | @danwaters

Can We Deliver Mobile Apps Continuously?

  • 1.
    Can We DeliverMobile Apps Continuously DAN WATERS XAMARIN TECHNICAL SOLUTIONS PROFESSIONAL AT MICROSOFT DAN@XAMARIN.COM | @DANWATERS
  • 2.
    We Can DeliverMobile Apps Continuously DAN WATERS XAMARIN TECHNICAL SOLUTIONS PROFESSIONAL AT MICROSOFT DAN@XAMARIN.COM | @DANWATERS
  • 3.
  • 4.
    Short User Sessions SmallForm Factors Limited Resources
  • 5.
    Thousands of iOSand Android APIs Public web APIs Backend integrations Third party libraries Memory, CPU and network constraints
  • 8.
    Count of distinctdevice types (out of 682,000 unique devices running OpenSignal apps) 2013: 11,868 2014: 18,768 2015: 24,093
  • 9.
    Mobile app qualitycan be OVERWHELMING
  • 10.
    How can wedo better? Vision, Tools, Processes, and Baby Steps
  • 11.
    7 Reasons ToAdopt Continuous Delivery  Much Higher Release Readiness  Refactor with Confidence  Consistent, Actionable, Automated Test Reports  Better Feedback  Move Faster, Safely  Better Team Morale  Higher Quality Software!
  • 12.
  • 13.
  • 14.
  • 15.
    Vision for thedeveloper experience – Mobile DevOps Pick up a task Write code Manual tests Code review Push commit CI with automated tests Automated deployment to beta users Review test results
  • 16.
  • 17.
  • 18.
    Conceptual Build Templates “QuickCI” • Optimize for shorter runtime (< 20 min) • Run on every check-in (CI) • Includes critical path smoke tests • Also includes smoke tests for features related to the commit (rotate new features in and out) • Small set of critical devices CI Regression • Chain and run only if Quick CI is green • Larger set of tests and devices • Deploy to beta users if it passes • Immediately triage if it fails Weekly Regression • Scheduled build starting after everyone goes home for the weekend • Includes all tests and all target devices • Runtime could be very long
  • 19.
    The Highest-Value AutomatedUI Test For Mobile Apps
  • 20.
  • 21.
    Happy Test CloudCustomers Pinterest uses Xamarin Test Cloud to delight Pinners everywhere, guaranteeing its apps look amazing and work without issue on any device for over 100 million users.
  • 22.
    Happy Test CloudCustomers Coca-Cola Bottling Co. Consolidated is transforming their business with anywhere, anytime accessible field sales apps powered by Xamarin for Visual Studio, Azure, and Visual Studio Team Services. Learn more at www.xamarin.com/customers
  • 23.
    3 Key Takeaways ToHelp Delight Your Customers and Team
  • 24.
  • 25.
  • 26.
  • 27.
    Thank You! Dan Waters XamarinTechnical Solutions Professional at Microsoft dan@xamarin.com | @danwaters

Editor's Notes

  • #6 We know there’s a fragmented device landscape, yet users expect apps to work perfectly on the device of their choice.  They also expect incredible mobile features.  There is just so much complexity in delivering a great app. First of all, there are thousands of iOS and Android APIs.  Apple and Google just recently had their developer conferences here in San Francisco, and each announced over 5,000 APIs in their upcoming device operating system releases alone.  In addition, manufacturers such as Samsung and Amazon each add on their own device-specific APIs, adding even further complexity. Secondly, the average app consumes about 5 public web APIs – such as social login and sharing, news feeds, photo sharing, and cloud storage. Most apps also have connections to business systems through backend integrations.  Internal apps deliver company data, and consumer apps often surface account and product information. We also see that most modern apps consume multiple 3rd party libraries – from barcode scanning, to charting, to encryption libraries, to authentication, to messaging protocols and more. All of these great mobile features need to be delivered on these tiny computers in our pockets with limited memory and CPU resources, subject to network latency, spikes and disconnects. Pulling off a great app on a single device is difficult – pulling it off on hundreds of devices is exponentially more difficult.
  • #14 Apple 2 week review period
  • #27 Look we’ve all been there. Investigating your existing processes, wondering how to improve them. Then we follow this natural human tendency to try to design everything upfront. In my opinion, designing your entire devops process upfront is antithetical to Agile, because you’re not taking the time to learn from your team and how they work best. Take baby steps. Make it work, and then make it better, a phrase I first heard from Pawel Pabich, an engineer I used to work with at Readify who is now at Octopus Deploy. If moving to a structure like this seems too difficult, don’t worry. Just like in code, small changes are much easier to manage. I know that you can do it, and I know that our industry can do it – that is, adopting the best possible devops processes to ultimately get the highest quality apps into the hands of our customers quickly and safely, delighting them. Becaues that’s what we do, isn’t it? Thank you.