preventive · data informed mobile app development : a proactive approach to maintaining a healthy...
TRANSCRIPT
PREVENTIVE
Philips Innovation Event
Philips mobile pitch
OVERVIEW
1. Mobile platforms changes the risk economics of high quality app development
2. The core attributes and components of a mobile platform
3. Typical reasons for poor app performance - The Mobile Pareto’s
4. An architectural framework for minimizing application failure
5. Our Point of View on Building Mobile Platforms - Data, Design, Productand Engineering.
6. The end state
7. Our Approach to building Mobile app platform for Philips
8. Summary - How Does A Robust Mobile Platform Help Philips
MOBILE PLATFORM CHANGES THE RISK ECONOMICS OF HIGHQUALITY APP DEVELOPMENT
Smart Air
Homecare Physician
Healthy Drinks
Grooming App
DreamMapper
Build once, Test once and Reuse multiple times
Quick Time to Market,More resilience,Improved Customer SatisfactionBetter App Ratings
Login Discovery Help Desk
QR ScannerSignUp
CORE ATTRIBUTES AND COMPONENTS OF A MOBILE PLATFORM
TYPICAL REASONS FOR POOR APP PERFORMANCEThe Mobile Pareto’s
API Contract/Schema change within same version• An API suddenly starts sending text instead of Numeric value
Poor Error & Exception Handling• It’s impossible to control all the parameters and variations in certain situations• Good error and exception handling can make a huge difference and can save lot
of crashes
Device Incompatibility • Devices with cheap hardware particularly Android powered are more likely to
crash apps.• It is very difficult to customize app for all the device under Android’s umbrella.
Poor Memory Management • Loading high resolution images in the memory• Spinning too much of threads
Not keeping up with the OS upgrades• OS has got a upgrade but app is not up to date with the latest API
Poor Network Management• App hangs and becomes unresponsive while fetching data over slow network• Temporary loss of connectivity
Crash Category Occurrence rate*
Poor Error & Exception Handling
40%
API Contract/Schema change 25%
Poor Memory Management 20%
Poor Network Management 5%
Device Incompatibility 5%
Not keeping up with the OS upgrades
5%
* Source: We did analysis of crash analytics of some major mobile applications that we have assessed for our clients
ARCHITECTURAL FRAMEWORK FOR MINIMIZING APPLICATION
FAILURE
View
Router
ViewController Interactor
Presenter
Models
Core DataWorker
NetworkingWorker
Traditional MVC architecture lacks proper distribution of code making it complex and less testable.Benefits of the above architecture over the traditional MVC• The above architecture helps manage the complexity of the growing codebase• It also enables testability because of the code distribution amongst the different components
OUR POV ON BUILDING MOBILE PLATFORMS: DATA
Data Informed Mobile App Development : A proactive approach to maintaining a healthy application and ensuring an engaging user experience.
• Insights derived from data can be key in making development decisions and prioritizations
• When data is analyzed and presented in context it leads to a greater understanding of important metrics that can drive major decisions
• A monitoring and measuring mentality ensures an informed environment to develop and test products proactively
• Leveraging data to derive actionable insights that constantly feeds back into the development cycle leads to faster resolution of issues and major improvements in user engagement
Build
MeasureLearn
Development
Derive Actionable Insights
Development StatisticsApp Usage MetricsApp Performance MetricsCrash Reports
DEVELOPMENT STATISTICS APP USAGE METRICS APP PERFORMANCE METRICS CRASH REPORTS
Monitor the quality of your code
Analyze code complexity
Analyze code contribution metrics
Identify potential bugs
Analyze user activity and engagement
Analyze device, OS info
Analyze usage geographically
Analyze user retention
Monitor and analyze relevant business metrics such as revenue per user, customer lifetime value
Analyze customer acquisition channels to identify most beneficial way of marketing
Analyze app responsiveness
Analyze network errors
Analyze API latencies
Analyze screen rendering
Analyze memory, processor, data and battery consumption
Track app crashes
Analyze device, OS info related to app crashes
Analyze crash event sequences
OUR POV ON DESIGN
NowIn a scenario where there are multiple app crashes, the immediate enhancements of user experience will be to:
• Recognize, diagnose and recover from errors: At the user’s end, the messaging of the error should constructively suggest a solution. This eliminates confusion among users regarding the reasons that led to the app crash and sends meaningful metrics to the back-end development team to resolve the problem.
• Control and freedom: Users should be able to navigate easily by means of an ‘emergency exit’ in the event of a fatal or non fatal app crash, without having to suffer extended dialogue screens.
LaterIn the long run, the connected eco-system should develop:
• Standardization of features and formats: Each connected device is unique. However, when all the data is processed to create meaningful information for the users, there should be consistency of experience – visual branding, user flows, task messaging.
• Scalability: Diagnostic data and test results, especially in the case of health appliances, should have the flexibility of getting exported or saved as simpler formats that medical practitioners can understand and use. The user experience is broken when the user is unable to save or share the results from the app into a more widely used format (such as PDFs and Excel sheets).
User Research
Conduct thorough user research to understand the pain points of users while they navigate through the app.
Time
DESIGN IN THE ECOSYSTEM:
OUR POV ON PRODUCT
Code Quality• Using static analysis to catch bugs at early stages
• Code Health - Sonar analytics gives insight in the following aspects of the code
◦ Technical Debt◦ List of critical, blocker and major issues
◦ Areas of code which are very complex and needs refactoring◦ Code coverage data.
Quality Assurance• Unit tests - Gives early feedback to developers
• Smoke tests - This includes critical business flows• Functional test suites - This runs before build promotion which makes sure all the functional scenarios are working
Continuous Integration• Integrating each code changes made by developer after running all the automated tests and code quality assurance.
• There are many tools available which can be used like Jenkins, Go, TeamCity etc
OUR POV ON ENGINEERING
DevOps Analytics
• Monitoring Continuous Integration environment is also important to get actionable insights.
• Build Time - Time it takes to get a build agent assigned to a scheduled job
• Feedback Cycle - Time it takes to get an artifact out
• Build Machine Health - Monitoring system load, CPU usage, RAM used
THE END STATE
Systems OfExperience
Systems Of Differentiation
Systems Of Records
API’s
Business Capability
API’s
Even
t St
ream
Tech
nol
ogy
Fou
nd
atio
n
Technology Foundation
Digital Channel Things Channel Partner Channel
MobileApp/Lite Web App Email Sensor Building Mobile Web Api Things
FactSystem
Backend ForFrontend
Domain /Data
Anti-Corruption
Layer
3rd Party Systems
Anti-Corruption
Layer
Legacy Systems
IntelligentProducts
Analytical Hub
Experimentation
Voice Assistant
OUR APPROACH TO BUILDING A MOBILE PLATFORM
Make creation of new components easy through standardized templates
05• Identify useful patterns, structures and guidelines that can be embedded in a
standardized template that can be made available to all teams that need to create a component to add to the existing created by Platform team
Create and use first few components04
• Apply core attributes and practices to create first few components to validate approach and design
• Continue to refine extracted components and deliver as self-service evolving products to App teams that need them
Prioritize order in which the build out needs to happen03
• Identify dependencies between components• Prioritize based on Business value, Urgency, Technical complexity and Scale of
reuse• Order the components paths and figure out maximum WIP / Parallelization
based on Capacity & Dependency constraints
Identify high level approach for creating each component02
• Analyze through technology deep-dive how the current applications implement functionality related to components
• Identify method of creating component
Identify the components that the platform needs to provide01
• Discover the components that the platform needs to provide by looking at the user journeys in existing / upcoming applications
• Classify each component as Modules, Libraries, Plugins or App
SUMMARY
Speed to Innovation: Reduced Technical Debt Reduced total cost of ownershipBetter Responsiveness - (Ability to respond to customer and business needs quickly) Modularity - Breaks large software programs into more manageable parts(module, library, plugin).Reusability: parts of the program which already work in other mobile applications.Parallelization to bring in efficiency: Independent functional modules, which reduces the time to market.Resiliency : Mean Time Before Failure (Defect isolation)
HOW DOES A ROBUST MOBILE PLATFORM TIE TO YOUR 2020 VISION
END
16
Our approach to deliver Mobile App Platform
Private & Confidential © 2018 ThoughtWorks Technologies India Pvt. Ltd.
THIN SLICES OF VALUE (In Weeks to Months NOT Years)
Healthcare ConsumerThis group includes• Patients (Elderly or
individuals with Chronic conditions)
• Health-conscious individuals
I want solutions at my fingertips
Care Provider
Philips Ecosystem Other Parties
Health Tech Developers• Personalized Care Experience
• Manage Care Delivery for Larger Populations
Continuous Health
Personalized Care
ECOSYSTEM: HEALTH APPLICATIONS
THE IDEAL HEALTH APP ECOSYSTEM
Healthcare Consumer
Goal: Better Health Habits• Measuring health
quotient• Monitoring progress• Staying Motivated
Clinically Validated Data• Sleep patterns• Nutrition• Activity/Heart Rate• Blood pressure monitor
Personal FeedbackSmarter Insights
Timely Advice
Care ProvidersBetter connectivity among
community members, patients, points o care and
care settings
Health Tech DevEnsuring value based
care by using cost effective tools &
technology
Connected Devices
Mobile App
Health System Executives + Independent Software
VendorsAccelerate innovation, build,
scale, deploy application
Advanced Analytics
DataSharing
WorkflowOrchestration
Authorize Users
StoreData
ConnectDevices
HostApplicatio
n
Healthcare ConsumerGoal: Better Health Habits• Measuring health quotient• Monitoring progress• Staying Motivated
Clinically Validated Data• Sleep patterns• Nutrition• Activity/Heart Rate• Blood pressure monitor
Personal FeedbackSmarter Insights
Timely Advice
Care ProvidersBetter connectivity among
community members, patients, points o care and care settings
Health Tech DevEnsuring value based care
by using cost effective tools & technology
Connected Devices
Mobile App
Health System Executives + Independent Software Vendors
Accelerate innovation, build, scale, deploy application
Advanced Analytics
DataSharing
WorkflowOrchestration
Authorize Users
StoreData
ConnectDevices
HostApplication
!!
!
!
!
!
!
!
!
!
!
THE REAL HEALTH APP ECOSYSTEM