Post on 28-May-2020
▅ Small airline, 95% US domestic
▅ 4,500 flight crew
▅ 60 developers, mostly Web/mobile
▅ Mixed cloud platform
▅ M365 E5 subscribers
About Contoso Airlines
▅ Mobile/kiosk scheduling app for flight crew
▅ Serverless provisioning app for compliance and conformity
▅ Workflow app to handle last-minute flight crew changes
▅ Bot as an natural language interface for scheduling system
▅ Analytic app for analyzing effectiveness of flight crew allocation
Contoso Airlines’ app needs
1. Realistic needs
2. Architecturally differentiated
3. Different patterns for consuming Microsoft Graph
Why those apps?
2 cognitive biases every dev should know
• The origami experiment
• Overvaluation of things
you’ve worked on
1. The IKEA effect
• The idea experiment
• Tendency to reject other
ideas in favor of your own
2. Not-invented-here
Focusing on others’ business costs you time
Re-researching
8%
Re-building
26%
Re-certifying
10%
Adding YOUR unique value
56%
Microsoft helps you focus on your business
Fundamentals
☑Secure
☑Compliant
☑Scalable and resilient
☑Global
☑Trusted
Graph domains
☑Productivity
☑Directory
☑Security
☑ Files
☑And more!
Microsoft scale, Microsoft guarantees
>1Bidentities secured
>70compliance certifications
>50Azure regions
95%of Fortune 500
companies
Productivity
Calendar
Teamwork
Tasks
Directory
Users
Groups
Devices
Policies
Sites & files
Files
Sites
Lists
Excel
…and more
Security
Reports
Cross-
device
…and still
more!
Graph domains
Graph is a unified endpoint
API 1 -
register app
API 1 -
authenticate
API 1 - read
docs
API 2 -
register app
API 2 -
authenticate
API 2 - read
docs
Add
YOUR
value
1
2
3
4
Portal/mobile appsAutomation/business
process apps
Bots/dialogue apps Analytical apps
4 app patterns
Portals, desktop, and mobile apps
▅ Typically HTML+JavaScript,
iOS, or Android
▅ Always has authenticated
user
▅ Content tends to be user-
oriented and scoped
▅ Consider offline usage
scenarios
Automation and business process apps
▅ Variety of languages and
hosting options (e.g.,
serverless)
▅ Almost never has
authenticated user
▅ Content can range over
users and domains
▅ Consider batching and
throttling implications
Bots and interactive dialogue apps
▅ Typically framework based
(e.g., Bot Framework)
▅ Usually has authenticated
user (but auth is challenging)
▅ Content tends to be user-
oriented and scoped
▅ Consider how to render
result(s) with limited real
estate or “headless” devices
Analytic apps
▅ Typically involves big data
processing tools
▅ Never has authenticated
user
▅ Content tends to be broad
but specific (minimize
footprint)
▅ Consider security, privacy,
and ToU implications
Portal Automation Bot Analytic
Auth
flow
Implicit/OBO Client
credentials
Device code Client
credentials
Has user Always Rarely Usually Never
Content User-oriented Varies User-oriented Scenario-
oriented
Consider Offline Throttling Limited size Security/
privacy
App pattern comparison
▅ 2 cognitive biases: IKEA effect and not-invented-here
▅ Know and focus on your business
▅ Microsoft checks all the right security and scalability boxes
▅ Microsoft Graph has many useful domains
▅ 4 app types: portal/mobile, automation, bot, analytics
▅ Graph Explorer is a zero-cost way to get started
Review