M365 Saturday Sydney
Microsoft Teams
A Developer four course menu
to a great workplace
Asish Padhy
Dream it, Believe it, Build it
M365 Saturday Sydney
@AsishPadhy
Intro Snippet
printf("Welcome Asish Padhy")
log.Info("I am tech lover, M65 and Azure
Solutions Consultant")
console.log("14+ years of experience in building
Enterprise solutions")
<div><i>I am a Consultant, Architect, Project
Lead and always a <b>Developer<b></i></div>
print("Favourite Phrase : I-M-Possible")
Dream it, Believe it, Build it
https://asishpadhy.com
https://twitter.com/asishpadhy - @asishpadhy
https://www.linkedin.com/in/asishpadhy
https://sessionize.com/asish-padhy/
M365 Saturday Sydney
@AsishPadhy
Event Sponsors
M365 Saturday Sydney
@AsishPadhy
Agenda
• Microsoft Teams Dev Landscape
• Developer Dilemma
• Solutions
• Solutions Map
• Four Course Developer Menu
• Lean Strategy
• Solutions Model
• Use cases
M365 Saturday Sydney
@AsishPadhy
Teams Development
Landscape
Microsoft Teams Collaboration Platform has a varied dev landscape. Below are few
choices that you could look for teams solutions are :
• Personal Apps / Tabs
• Channel Tabs
• Bots
• Messaging Extensions
• Connectors
• Task Modules
• External Hosted apps
Microsoft Teams
Personal
Apps
Chats
Group Chats
Teams
Provisioning
Governance
Channels
Tabs /
Apps
Bots
Messaging
Extensions
Connectors
The above options are
available in below channels
• Teams Channels
• Personal Chat
• Group Chat
M365 Saturday Sydney
@AsishPadhy
Developer Dilemma
• Low code Development preference using PowerApps,
SharePoint pages and Microsoft Forms
• Custom Development require hosting and code management
Low Code
Development
• Use Channels and Tabs
• Use Low code solution build
tools such as PowerApps,
SharePoint pages, Microsoft
form
• Limited to features as per
subscription
• Troubleshooting limitations
Custom
Development
• Azure or Cloud hosted
solutions
• Azure AD App requirements
• Could allow more solution
management and control
• Extensibility flexibility
M365 Saturday Sydney
@AsishPadhyPersonal Apps
• Personal Tab
• Personalized experience
• Full Screen width
• Deploy to individual users
• App Access can be controlled through policies
(Teams admin)
• Uninstall mayn’t remove user cache
• Static tabs only
• Use Teams Context to get Teams data
Personal Apps
Channel Tabs
Bots
Messaging
Extensions
Connectors
Task Modules
M365 Saturday Sydney
@AsishPadhy
Channel or
Group Tabs
• Teams Scoped
• Configurable tabs
• Requires Teams App deployment
• Role based control for Tabs
• Focus Work
• Eg. Custom Apps, Web pages, third party apps
etc.
Personal Apps
Channel Tabs
Bots
Messaging
Extensions
Connectors
Task Modules
M365 Saturday Sydney
@AsishPadhyBots
• Interactive Programs and Dialog based
• Azure hosted and Azure AD App controlled
• Third party services supported
• Team, Personal and Group chat scoped
• Support of Adaptive cards
• Auto trigger supported
• Support Text based, Files and AI based
interaction with users
Personal Apps
Channel Tabs
Bots
Messaging
Extensions
Connectors
Task Modules
M365 Saturday Sydney
@AsishPadhy
Messaging
extensions
• Allow users to create rich messages
• Interact with an app in a conversation
• Adaptive card support
• Team, Personal chat and group chat scoped
• Search or Action based
• Configurable settings and Custom sign in
supported
• Eg. Search for documents or service requests,
Create opportunities
Personal Apps
Channel Tabs
Bots
Messaging
Extensions
Connectors
Task Modules
M365 Saturday Sydney
@AsishPadhyConnectors
• Notifications from Non-Team services
• Support for Actionable Messages
• Rich card support
• Allow send and receive messages from
external systems
• Set connectors per channel
Personal Apps
Channel Tabs
Bots
Messaging
Extensions
Connectors
Task Modules
M365 Saturday Sydney
@AsishPadhyTask Modules
• Modal pop up experience in teams
• Adaptive Card support
• Support in tabs and bots
• Support externally using deep links
Personal Apps
Channel Tabs
Bots
Messaging
Extensions
Connectors
Task Modules
M365 Saturday Sydney
@AsishPadhy
Capability Chart
Personal
Tabs / Apps
Channel /
Group Tabs
Messaging
Extensions
Bots Connectors Task
Modules
Personal
Scoped
Team Scoped Specific
requirement
Agent
Driven
Integration
Focus
Form
Focus
No
Configuration
Configuration
support
Configuration
support
Dialog
Support
Third Party
Focus
Business
Rule
focus
Wider Impact Localized
Impact
Localized /
Wider impact
Localized /
Wider
impact
Localized
Impact
Localized
Impact
Contained
Risk
Medium Risk High Risk High Risk High Risk Medium
Risk
No RBAC
needed
RBAC required No RBAC
required
RBAC
required
No RBAC
required
RBAC
optional
User / Tenant Team / Tenant Tenant Tenant Tenant Team /
Tenant
M365 Saturday Sydney
@AsishPadhy
So what are we
trying to achieve?
• Focus Work ?
• Ownership ?
• Intra vs Inter team-work ?
• Any security requirements ?
• Custom Business Requirements ?
• Third party Apps ? Vs Custom App hosting ?
• Are we creating and managing more than 100 teams ?
• Who has the say ? Business vs IT
M365 Saturday Sydney
@AsishPadhy
Solutions Map
Tabs / Apps
Custom
Business
Requirements
Custom Apps
Bots /
Messaging
Extensions
Focus work
Integrated
solutions
Custom
Solutions /
Connectors
Ownership
Inter Teamwork
Security
Governance
Managing
Large Teams
Third Party
Apps
Inter
Teamwork
Focus work
Low Code
Solutions
Simple
Business Apps
Low IT
Maintenance
M365 Saturday Sydney
@AsishPadhy
Four Course
Developer Menu
What ?
• Not from Microsoft books !
• From experience of building apps and solution for Teams
• Not Theoretical but conceptual
Why ?
• Focus on building team solutions faster
• Cap effort for each phase and move faster
• Agile friendly
• Mitigate Risks with smaller rollouts
• Quicker delivery
• Lower investment
M365 Saturday Sydney
@AsishPadhy
The Secret Recipe
• SIMplE
• Solve (S)
• Innovate (I)
• Model (M)
• Evolve (E)
Solve
Innovate
Model
Evolve
M365 Saturday Sydney
@AsishPadhy
Lean Strategy
• Plan and Identify
• Early Adopters
• Unique Value Proposition
• Define a roadmap
• Ideate and Pivot
• Pivoting criteria – higher cost of operations, more than available
resources, timeline, business purpose etc.
• Ideate the final product but start with MVP
• Trial Trail Trial !!!
• Helper processes to track on final solution
• Business Plan
• Review and Feedback
M365 Saturday Sydney
@AsishPadhy
Solution Model
• Hosting
• Main Build
and Testing
• Deployment
• Update Scope
• Update design
• Release
Planning
• Prototyping
• MVP scope
• 1-2 week*
• Design
• Buy in
• Preparation
• <1 week*
Solve Innovate
ModelEvolve
BusinessPlan
ReviewandFeedback
M365 Saturday Sydney
@AsishPadhy
olve
• Goals
• User flow / Design
• Solution understanding and approach
• Identify Deliverables
• Solution Dependencies
• Suggested 1 – 2 weeks duration
• Done Criteria
• Reviewed and signed off User flow / Design
• Reviewed and signed off Solution approach
• Planned deliverables
• Identified / prepared for solution dependancies
Solve
Innovate
Model
Evolve
M365 Saturday Sydney
@AsishPadhy
nnovate
• Goals
• Independent solution delivery
• Working Prototype / MVP
• Early adopters set up
• Infrastructure / Solution dependencies review
• Suggested 2 – 3 weeks in duration
• Done Criteria
• Early adopters onboarded
• MVP tested and signed off
• Gathered Feedback
• Infrastructure / IT onboarded
• Interdependent solutions onboarded
Solve
Innovate
Model
Evolve
M365 Saturday Sydney
@AsishPadhy
odel
• Goals
• Bring the innovated solution to life
• Define any pipeline for continuous deployment of
the application
• Host the solution
• Test and Review with End users
• Plan for quick rollouts, max 4-6 weeks
• Done
• Solution hosted and deployed
• Tested and reviewed with early adopters
• Solution deployment identified
• End user trained / onboarded
Scope
Innovate
Materialize
Evangelize
Solve
Innovate
Model
Evolve
M365 Saturday Sydney
@AsishPadhyvolve
• Goals
• Review new scope and feedbacks
• Review and Prioritise backlog items
• Outline wins and impacts for each
• Ideate any user flows or solution design impacts
• Isolate any dependencies
• Done
• Clear understanding of next Simple cycle
• Prioritised next phase cycle
• Solution phase and design flow updated
Solve
Innovate
Model
Evolve
M365 Saturday Sydney
@AsishPadhy
Bots architecture
M365 Saturday Sydney
@AsishPadhy
Bots Simple Flow
M365 Saturday Sydney
@AsishPadhy
Bots solution model
Solve
• Define the actors for the bot such as User, AI and Third-Party apps
• Define the scopes for the bot operation such as User, Group of users or Channel interaction (team context)
• Define the flow – how does the bot get data from user and answer back to user
• Define minimal user flow required for successful cycle
• Adaptive card requirements
Innovate
• Build a prototype scope in lean strategy
• Restrict to a simple user flow - hopefully to a single dialog flow
• Build a custom app to be hosted using ngrok or custom app focused to a specific users (Team policies)
• For scopes, set of POC users or POC team.
• Use MS graph for custom deployment plans. Trial Graph permissions and get buy in.
Model
• Hosting costs (Azure Bot service and AI hosting)
• Solution build framework (C# vs Nodejs)
• Dev ops implementation (recommended)
• Deployment process, Tenant based app deployment vs specific users' deployment.
Evolve
• Identify gaps
• Gather retrospective and feedback
• Additional channels / dialogs
• More actions
M365 Saturday Sydney
@AsishPadhy
Messaging extension
solution model
Solve
• Define what users normally required to share and benefits of use
• Map to activities – search vs action
• Define parameters to be passed, bot solution and third-party integration requirements
• Adaptive cards design
• Messaging Interaction flow
Innovate
• Build a prototype scope in lean strategy
• Build on a simple parameter and OnQuery event
• Build a simple response
• For scopes, set of POC users or POC team.
• Use MS graph for custom deployment plans. Trial Graph permissions and get buy in.
Model
• Hosting costs (Azure Bot service and AI hosting)
• Solution build framework (C# vs Nodejs)
• Dev ops implementation (recommended)
• Deployment process, Tenant based app deployment vs specific users' deployment.
Evolve
• Identify gaps
• Gather retrospective and feedback
• Additional parameters, scopes and complex response models
• More actions
M365 Saturday Sydney
@AsishPadhy
RESOURCES
• Teams SDK : https://docs.microsoft.com/en-
us/microsoftteams/platform/?view=msteams-client-js-latest#pivot=sdk-tools
• Teams development overview : https://docs.microsoft.com/en-
us/microsoftteams/platform/overview
• Teams Development Concepts : https://docs.microsoft.com/en-
us/microsoftteams/platform/concepts/concepts-overview
• Team Yeoman Generator : https://github.com/OfficeDev/generator-teams
• Teamwork Graph : https://docs.microsoft.com/en-us/graph/api/resources/teams-api-
overview?view=graph-rest-1.0
• Bots V4 : https://docs.microsoft.com/en-gb/azure/bot-service/?view=azure-bot-
service-4.0
• Adapter cards designer : https://docs.microsoft.com/en-gb/azure/bot-
service/?view=azure-bot-service-4.0
M365 Saturday Sydney
@AsishPadhy
Questions?
M365 Saturday Sydney
@AsishPadhy
THANK YOU
Blog : https://asishpadhy.com
Twitter : https://twitter.com/asishpadhy - @asishpadhy
LinkedIn : https://www.linkedin.com/in/asishpadhy

Microsoft teams a four course developer menu - M365 saturday Oct 19

  • 1.
    M365 Saturday Sydney MicrosoftTeams A Developer four course menu to a great workplace Asish Padhy Dream it, Believe it, Build it
  • 2.
    M365 Saturday Sydney @AsishPadhy IntroSnippet printf("Welcome Asish Padhy") log.Info("I am tech lover, M65 and Azure Solutions Consultant") console.log("14+ years of experience in building Enterprise solutions") <div><i>I am a Consultant, Architect, Project Lead and always a <b>Developer<b></i></div> print("Favourite Phrase : I-M-Possible") Dream it, Believe it, Build it https://asishpadhy.com https://twitter.com/asishpadhy - @asishpadhy https://www.linkedin.com/in/asishpadhy https://sessionize.com/asish-padhy/
  • 3.
  • 4.
    M365 Saturday Sydney @AsishPadhy Agenda •Microsoft Teams Dev Landscape • Developer Dilemma • Solutions • Solutions Map • Four Course Developer Menu • Lean Strategy • Solutions Model • Use cases
  • 5.
    M365 Saturday Sydney @AsishPadhy TeamsDevelopment Landscape Microsoft Teams Collaboration Platform has a varied dev landscape. Below are few choices that you could look for teams solutions are : • Personal Apps / Tabs • Channel Tabs • Bots • Messaging Extensions • Connectors • Task Modules • External Hosted apps Microsoft Teams Personal Apps Chats Group Chats Teams Provisioning Governance Channels Tabs / Apps Bots Messaging Extensions Connectors The above options are available in below channels • Teams Channels • Personal Chat • Group Chat
  • 6.
    M365 Saturday Sydney @AsishPadhy DeveloperDilemma • Low code Development preference using PowerApps, SharePoint pages and Microsoft Forms • Custom Development require hosting and code management Low Code Development • Use Channels and Tabs • Use Low code solution build tools such as PowerApps, SharePoint pages, Microsoft form • Limited to features as per subscription • Troubleshooting limitations Custom Development • Azure or Cloud hosted solutions • Azure AD App requirements • Could allow more solution management and control • Extensibility flexibility
  • 7.
    M365 Saturday Sydney @AsishPadhyPersonalApps • Personal Tab • Personalized experience • Full Screen width • Deploy to individual users • App Access can be controlled through policies (Teams admin) • Uninstall mayn’t remove user cache • Static tabs only • Use Teams Context to get Teams data Personal Apps Channel Tabs Bots Messaging Extensions Connectors Task Modules
  • 8.
    M365 Saturday Sydney @AsishPadhy Channelor Group Tabs • Teams Scoped • Configurable tabs • Requires Teams App deployment • Role based control for Tabs • Focus Work • Eg. Custom Apps, Web pages, third party apps etc. Personal Apps Channel Tabs Bots Messaging Extensions Connectors Task Modules
  • 9.
    M365 Saturday Sydney @AsishPadhyBots •Interactive Programs and Dialog based • Azure hosted and Azure AD App controlled • Third party services supported • Team, Personal and Group chat scoped • Support of Adaptive cards • Auto trigger supported • Support Text based, Files and AI based interaction with users Personal Apps Channel Tabs Bots Messaging Extensions Connectors Task Modules
  • 10.
    M365 Saturday Sydney @AsishPadhy Messaging extensions •Allow users to create rich messages • Interact with an app in a conversation • Adaptive card support • Team, Personal chat and group chat scoped • Search or Action based • Configurable settings and Custom sign in supported • Eg. Search for documents or service requests, Create opportunities Personal Apps Channel Tabs Bots Messaging Extensions Connectors Task Modules
  • 11.
    M365 Saturday Sydney @AsishPadhyConnectors •Notifications from Non-Team services • Support for Actionable Messages • Rich card support • Allow send and receive messages from external systems • Set connectors per channel Personal Apps Channel Tabs Bots Messaging Extensions Connectors Task Modules
  • 12.
    M365 Saturday Sydney @AsishPadhyTaskModules • Modal pop up experience in teams • Adaptive Card support • Support in tabs and bots • Support externally using deep links Personal Apps Channel Tabs Bots Messaging Extensions Connectors Task Modules
  • 13.
    M365 Saturday Sydney @AsishPadhy CapabilityChart Personal Tabs / Apps Channel / Group Tabs Messaging Extensions Bots Connectors Task Modules Personal Scoped Team Scoped Specific requirement Agent Driven Integration Focus Form Focus No Configuration Configuration support Configuration support Dialog Support Third Party Focus Business Rule focus Wider Impact Localized Impact Localized / Wider impact Localized / Wider impact Localized Impact Localized Impact Contained Risk Medium Risk High Risk High Risk High Risk Medium Risk No RBAC needed RBAC required No RBAC required RBAC required No RBAC required RBAC optional User / Tenant Team / Tenant Tenant Tenant Tenant Team / Tenant
  • 14.
    M365 Saturday Sydney @AsishPadhy Sowhat are we trying to achieve? • Focus Work ? • Ownership ? • Intra vs Inter team-work ? • Any security requirements ? • Custom Business Requirements ? • Third party Apps ? Vs Custom App hosting ? • Are we creating and managing more than 100 teams ? • Who has the say ? Business vs IT
  • 15.
    M365 Saturday Sydney @AsishPadhy SolutionsMap Tabs / Apps Custom Business Requirements Custom Apps Bots / Messaging Extensions Focus work Integrated solutions Custom Solutions / Connectors Ownership Inter Teamwork Security Governance Managing Large Teams Third Party Apps Inter Teamwork Focus work Low Code Solutions Simple Business Apps Low IT Maintenance
  • 16.
    M365 Saturday Sydney @AsishPadhy FourCourse Developer Menu What ? • Not from Microsoft books ! • From experience of building apps and solution for Teams • Not Theoretical but conceptual Why ? • Focus on building team solutions faster • Cap effort for each phase and move faster • Agile friendly • Mitigate Risks with smaller rollouts • Quicker delivery • Lower investment
  • 17.
    M365 Saturday Sydney @AsishPadhy TheSecret Recipe • SIMplE • Solve (S) • Innovate (I) • Model (M) • Evolve (E) Solve Innovate Model Evolve
  • 18.
    M365 Saturday Sydney @AsishPadhy LeanStrategy • Plan and Identify • Early Adopters • Unique Value Proposition • Define a roadmap • Ideate and Pivot • Pivoting criteria – higher cost of operations, more than available resources, timeline, business purpose etc. • Ideate the final product but start with MVP • Trial Trail Trial !!! • Helper processes to track on final solution • Business Plan • Review and Feedback
  • 19.
    M365 Saturday Sydney @AsishPadhy SolutionModel • Hosting • Main Build and Testing • Deployment • Update Scope • Update design • Release Planning • Prototyping • MVP scope • 1-2 week* • Design • Buy in • Preparation • <1 week* Solve Innovate ModelEvolve BusinessPlan ReviewandFeedback
  • 20.
    M365 Saturday Sydney @AsishPadhy olve •Goals • User flow / Design • Solution understanding and approach • Identify Deliverables • Solution Dependencies • Suggested 1 – 2 weeks duration • Done Criteria • Reviewed and signed off User flow / Design • Reviewed and signed off Solution approach • Planned deliverables • Identified / prepared for solution dependancies Solve Innovate Model Evolve
  • 21.
    M365 Saturday Sydney @AsishPadhy nnovate •Goals • Independent solution delivery • Working Prototype / MVP • Early adopters set up • Infrastructure / Solution dependencies review • Suggested 2 – 3 weeks in duration • Done Criteria • Early adopters onboarded • MVP tested and signed off • Gathered Feedback • Infrastructure / IT onboarded • Interdependent solutions onboarded Solve Innovate Model Evolve
  • 22.
    M365 Saturday Sydney @AsishPadhy odel •Goals • Bring the innovated solution to life • Define any pipeline for continuous deployment of the application • Host the solution • Test and Review with End users • Plan for quick rollouts, max 4-6 weeks • Done • Solution hosted and deployed • Tested and reviewed with early adopters • Solution deployment identified • End user trained / onboarded Scope Innovate Materialize Evangelize Solve Innovate Model Evolve
  • 23.
    M365 Saturday Sydney @AsishPadhyvolve •Goals • Review new scope and feedbacks • Review and Prioritise backlog items • Outline wins and impacts for each • Ideate any user flows or solution design impacts • Isolate any dependencies • Done • Clear understanding of next Simple cycle • Prioritised next phase cycle • Solution phase and design flow updated Solve Innovate Model Evolve
  • 24.
  • 25.
  • 26.
    M365 Saturday Sydney @AsishPadhy Botssolution model Solve • Define the actors for the bot such as User, AI and Third-Party apps • Define the scopes for the bot operation such as User, Group of users or Channel interaction (team context) • Define the flow – how does the bot get data from user and answer back to user • Define minimal user flow required for successful cycle • Adaptive card requirements Innovate • Build a prototype scope in lean strategy • Restrict to a simple user flow - hopefully to a single dialog flow • Build a custom app to be hosted using ngrok or custom app focused to a specific users (Team policies) • For scopes, set of POC users or POC team. • Use MS graph for custom deployment plans. Trial Graph permissions and get buy in. Model • Hosting costs (Azure Bot service and AI hosting) • Solution build framework (C# vs Nodejs) • Dev ops implementation (recommended) • Deployment process, Tenant based app deployment vs specific users' deployment. Evolve • Identify gaps • Gather retrospective and feedback • Additional channels / dialogs • More actions
  • 27.
    M365 Saturday Sydney @AsishPadhy Messagingextension solution model Solve • Define what users normally required to share and benefits of use • Map to activities – search vs action • Define parameters to be passed, bot solution and third-party integration requirements • Adaptive cards design • Messaging Interaction flow Innovate • Build a prototype scope in lean strategy • Build on a simple parameter and OnQuery event • Build a simple response • For scopes, set of POC users or POC team. • Use MS graph for custom deployment plans. Trial Graph permissions and get buy in. Model • Hosting costs (Azure Bot service and AI hosting) • Solution build framework (C# vs Nodejs) • Dev ops implementation (recommended) • Deployment process, Tenant based app deployment vs specific users' deployment. Evolve • Identify gaps • Gather retrospective and feedback • Additional parameters, scopes and complex response models • More actions
  • 28.
    M365 Saturday Sydney @AsishPadhy RESOURCES •Teams SDK : https://docs.microsoft.com/en- us/microsoftteams/platform/?view=msteams-client-js-latest#pivot=sdk-tools • Teams development overview : https://docs.microsoft.com/en- us/microsoftteams/platform/overview • Teams Development Concepts : https://docs.microsoft.com/en- us/microsoftteams/platform/concepts/concepts-overview • Team Yeoman Generator : https://github.com/OfficeDev/generator-teams • Teamwork Graph : https://docs.microsoft.com/en-us/graph/api/resources/teams-api- overview?view=graph-rest-1.0 • Bots V4 : https://docs.microsoft.com/en-gb/azure/bot-service/?view=azure-bot- service-4.0 • Adapter cards designer : https://docs.microsoft.com/en-gb/azure/bot- service/?view=azure-bot-service-4.0
  • 29.
  • 30.
    M365 Saturday Sydney @AsishPadhy THANKYOU Blog : https://asishpadhy.com Twitter : https://twitter.com/asishpadhy - @asishpadhy LinkedIn : https://www.linkedin.com/in/asishpadhy

Editor's Notes

  • #28 Solve Define messaging requirements and scopes of use Define the scenarios – search vs action Define parameters to be passed, bot solution and third-party integration requirements Adaptive cards design Innovate Build a prototype scope in lean strategy Build on a simple parameter and OnQuery event Build a simple response For scopes, set of POC users or POC team. Use MS graph for custom deployment plans. Trial Graph permissions and get buy in Model Hosting costs (Azure Bot service and AI hosting) Solution build framework (C# vs Nodejs) Dev ops implementation (recommended) Deployment process, Tenant based app deployment vs specific users' deployment. Evolve Identify gaps Gather retrospective and feedback Additional parameters, scopes and complex response models More actions