SlideShare una empresa de Scribd logo
1 de 47
Descargar para leer sin conexión
Citizen developer tools are not just for citizen developers!
Blue Meteorite Monday Session (The rest of my slides will have less text, I promise!)
So, the citizen developers have all the cool tools, and those that actually code for a living are left
with legacy stuff? Not so fast!The same tools that Microsoft is targeting for citizen developers
make development easier, faster and cheaper for everyone!
This session combines tools such as Flow, Azure Cognitive Services and Azure Functions with
some actual simple development work to provide highly customized, Machine Learning
powered analysis workflow for the newly baked ModernTeam Sites in SharePoint Online.This
demo-heavy session will look at real business scenarios, and how we can solve them using
citizen developer tools and some code (Because we’re developers after all, right?)
After this session you'll know how to create rich and customized business automation processes
that use the latest tools offered to us by Microsoft.
@koskila | https://www.koskila.net 1
Citizen developer tools are not
just for citizen developers!
a.k.a
“Using Azure Functions and Cognitive ServicesTextAPI to enrich a Flow
that fills Metadata for new items in a Modern SharePointTeam Site”
Session
• The session will include a quick overview of the team play capabilities
of
• Microsoft Flow
• ModernTeam Sites
• Microsoft AzureCognitive ServicesTextAnalytics API (using the recently
published SDK)
• Azure Functions (coupled with some helpful libraries).
@koskila | https://www.koskila.net 3
Session
• But first, we’ll take a quick look into the bigger picture!
• What’s a citizen developer?
• How’s the developer’s role changing?
• And: Are we all going to be unemployed in a couple of months?
@koskila | https://www.koskila.net 4
Who’s speaking?
• Antti K. Koskela, Escalation Engineer for
Valo Solutions
• From Finland, lived in USA in 2017, moved
to Montreal 2018.
• Background in Fintech + accounting
• A developer since 2004.
• Bending and twisting SharePoint into
different shapes since MOSS.
• Blogging at https://www.koskila.net
@koskila | https://www.koskila.net
Enter the …
@koskila | https://www.koskila.net 6
Enter the Citizen Developers!
@koskila | https://www.koskila.net 7
What’s a “Citizen Developer”?
An end-user, who creates applications, usually without
programming anything themselves.
• “A citizen developer is a user who creates new business applications for
consumption by others using development and runtime environments
sanctioned by corporate IT - - today, end users can build departmental,
enterprise and even public applications using shared services, fourth-
generation language (4GL)-style development platforms and cloud
computing services.”
• Gartner, 2009
@koskila | https://www.koskila.net 8
A typical Developer…
• Expensive
• Slow
• Creates more bugs than
features
• Constrained by IT/vendor
• Doesn’t understand business
@koskila | https://www.koskila.net 9
…vs the Citizen Developer!
• Understands business
• No code – no bugs?
• Limited only by their
imagination (and tools…)
• While a developer still waits for
Visual Studio to start, a Citizen
Developer has already hacked
together an integration between
13 different systems using Flow.
@koskila | https://www.koskila.net 10
But why it doesn’t ACTUALLY matter?
• “End of Software Development”
• “Citizen Developers are appearing at the workplaces”
• Tietoviikko (Knowledge Week), 2018
• “Software Developers Will Become Obsolete”
• Brain Food, 2016
• “Software engineers will be obsolete by 2060”
• DanAuerbach, 2015
• “A new technology [5th GL] in software development [gives us] the ability
to automate fully the development process from design to installation. - -
Programming is better done by a machine than a human.“
• In “Can fifth-generation software replace fallible programmers?”, Philips, R, Computerworld, v 18, n 29, 1D/27-30, 16 July 1984
• “4th Generation Languages make programmers largely unneeded”
• In “Applications Development Without Programmers”, James Martin, 1982
@koskila | https://www.koskila.net 11
But why it doesn’t ACTUALLY matter?
• Death of programming and obsoleteness of programmers (by
automation, citizen developers, higher level languages, AI) has been
proposed at least from the 80s!
• Excel is the biggest software development environment (and the
most dangerous one) anyway.
@koskila | https://www.koskila.net 12
But why it doesn’t ACTUALLY matter?
• “Low-code tools won’t be putting developers out of a job; on the
contrary, they have the potential to help developers do better work.”
• -Mike Fitzmaurize,Vice President ofWorkflowTechnology for Nintex, 2017
• Citizen Developer tools are not useful just for Citizen Developers
• Tools like Flow make the lives of “actual” developers easier, too!
• And when the tools won’t do the trick anymore, a developer will get to (have
to) export them to “real” development tools and fix them.
@koskila | https://www.koskila.net 13
Wait..Which tools are we even
talking about?
@koskila | https://www.koskila.net 14
A lot of tools to choose from!
Let’s stay on the Microsoft’s stack here, since even that’s a lot to deal
with!
1. Microsoft Flow
2. Azure LogicApps
3. Azure Functions
4. Azure App ServiceWebJobs
@koskila | https://www.koskila.net 15
A lot of tools to choose from!
• Microsoft Flow
• Built on top of Logic Apps
• Simple integration tool for “any white collar”
• Azure LogicApps
• More hardcore integration tool
• Code view available
• Flows can be exported to be “full-fledged” logic apps
• Azure Functions & Azure App ServiceWebJobs
• Code-first integration services (and much more!)
• Azure Functions are serverless – and easily boltable to Flow/Logic Apps!
• Webjobs are more classic solution – console apps you can run in an App Service
@koskila | https://www.koskila.net 16
Great resource: https://docs.microsoft.com/en-us/azure/azure-functions/functions-compare-logic-apps-ms-flow-
webjobs
Flow + Azure Functions
• This session will concentrate on orchestrating and extending
(work)flows
• You could do a gazillion other things, but we’ll need to start from
somewhere!
@koskila | https://www.koskila.net 17
Advantages of Flow
• Run history is saved – you can always go back in time and rerun
something that didn’t work. Great for debugging and iterating!
• Easy-to-use, fairly well-tested integrations available out-of-the-box
• Easy to extend, too
• Custom connectors
• HTTP requests to send and receive data from almost any source
@koskila | https://www.koskila.net 18
Azure Functions considerations
• Consumption plan is practically free for small usage
• 1 million executions and 400 000 GB-s time/transfer are FREE
• After that €0.000014/GB-s & €0.169 per million executions
• Maximum runtime of 10 minutes!
• Scalability’s great (even though it still loses to AWS Lambda Functions)
• Running a function in an App Service
• It isn’t serverless
• Max runtime unspecified – but long!
• Azure Function can be durable (stateful)
• https://docs.microsoft.com/en-us/azure/azure-functions/durable-functions-
overview
@koskila | https://www.koskila.net 19
Azure Cognitive Services -Text Analytics API
• Detect sentiment, key phrases, and language from your text
• Powered by MicrosoftCognitive Services, machine learning and AI
algorithms in the cloud.
• DetectTopics used to exist – it was great – but we’ll be using key
phrases today instead
• Learn more: https://azure.microsoft.com/en-us/services/cognitive-
services/text-analytics/
• Also noteworthy: MachineTranslation in SharePoint, and Bing
Translator, are powered by Cognitive Services
@koskila | https://www.koskila.net 20
Azure Cognitive Services -Text Analytics API
@koskila | https://www.koskila.net 21
Modern SharePoint
• Finally, SharePoint that looks (kind of) good out-of-the-box
• It’s even responsive 
• “Back to basics”
• Only does what SharePoint does well
• Excellent file storage (used byTeams & Groups), decent web interface, and a mobile app
• Uses other services for everything it’s bad at:
• Calendars from Exchange, tasks from Planner, IM and discussions viaTeams orYammer
• Webhooks + SPFx = decent extensibility
@koskila | https://www.koskila.net 22
Classic SharePoint is not dead either!
• If something works with Modern, it’ll usually work with Classic, too –
just requires some sweat, tears and clever workarounds
• Publishing infrastructure makes things a bit complicated:
• Bad/no support for fields like “Page Layout” or “Publishing Page Content”
@koskila | https://www.koskila.net 23
How does this relate to real-life
business problems?
Case: Automatic MetadataTagging
@koskila | https://www.koskila.net 24
The Problem
• The amount of data is surging (~90% of the data in the world has
been created in the last 2 years)
• To ensure that data in organizations is useful, it needs to be found
easily
• A great “Enterprise-y” solution has been metadata tagging!
• However, users generally hate doing that manually
• Automatic solutions are either cumbersome to maintain, expensive to
develop, or both
• Many required metadata fields will cause users to migrate to shadow
IT solutions (like DropBox)
@koskila | https://www.koskila.net 25
The Solution
• Using ModernTeam Sites in SharePoint for document storage
enables collaboration
• SharePoint Search is decent, but thorough metadata tagging makes
it a lot more useful
• UsingAzure Cognitive Services we can fill the metadata fields
automatically – without any user interaction at all!
• Content will be found and users will be happy 
@koskila | https://www.koskila.net 26
Our StackToday (1/2)
• Modern SharePointTeam Sites
• Document Library used as a Data Source
• The only End-User Facing GUI
• Microsoft Flow
• Launches via webhook, calls an Azure Function, finally sends a notification
• Azure Function
• Contains the actual program logic
• Azure Cognitive Services
• TextAPI used to analyze text for Key Phrases
@koskila | https://www.koskila.net 27
Our StackToday (2/2)
• The whole stack is super cheap!
• SharePointOnline included in most licenses anyway, standalone
$5/user/mo (including 1Tb of OneDrive!)
• Cognitive Services free (for a small monthly quota – commercial
plans starting from ~$70/mo)
• Azure Functions billed per usage, my monthly cost for my demos has
been $0.02
• See 
• Flow free for personal, basic use
@koskila | https://www.koskila.net 28
How?
• A Flow attached to Document
Library will call theAzure
Function that’ll do the heavy
lifting
• A simple HTTP request to Azure
Function – could create a
custom connector, too!
• Finally, notifies admin of the
execution and the creator of the
file.
@koskila | https://www.koskila.net 29
How?
• An Azure Function will run,
extract text, analyze it using
Azure Cognitive Services, and
then write the info back to
SharePointOnline
@koskila | https://www.koskila.net 30
Demo
• Case description: https://www.koskila.net/2018/03/20/resolving-
managed-metadata-madness-good-enough-to-win-a-hackathon/
• Video: https://youtu.be/G0kESOlBBjk?t=109
• Code: https://github.com/koskila/KeyphraseExtraction
@koskila | https://www.koskila.net 31
Further Considerations
@koskila | https://www.koskila.net 32
Flow Custom Connectors
• Don’t want to configure multiple HTTP –requests with difficult
parameters after one another?You can automate some of that stuff
with custom connectors!
• Custom Connectors can be shared between teams, so if you have a
great API you want to publish to your colleagues, it’s fairly easy to
share
@koskila | https://www.koskila.net 33
Flow Custom Connectors
@koskila | https://www.koskila.net 34
Flow Custom Connectors
@koskila | https://www.koskila.net 35
Flow Custom Connectors
@koskila | https://www.koskila.net 36
Flow Custom Connectors
@koskila | https://www.koskila.net 37
Flow Custom Connectors
@koskila | https://www.koskila.net 38
Flow Custom Connectors
@koskila | https://www.koskila.net 39
Flow Custom Connectors
@koskila | https://www.koskila.net 40
Flow Custom Connectors
@koskila | https://www.koskila.net 41
Flow Custom Connectors
@koskila | https://www.koskila.net 42
FinalWords
@koskila | https://www.koskila.net 43
Caveats
• The stack’s evolving – no telling how long this will be valid or required
• You could replace text extraction with Azure OCR – but last time I
tried, the custom library worked better.
• TextAnalysis is interesting – sometimes it works better, sometimes
it’s not that accurate!
• For shorter documents, it doesn’t work well at all
@koskila | https://www.koskila.net 44
What’s next?
• Microsoft Flow is getting more Managed Metadata capabilities – maybe
we won’t need the OfficeDev PnP / CSOM library to write to the document
library soon?
• However, it’s even missing from the JavaScript libraries, so eh, you never know..
• Azure Functions can now be run in user context – but with Flow this is
super finicky! Couldn’t get it to work here – even passing cookies between
HTTP actions is forbidden.
• See: https://powerusers.microsoft.com/t5/General-Flow-Discussion/Passing-
Cookies-Between-HTTP-Actions/td-p/69761/page/2
• See if you can figure it out?: https://docs.microsoft.com/en-
us/sharepoint/dev/spfx/web-parts/guidance/connect-to-api-secured-with-aad
@koskila | https://www.koskila.net 45
Resources & Further reading
• Documentation:
• https://azure.microsoft.com/en-gb/campaigns/developer-guide/
• Slides available:
• <placeholder>
• Code available:
• https://github.com/koskila/KeyphraseExtraction
• Description of Case 1:
• https://www.koskila.net/2018/03/20/resolving-managed-metadata-madness-
good-enough-to-win-a-hackathon/
@koskila | https://www.koskila.net 46
Let’s connect!
• @koskila
• www.koskila.net
• https://github.com/koskila
@koskila | https://www.koskila.net 47

Más contenido relacionado

La actualidad más candente

O365Engage17 - How to Automate SharePoint Provisioning with PNP Framework
O365Engage17 - How to Automate SharePoint Provisioning with PNP FrameworkO365Engage17 - How to Automate SharePoint Provisioning with PNP Framework
O365Engage17 - How to Automate SharePoint Provisioning with PNP Framework
NCCOMMS
 
UCCSC 2016
UCCSC 2016UCCSC 2016
UCCSC 2016
Alex Wu
 

La actualidad más candente (20)

The Slippery Slope of Migrating to SharePoint Online or On-Premise
The Slippery Slope of Migrating to SharePoint Online or On-PremiseThe Slippery Slope of Migrating to SharePoint Online or On-Premise
The Slippery Slope of Migrating to SharePoint Online or On-Premise
 
SharePoint Saturday Helsinki 2019 - Unite your Modern Workplace with Microsof...
SharePoint Saturday Helsinki 2019 - Unite your Modern Workplace with Microsof...SharePoint Saturday Helsinki 2019 - Unite your Modern Workplace with Microsof...
SharePoint Saturday Helsinki 2019 - Unite your Modern Workplace with Microsof...
 
Bots are taking my job - so I started rollin' my own - Infracoders Meetup Graz
Bots are taking my job - so I started rollin' my own - Infracoders Meetup GrazBots are taking my job - so I started rollin' my own - Infracoders Meetup Graz
Bots are taking my job - so I started rollin' my own - Infracoders Meetup Graz
 
Computer Generations and Complexity: The Necessity for Collaboration
Computer Generations and Complexity: The Necessity for CollaborationComputer Generations and Complexity: The Necessity for Collaboration
Computer Generations and Complexity: The Necessity for Collaboration
 
How to build SharePoint 2013 Killer Apps
How to build SharePoint 2013 Killer AppsHow to build SharePoint 2013 Killer Apps
How to build SharePoint 2013 Killer Apps
 
O365Engage17 - How to Automate SharePoint Provisioning with PNP Framework
O365Engage17 - How to Automate SharePoint Provisioning with PNP FrameworkO365Engage17 - How to Automate SharePoint Provisioning with PNP Framework
O365Engage17 - How to Automate SharePoint Provisioning with PNP Framework
 
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
 
Towards a common app platform #SPUGfi
Towards a common app platform #SPUGfiTowards a common app platform #SPUGfi
Towards a common app platform #SPUGfi
 
I knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsI knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile apps
 
#Techorama belgium 2018 vincent biret deep dive with the #MicrosoftGraph
#Techorama belgium 2018 vincent biret deep dive with the #MicrosoftGraph#Techorama belgium 2018 vincent biret deep dive with the #MicrosoftGraph
#Techorama belgium 2018 vincent biret deep dive with the #MicrosoftGraph
 
SPCA2013 - SharePoint Mobile Strategy and Design
SPCA2013 - SharePoint Mobile Strategy and DesignSPCA2013 - SharePoint Mobile Strategy and Design
SPCA2013 - SharePoint Mobile Strategy and Design
 
Become an RPA Citizen Developer
Become an RPA Citizen Developer Become an RPA Citizen Developer
Become an RPA Citizen Developer
 
Ultimate Guide to 30+ API Documentation Solutions
Ultimate Guide to 30+ API Documentation SolutionsUltimate Guide to 30+ API Documentation Solutions
Ultimate Guide to 30+ API Documentation Solutions
 
SPSNH - Who Moved My SharePoint (to 2013)
SPSNH - Who Moved My SharePoint (to 2013)SPSNH - Who Moved My SharePoint (to 2013)
SPSNH - Who Moved My SharePoint (to 2013)
 
UCCSC 2016
UCCSC 2016UCCSC 2016
UCCSC 2016
 
20220205 Getting started with power bi
20220205 Getting started with power bi20220205 Getting started with power bi
20220205 Getting started with power bi
 
rapidMATION Webinar: The future of work: humans and software bots working tog...
rapidMATION Webinar: The future of work: humans and software bots working tog...rapidMATION Webinar: The future of work: humans and software bots working tog...
rapidMATION Webinar: The future of work: humans and software bots working tog...
 
SharePoint Saturday Belgium 2018 A 21st century lunch bell
SharePoint Saturday Belgium 2018 A 21st century lunch bellSharePoint Saturday Belgium 2018 A 21st century lunch bell
SharePoint Saturday Belgium 2018 A 21st century lunch bell
 
How a social intranet can be used to drive employee engagement and usage of I...
How a social intranet can be used to drive employee engagement and usage of I...How a social intranet can be used to drive employee engagement and usage of I...
How a social intranet can be used to drive employee engagement and usage of I...
 
Html5 viewer HTML5 office kukudocs
Html5 viewer HTML5 office kukudocsHtml5 viewer HTML5 office kukudocs
Html5 viewer HTML5 office kukudocs
 

Similar a Citizen Developer Tools @ Valo Solutions / Blue Meteorite Monday session

Introducción al Machine Learning Automático
Introducción al Machine Learning AutomáticoIntroducción al Machine Learning Automático
Introducción al Machine Learning Automático
Sri Ambati
 

Similar a Citizen Developer Tools @ Valo Solutions / Blue Meteorite Monday session (20)

Integroi oikein BizTalkilla ja Azurella
Integroi oikein BizTalkilla ja AzurellaIntegroi oikein BizTalkilla ja Azurella
Integroi oikein BizTalkilla ja Azurella
 
LUIS and Bots
LUIS and BotsLUIS and Bots
LUIS and Bots
 
Full stack conference talk slides
Full stack conference talk slidesFull stack conference talk slides
Full stack conference talk slides
 
Devfest09 OpenSocial Enterprise
Devfest09 OpenSocial EnterpriseDevfest09 OpenSocial Enterprise
Devfest09 OpenSocial Enterprise
 
Flow: A living full-stack framework for the web
Flow: A living full-stack framework for the webFlow: A living full-stack framework for the web
Flow: A living full-stack framework for the web
 
Service as-a-software
Service as-a-softwareService as-a-software
Service as-a-software
 
Choosing the right Technologies for your next unicorn.
Choosing the right Technologies for your next unicorn.Choosing the right Technologies for your next unicorn.
Choosing the right Technologies for your next unicorn.
 
Maintainable Machine Learning Products
Maintainable Machine Learning ProductsMaintainable Machine Learning Products
Maintainable Machine Learning Products
 
SPFestDc AZR204 Microsoft Graph and SharePoint Framework under steroids with ...
SPFestDc AZR204 Microsoft Graph and SharePoint Framework under steroids with ...SPFestDc AZR204 Microsoft Graph and SharePoint Framework under steroids with ...
SPFestDc AZR204 Microsoft Graph and SharePoint Framework under steroids with ...
 
Microsoft teams & bot framework - A developer's perspective
Microsoft teams & bot framework - A developer's perspectiveMicrosoft teams & bot framework - A developer's perspective
Microsoft teams & bot framework - A developer's perspective
 
Microservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterMicroservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They Matter
 
Metalogix roadshow 2016 Paris - Keynote SharePoint et Office 365
Metalogix roadshow 2016 Paris - Keynote SharePoint et Office 365Metalogix roadshow 2016 Paris - Keynote SharePoint et Office 365
Metalogix roadshow 2016 Paris - Keynote SharePoint et Office 365
 
SharePoint, Office, and Outlook Integrations for Alfresco
SharePoint, Office, and Outlook Integrations for AlfrescoSharePoint, Office, and Outlook Integrations for Alfresco
SharePoint, Office, and Outlook Integrations for Alfresco
 
SharePoint Saturday Belgium 2019 Unite your modern workplace with microsofst...
SharePoint Saturday Belgium 2019  Unite your modern workplace with microsofst...SharePoint Saturday Belgium 2019  Unite your modern workplace with microsofst...
SharePoint Saturday Belgium 2019 Unite your modern workplace with microsofst...
 
BitCraft 2017 general presentation
BitCraft 2017 general presentationBitCraft 2017 general presentation
BitCraft 2017 general presentation
 
FORWARD 5 Key Highlights and Product Updates - Philadelphia Chapter
FORWARD 5 Key Highlights and Product Updates - Philadelphia ChapterFORWARD 5 Key Highlights and Product Updates - Philadelphia Chapter
FORWARD 5 Key Highlights and Product Updates - Philadelphia Chapter
 
Introducción al Machine Learning Automático
Introducción al Machine Learning AutomáticoIntroducción al Machine Learning Automático
Introducción al Machine Learning Automático
 
Can you build a Intranet with Modern SharePoint
Can you build a Intranet with Modern SharePointCan you build a Intranet with Modern SharePoint
Can you build a Intranet with Modern SharePoint
 
Making sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverlessMaking sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverless
 
The world is not black and white – Impact of decisions over the lifetime of a...
The world is not black and white – Impact of decisions over the lifetime of a...The world is not black and white – Impact of decisions over the lifetime of a...
The world is not black and white – Impact of decisions over the lifetime of a...
 

Último

Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
Kamal Acharya
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptx
chumtiyababu
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
Epec Engineered Technologies
 

Último (20)

Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and properties
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLEGEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptx
 
Computer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersComputer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to Computers
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 

Citizen Developer Tools @ Valo Solutions / Blue Meteorite Monday session

  • 1. Citizen developer tools are not just for citizen developers! Blue Meteorite Monday Session (The rest of my slides will have less text, I promise!) So, the citizen developers have all the cool tools, and those that actually code for a living are left with legacy stuff? Not so fast!The same tools that Microsoft is targeting for citizen developers make development easier, faster and cheaper for everyone! This session combines tools such as Flow, Azure Cognitive Services and Azure Functions with some actual simple development work to provide highly customized, Machine Learning powered analysis workflow for the newly baked ModernTeam Sites in SharePoint Online.This demo-heavy session will look at real business scenarios, and how we can solve them using citizen developer tools and some code (Because we’re developers after all, right?) After this session you'll know how to create rich and customized business automation processes that use the latest tools offered to us by Microsoft. @koskila | https://www.koskila.net 1
  • 2. Citizen developer tools are not just for citizen developers! a.k.a “Using Azure Functions and Cognitive ServicesTextAPI to enrich a Flow that fills Metadata for new items in a Modern SharePointTeam Site”
  • 3. Session • The session will include a quick overview of the team play capabilities of • Microsoft Flow • ModernTeam Sites • Microsoft AzureCognitive ServicesTextAnalytics API (using the recently published SDK) • Azure Functions (coupled with some helpful libraries). @koskila | https://www.koskila.net 3
  • 4. Session • But first, we’ll take a quick look into the bigger picture! • What’s a citizen developer? • How’s the developer’s role changing? • And: Are we all going to be unemployed in a couple of months? @koskila | https://www.koskila.net 4
  • 5. Who’s speaking? • Antti K. Koskela, Escalation Engineer for Valo Solutions • From Finland, lived in USA in 2017, moved to Montreal 2018. • Background in Fintech + accounting • A developer since 2004. • Bending and twisting SharePoint into different shapes since MOSS. • Blogging at https://www.koskila.net @koskila | https://www.koskila.net
  • 6. Enter the … @koskila | https://www.koskila.net 6
  • 7. Enter the Citizen Developers! @koskila | https://www.koskila.net 7
  • 8. What’s a “Citizen Developer”? An end-user, who creates applications, usually without programming anything themselves. • “A citizen developer is a user who creates new business applications for consumption by others using development and runtime environments sanctioned by corporate IT - - today, end users can build departmental, enterprise and even public applications using shared services, fourth- generation language (4GL)-style development platforms and cloud computing services.” • Gartner, 2009 @koskila | https://www.koskila.net 8
  • 9. A typical Developer… • Expensive • Slow • Creates more bugs than features • Constrained by IT/vendor • Doesn’t understand business @koskila | https://www.koskila.net 9
  • 10. …vs the Citizen Developer! • Understands business • No code – no bugs? • Limited only by their imagination (and tools…) • While a developer still waits for Visual Studio to start, a Citizen Developer has already hacked together an integration between 13 different systems using Flow. @koskila | https://www.koskila.net 10
  • 11. But why it doesn’t ACTUALLY matter? • “End of Software Development” • “Citizen Developers are appearing at the workplaces” • Tietoviikko (Knowledge Week), 2018 • “Software Developers Will Become Obsolete” • Brain Food, 2016 • “Software engineers will be obsolete by 2060” • DanAuerbach, 2015 • “A new technology [5th GL] in software development [gives us] the ability to automate fully the development process from design to installation. - - Programming is better done by a machine than a human.“ • In “Can fifth-generation software replace fallible programmers?”, Philips, R, Computerworld, v 18, n 29, 1D/27-30, 16 July 1984 • “4th Generation Languages make programmers largely unneeded” • In “Applications Development Without Programmers”, James Martin, 1982 @koskila | https://www.koskila.net 11
  • 12. But why it doesn’t ACTUALLY matter? • Death of programming and obsoleteness of programmers (by automation, citizen developers, higher level languages, AI) has been proposed at least from the 80s! • Excel is the biggest software development environment (and the most dangerous one) anyway. @koskila | https://www.koskila.net 12
  • 13. But why it doesn’t ACTUALLY matter? • “Low-code tools won’t be putting developers out of a job; on the contrary, they have the potential to help developers do better work.” • -Mike Fitzmaurize,Vice President ofWorkflowTechnology for Nintex, 2017 • Citizen Developer tools are not useful just for Citizen Developers • Tools like Flow make the lives of “actual” developers easier, too! • And when the tools won’t do the trick anymore, a developer will get to (have to) export them to “real” development tools and fix them. @koskila | https://www.koskila.net 13
  • 14. Wait..Which tools are we even talking about? @koskila | https://www.koskila.net 14
  • 15. A lot of tools to choose from! Let’s stay on the Microsoft’s stack here, since even that’s a lot to deal with! 1. Microsoft Flow 2. Azure LogicApps 3. Azure Functions 4. Azure App ServiceWebJobs @koskila | https://www.koskila.net 15
  • 16. A lot of tools to choose from! • Microsoft Flow • Built on top of Logic Apps • Simple integration tool for “any white collar” • Azure LogicApps • More hardcore integration tool • Code view available • Flows can be exported to be “full-fledged” logic apps • Azure Functions & Azure App ServiceWebJobs • Code-first integration services (and much more!) • Azure Functions are serverless – and easily boltable to Flow/Logic Apps! • Webjobs are more classic solution – console apps you can run in an App Service @koskila | https://www.koskila.net 16 Great resource: https://docs.microsoft.com/en-us/azure/azure-functions/functions-compare-logic-apps-ms-flow- webjobs
  • 17. Flow + Azure Functions • This session will concentrate on orchestrating and extending (work)flows • You could do a gazillion other things, but we’ll need to start from somewhere! @koskila | https://www.koskila.net 17
  • 18. Advantages of Flow • Run history is saved – you can always go back in time and rerun something that didn’t work. Great for debugging and iterating! • Easy-to-use, fairly well-tested integrations available out-of-the-box • Easy to extend, too • Custom connectors • HTTP requests to send and receive data from almost any source @koskila | https://www.koskila.net 18
  • 19. Azure Functions considerations • Consumption plan is practically free for small usage • 1 million executions and 400 000 GB-s time/transfer are FREE • After that €0.000014/GB-s & €0.169 per million executions • Maximum runtime of 10 minutes! • Scalability’s great (even though it still loses to AWS Lambda Functions) • Running a function in an App Service • It isn’t serverless • Max runtime unspecified – but long! • Azure Function can be durable (stateful) • https://docs.microsoft.com/en-us/azure/azure-functions/durable-functions- overview @koskila | https://www.koskila.net 19
  • 20. Azure Cognitive Services -Text Analytics API • Detect sentiment, key phrases, and language from your text • Powered by MicrosoftCognitive Services, machine learning and AI algorithms in the cloud. • DetectTopics used to exist – it was great – but we’ll be using key phrases today instead • Learn more: https://azure.microsoft.com/en-us/services/cognitive- services/text-analytics/ • Also noteworthy: MachineTranslation in SharePoint, and Bing Translator, are powered by Cognitive Services @koskila | https://www.koskila.net 20
  • 21. Azure Cognitive Services -Text Analytics API @koskila | https://www.koskila.net 21
  • 22. Modern SharePoint • Finally, SharePoint that looks (kind of) good out-of-the-box • It’s even responsive  • “Back to basics” • Only does what SharePoint does well • Excellent file storage (used byTeams & Groups), decent web interface, and a mobile app • Uses other services for everything it’s bad at: • Calendars from Exchange, tasks from Planner, IM and discussions viaTeams orYammer • Webhooks + SPFx = decent extensibility @koskila | https://www.koskila.net 22
  • 23. Classic SharePoint is not dead either! • If something works with Modern, it’ll usually work with Classic, too – just requires some sweat, tears and clever workarounds • Publishing infrastructure makes things a bit complicated: • Bad/no support for fields like “Page Layout” or “Publishing Page Content” @koskila | https://www.koskila.net 23
  • 24. How does this relate to real-life business problems? Case: Automatic MetadataTagging @koskila | https://www.koskila.net 24
  • 25. The Problem • The amount of data is surging (~90% of the data in the world has been created in the last 2 years) • To ensure that data in organizations is useful, it needs to be found easily • A great “Enterprise-y” solution has been metadata tagging! • However, users generally hate doing that manually • Automatic solutions are either cumbersome to maintain, expensive to develop, or both • Many required metadata fields will cause users to migrate to shadow IT solutions (like DropBox) @koskila | https://www.koskila.net 25
  • 26. The Solution • Using ModernTeam Sites in SharePoint for document storage enables collaboration • SharePoint Search is decent, but thorough metadata tagging makes it a lot more useful • UsingAzure Cognitive Services we can fill the metadata fields automatically – without any user interaction at all! • Content will be found and users will be happy  @koskila | https://www.koskila.net 26
  • 27. Our StackToday (1/2) • Modern SharePointTeam Sites • Document Library used as a Data Source • The only End-User Facing GUI • Microsoft Flow • Launches via webhook, calls an Azure Function, finally sends a notification • Azure Function • Contains the actual program logic • Azure Cognitive Services • TextAPI used to analyze text for Key Phrases @koskila | https://www.koskila.net 27
  • 28. Our StackToday (2/2) • The whole stack is super cheap! • SharePointOnline included in most licenses anyway, standalone $5/user/mo (including 1Tb of OneDrive!) • Cognitive Services free (for a small monthly quota – commercial plans starting from ~$70/mo) • Azure Functions billed per usage, my monthly cost for my demos has been $0.02 • See  • Flow free for personal, basic use @koskila | https://www.koskila.net 28
  • 29. How? • A Flow attached to Document Library will call theAzure Function that’ll do the heavy lifting • A simple HTTP request to Azure Function – could create a custom connector, too! • Finally, notifies admin of the execution and the creator of the file. @koskila | https://www.koskila.net 29
  • 30. How? • An Azure Function will run, extract text, analyze it using Azure Cognitive Services, and then write the info back to SharePointOnline @koskila | https://www.koskila.net 30
  • 31. Demo • Case description: https://www.koskila.net/2018/03/20/resolving- managed-metadata-madness-good-enough-to-win-a-hackathon/ • Video: https://youtu.be/G0kESOlBBjk?t=109 • Code: https://github.com/koskila/KeyphraseExtraction @koskila | https://www.koskila.net 31
  • 32. Further Considerations @koskila | https://www.koskila.net 32
  • 33. Flow Custom Connectors • Don’t want to configure multiple HTTP –requests with difficult parameters after one another?You can automate some of that stuff with custom connectors! • Custom Connectors can be shared between teams, so if you have a great API you want to publish to your colleagues, it’s fairly easy to share @koskila | https://www.koskila.net 33
  • 34. Flow Custom Connectors @koskila | https://www.koskila.net 34
  • 35. Flow Custom Connectors @koskila | https://www.koskila.net 35
  • 36. Flow Custom Connectors @koskila | https://www.koskila.net 36
  • 37. Flow Custom Connectors @koskila | https://www.koskila.net 37
  • 38. Flow Custom Connectors @koskila | https://www.koskila.net 38
  • 39. Flow Custom Connectors @koskila | https://www.koskila.net 39
  • 40. Flow Custom Connectors @koskila | https://www.koskila.net 40
  • 41. Flow Custom Connectors @koskila | https://www.koskila.net 41
  • 42. Flow Custom Connectors @koskila | https://www.koskila.net 42
  • 44. Caveats • The stack’s evolving – no telling how long this will be valid or required • You could replace text extraction with Azure OCR – but last time I tried, the custom library worked better. • TextAnalysis is interesting – sometimes it works better, sometimes it’s not that accurate! • For shorter documents, it doesn’t work well at all @koskila | https://www.koskila.net 44
  • 45. What’s next? • Microsoft Flow is getting more Managed Metadata capabilities – maybe we won’t need the OfficeDev PnP / CSOM library to write to the document library soon? • However, it’s even missing from the JavaScript libraries, so eh, you never know.. • Azure Functions can now be run in user context – but with Flow this is super finicky! Couldn’t get it to work here – even passing cookies between HTTP actions is forbidden. • See: https://powerusers.microsoft.com/t5/General-Flow-Discussion/Passing- Cookies-Between-HTTP-Actions/td-p/69761/page/2 • See if you can figure it out?: https://docs.microsoft.com/en- us/sharepoint/dev/spfx/web-parts/guidance/connect-to-api-secured-with-aad @koskila | https://www.koskila.net 45
  • 46. Resources & Further reading • Documentation: • https://azure.microsoft.com/en-gb/campaigns/developer-guide/ • Slides available: • <placeholder> • Code available: • https://github.com/koskila/KeyphraseExtraction • Description of Case 1: • https://www.koskila.net/2018/03/20/resolving-managed-metadata-madness- good-enough-to-win-a-hackathon/ @koskila | https://www.koskila.net 46
  • 47. Let’s connect! • @koskila • www.koskila.net • https://github.com/koskila @koskila | https://www.koskila.net 47