SlideShare uma empresa Scribd logo
1 de 37
Portfolio Oversight with eazyBI
Kris Siwiec • Lead Consultant • New Verve Consulting • new_verve
kris@newverveconsulting.com
Agenda
The who
The who
Who are these people?
Meet the team!
Agenda
The what
The what
What is this all about?
Integration
is the path
to riches and peace.
E C PRESCOTT
Why eazyBI?
Love
We love:
the tool,
the community,
the ecosystem…
Why eazyBI?
Love Freedom
Why eazyBI?
For the tool,
the community,
the ecosystem.
To structure,
query and
present data.
Why eazyBI?
Freedom IntegrationLove
To structure,
query and
present data.
Bridging gaps
in functionality
and understanding.
For the tool,
the community,
the ecosystem.
Why NOT
Tempo?
“He that breaks a thing to find out
what it is has left the path of wisdom”
Tempo
“tantrums”
Rigidness
Built-in reports & gadgets not designed for easy
customization
• Pre-defined views of data
• Limited number of
- presets
- units
- scales
“You shall not pass”Tempo
“tantrums”
Obstructiveness
Built-in reports & gadgets respect user
permissions
• Jira permissions
- Browse Projects
- Filter Owner
- …
• Tempo permissions
- Administrators
- Team Administrators
- Account Administrators
- Rate Administrators
- Folio Owner
“A wizard is never late…nor is he
early”
Tempo
“tantrums”
Laziness
Built-in reports & gadgets computed on-
the-fly
“My preciousss…”Tempo
“tantrums”
Possessiveness
• Built-in reports not available through dashboard
gadgets
• Limited choice of built-in gadgets
• Gadgets respect user permissions
i.e. not suitable for unprivileged users (e.g. JSD
customers)
• Rigidness
• Obstructivenes
s
• Laziness
• Possessivenes
s
• Love
• Freedom
• Integration
= riches & peace
WHY EAZYBI WHY NOT TEMPO
Agenda
The eazy
The eazy
Getting our hands on the data
Database API
Different points of view
Bottom-up view of
data
Top-down view of data
SELECT
FROM
WHERE
select
portfolio_name,
expired,
actual,
account_id,
account_key,
account_name,
rate_table_id,
rate_table_name,
cost_name,
id,
category,
workload_scheme,
team_id,
team_name,
team_role_id,
role_id,
role_name,
start_date_p,
end_date_p,
amount
from
(
select
concat('ALOC', aloc.`ID`) id,
fo.`NAME` portfolio_name,
if(fo.`END_DATE`>=CURDATE(),'OPEN','EXPIRED') expired,
if(po.`ACTUAL`=1,'Actual','Planned') actual,
# filter.`VALUE` query, # only used with AO_2D3BEA_FILTER and AO_2D3BEA_USER_FILTER
# filter.`reqcontent` query, # returns the full JQL filter query
substring_index(substring_index(filter.`reqcontent`, ''')', 1), '(''', -1) account_key_jql, # extracts the account key from JQL query
# po.`ACCOUNT_KEY` account_key, # comes up NULL
#account.`ID` account_id,
fo.`WORKLOAD_SCHEME_ID` workload_scheme,
fo.`RATE_TABLE_ID` rate_table_id,
po.`TEAM_ROLE_ID` team_role_id, # WARN: does not line up with role_id below
user.`ROLE_ID` role_id,
user.`ROLE_NAME` role_name, # for comparison with ID
user.`TEAM_ID` team_id,
user.`TEAM_NAME` team_name, # for comparison with ID
po.`CATEGORY` category,
# 'Salaries' type, # optional constant
po.`NAME` cost_name,
wage.`WAGE`*aloc.`PERCENTAGE`/100*8*(5 * (DATEDIFF(aloc.`END_DATE`, aloc.`START_DATE`) DIV 7) +
MID('0123455501234445012333450122234501101234000123450', 7 * WEEKDAY(aloc.`START_DATE`) + WEEKDAY(aloc.`END_DATE`) + 1, 1)) amount, # needs reviewing
aloc.`START_DATE` start_date,
aloc.`START_DATE` start_date_p,
aloc.`END_DATE` end_date_p
from AO_2D3BEA_POSITION as po join AO_2D3BEA_FOLIO as fo on po.`FOLIO_ID`= fo.`ID`
join AO_2D3BEA_ALLOCATION as aloc on aloc.`POSITION_ID`=po.`ID`
join AO_2D3BEA_WAGE as wage on wage.`POSITION_ID`=po.`ID`
join AO_2D3BEA_USER_INDEX as user on user.`USER_KEY`=po.`MEMBER`
# join AO_2D3BEA_USER_FILTER as filter on filter.`ID`=fo.`SAVED_FILTER_ID` # both AO_2D3BEA_FILTER and AO_2D3BEA_USER_FILTER are useless
join searchrequest as filter on filter.`ID`=fo.`SAVED_FILTER_ID`
) t1
join
(
select *
from
(
select ID account_id, NAME account_name, `KEY` account_key
from AO_C3C6E8_ACCOUNT_V1
) t3
join
(
select NAME rate_table_name, SCOPE_ID scope_id, SCOPE_TYPE scope_type, PARENT_ID parent_id
from AO_C3C6E8_RATE_TABLE
where SCOPE_TYPE='ACCOUNT'
) t4
on t3.`account_id`=t4.`scope_id`
) t2
#on t1.`account_key_jql`=t2.`account_key` and t1.`rate_table_id`=t2.`rate_table_id`
on t1.`account_key_jql`=t2.`account_key` and t1.`rate_table_id`=t2.`parent_id` # cannot join on rate_table_id as we need the parent rate table
• indirect data access
• high access time
• low access cost
• balance of granularity
and control
• direct data access
• low access time
• high access cost
• maximum granularity
and control
DATABASE API
Point taken
Agenda The not-so-eazy
The not-so-eazy
Getting our hands on MORE data
Request timeouts
WHEN MORE DATA = BIGGER DATA
Request proxying
• Response time
• Response size
• Page size
• Cache response
• Format/paginate
• Publish response
1h → 1m → 1s / account
Data processing time reduction on a 500-account portfolio
API coverage
WHEN MORE DATA = BETTER DATA
API stability
• Not all data officially
exposed
• Sometimes in the response
you get more than you
bargained on
• Public endpoints
often experimental
• Private endpoints
here be dragons
Agenda
Wee demo
Wee demo
How does this all fit together?
Data processing workflow
Data cache Source application
Data source Data proxy
• User properties
• Active Objects
• AWS S3
• …Database
• REST API data connector in eazyBI
• Pagination
• Authentication
• Public endpoints
• Private endpoints
• SQL queries
• …Screen scrapes
• Microservice
• Scripted service / CRON job
• Custom endpoint
Agenda
Wrap-up
Wrap-up
DO
• Proxy your data
• Cache your data
• Use public endpoints
DON'T
• Presume performance
• Use DB queries
• Use private endpoints
DOs & DON'Ts
Questions?
Kris Siwiec • Lead Consultant • New Verve Consulting • new_verve
kris@newverveconsulting.com
Cheers!
Kris Siwiec • Lead Consultant • New Verve Consulting • new_verve
kris@newverveconsulting.com

Mais conteúdo relacionado

Mais procurados

Search APIs in Spotlight and Safari
Search APIs in Spotlight and SafariSearch APIs in Spotlight and Safari
Search APIs in Spotlight and SafariYusuke Kita
 
Big Objects in Salesforce
Big Objects in SalesforceBig Objects in Salesforce
Big Objects in SalesforceAmit Chaudhary
 
Data Exploration with Elasticsearch
Data Exploration with ElasticsearchData Exploration with Elasticsearch
Data Exploration with ElasticsearchAleksander Stensby
 
Intranet Development in Office 365
Intranet Development in Office 365Intranet Development in Office 365
Intranet Development in Office 365Eric Shupps
 
Introduction to SharePoint 2013 REST API
Introduction to SharePoint 2013 REST APIIntroduction to SharePoint 2013 REST API
Introduction to SharePoint 2013 REST APIQUONTRASOLUTIONS
 
Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...SPTechCon
 
Building Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET CoreBuilding Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET CoreStormpath
 
Server Side Swift with Swag
Server Side Swift with SwagServer Side Swift with Swag
Server Side Swift with SwagJens Ravens
 
Webinar: Event Processing & Data Analytics with Lucidworks Fusion
Webinar: Event Processing & Data Analytics with Lucidworks FusionWebinar: Event Processing & Data Analytics with Lucidworks Fusion
Webinar: Event Processing & Data Analytics with Lucidworks FusionLucidworks
 
Real World REST with Atom/AtomPub
Real World REST with Atom/AtomPubReal World REST with Atom/AtomPub
Real World REST with Atom/AtomPubPeter Keane
 
#SalesforceSaturday : Salesforce BIG Objects Explained
#SalesforceSaturday : Salesforce BIG Objects Explained#SalesforceSaturday : Salesforce BIG Objects Explained
#SalesforceSaturday : Salesforce BIG Objects ExplainedAtul Gupta(8X)
 
Implementing Authorization
Implementing AuthorizationImplementing Authorization
Implementing AuthorizationTorin Sandall
 
Pragmatic REST APIs
Pragmatic REST APIsPragmatic REST APIs
Pragmatic REST APIsamesar0
 
How to build a rest api.pptx
How to build a rest api.pptxHow to build a rest api.pptx
How to build a rest api.pptxHarry Potter
 
Ako prepojiť aplikáciu s Elasticsearch
Ako prepojiť aplikáciu s ElasticsearchAko prepojiť aplikáciu s Elasticsearch
Ako prepojiť aplikáciu s Elasticsearchbart-sk
 

Mais procurados (18)

Search APIs in Spotlight and Safari
Search APIs in Spotlight and SafariSearch APIs in Spotlight and Safari
Search APIs in Spotlight and Safari
 
Big Objects in Salesforce
Big Objects in SalesforceBig Objects in Salesforce
Big Objects in Salesforce
 
Data Exploration with Elasticsearch
Data Exploration with ElasticsearchData Exploration with Elasticsearch
Data Exploration with Elasticsearch
 
Intranet Development in Office 365
Intranet Development in Office 365Intranet Development in Office 365
Intranet Development in Office 365
 
Parse
ParseParse
Parse
 
Introduction to SharePoint 2013 REST API
Introduction to SharePoint 2013 REST APIIntroduction to SharePoint 2013 REST API
Introduction to SharePoint 2013 REST API
 
Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
 
Building Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET CoreBuilding Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET Core
 
Html indexed db
Html indexed dbHtml indexed db
Html indexed db
 
Server Side Swift with Swag
Server Side Swift with SwagServer Side Swift with Swag
Server Side Swift with Swag
 
Webinar: Event Processing & Data Analytics with Lucidworks Fusion
Webinar: Event Processing & Data Analytics with Lucidworks FusionWebinar: Event Processing & Data Analytics with Lucidworks Fusion
Webinar: Event Processing & Data Analytics with Lucidworks Fusion
 
Real World REST with Atom/AtomPub
Real World REST with Atom/AtomPubReal World REST with Atom/AtomPub
Real World REST with Atom/AtomPub
 
#SalesforceSaturday : Salesforce BIG Objects Explained
#SalesforceSaturday : Salesforce BIG Objects Explained#SalesforceSaturday : Salesforce BIG Objects Explained
#SalesforceSaturday : Salesforce BIG Objects Explained
 
Implementing Authorization
Implementing AuthorizationImplementing Authorization
Implementing Authorization
 
RESTful API - Best Practices
RESTful API - Best PracticesRESTful API - Best Practices
RESTful API - Best Practices
 
Pragmatic REST APIs
Pragmatic REST APIsPragmatic REST APIs
Pragmatic REST APIs
 
How to build a rest api.pptx
How to build a rest api.pptxHow to build a rest api.pptx
How to build a rest api.pptx
 
Ako prepojiť aplikáciu s Elasticsearch
Ako prepojiť aplikáciu s ElasticsearchAko prepojiť aplikáciu s Elasticsearch
Ako prepojiť aplikáciu s Elasticsearch
 

Semelhante a Portfolio Oversight With eazyBI

What are you waiting for
What are you waiting forWhat are you waiting for
What are you waiting forJason Strate
 
Talavant Data Lake Analytics
Talavant Data Lake Analytics Talavant Data Lake Analytics
Talavant Data Lake Analytics Sean Forgatch
 
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1SolarWinds
 
Scotch On The Rocks 2011
Scotch On The Rocks 2011Scotch On The Rocks 2011
Scotch On The Rocks 2011Steven Peeters
 
Open Social In The Enterprise
Open Social In The EnterpriseOpen Social In The Enterprise
Open Social In The EnterpriseTim Moore
 
Mtn view sql server nov 2014
Mtn view sql server nov 2014Mtn view sql server nov 2014
Mtn view sql server nov 2014EspressoLogic
 
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data AnalyticsAmazon Web Services
 
Data infrastructure architecture for medium size organization: tips for colle...
Data infrastructure architecture for medium size organization: tips for colle...Data infrastructure architecture for medium size organization: tips for colle...
Data infrastructure architecture for medium size organization: tips for colle...DataWorks Summit/Hadoop Summit
 
GreenDao Introduction
GreenDao IntroductionGreenDao Introduction
GreenDao IntroductionBooch Lin
 
(ATS6-APP01) Unleashing the Power of Your Data with Discoverant
(ATS6-APP01) Unleashing the Power of Your Data with Discoverant(ATS6-APP01) Unleashing the Power of Your Data with Discoverant
(ATS6-APP01) Unleashing the Power of Your Data with DiscoverantBIOVIA
 
SDSC18 and DSATL Meetup March 2018
SDSC18 and DSATL Meetup March 2018 SDSC18 and DSATL Meetup March 2018
SDSC18 and DSATL Meetup March 2018 CareerBuilder.com
 
Big objects in Salesforce Technology
Big objects in Salesforce TechnologyBig objects in Salesforce Technology
Big objects in Salesforce TechnologyDivya Agrawal
 
DataMinds 2022 Azure Purview Erwin de Kreuk
DataMinds 2022 Azure Purview Erwin de KreukDataMinds 2022 Azure Purview Erwin de Kreuk
DataMinds 2022 Azure Purview Erwin de KreukErwin de Kreuk
 
The journy to real time analytics
The journy to real time analyticsThe journy to real time analytics
The journy to real time analyticsNoSQL TLV
 
Build a modern data platform.pptx
Build a modern data platform.pptxBuild a modern data platform.pptx
Build a modern data platform.pptxIke Ellis
 
AZMS PRESENTATION.pptx
AZMS PRESENTATION.pptxAZMS PRESENTATION.pptx
AZMS PRESENTATION.pptxSonuShaw16
 
Data Modeling on Azure for Analytics
Data Modeling on Azure for AnalyticsData Modeling on Azure for Analytics
Data Modeling on Azure for AnalyticsIke Ellis
 

Semelhante a Portfolio Oversight With eazyBI (20)

What are you waiting for
What are you waiting forWhat are you waiting for
What are you waiting for
 
Taming the shrew Power BI
Taming the shrew Power BITaming the shrew Power BI
Taming the shrew Power BI
 
Talavant Data Lake Analytics
Talavant Data Lake Analytics Talavant Data Lake Analytics
Talavant Data Lake Analytics
 
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
Stop the Chaos! Get Real Oracle Performance by Query Tuning Part 1
 
Scotch On The Rocks 2011
Scotch On The Rocks 2011Scotch On The Rocks 2011
Scotch On The Rocks 2011
 
Open Social In The Enterprise
Open Social In The EnterpriseOpen Social In The Enterprise
Open Social In The Enterprise
 
Mtn view sql server nov 2014
Mtn view sql server nov 2014Mtn view sql server nov 2014
Mtn view sql server nov 2014
 
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
 
Data infrastructure architecture for medium size organization: tips for colle...
Data infrastructure architecture for medium size organization: tips for colle...Data infrastructure architecture for medium size organization: tips for colle...
Data infrastructure architecture for medium size organization: tips for colle...
 
GreenDao Introduction
GreenDao IntroductionGreenDao Introduction
GreenDao Introduction
 
(ATS6-APP01) Unleashing the Power of Your Data with Discoverant
(ATS6-APP01) Unleashing the Power of Your Data with Discoverant(ATS6-APP01) Unleashing the Power of Your Data with Discoverant
(ATS6-APP01) Unleashing the Power of Your Data with Discoverant
 
SDSC18 and DSATL Meetup March 2018
SDSC18 and DSATL Meetup March 2018 SDSC18 and DSATL Meetup March 2018
SDSC18 and DSATL Meetup March 2018
 
Gaej For Beginners
Gaej For BeginnersGaej For Beginners
Gaej For Beginners
 
Big objects in Salesforce Technology
Big objects in Salesforce TechnologyBig objects in Salesforce Technology
Big objects in Salesforce Technology
 
OData Services
OData ServicesOData Services
OData Services
 
DataMinds 2022 Azure Purview Erwin de Kreuk
DataMinds 2022 Azure Purview Erwin de KreukDataMinds 2022 Azure Purview Erwin de Kreuk
DataMinds 2022 Azure Purview Erwin de Kreuk
 
The journy to real time analytics
The journy to real time analyticsThe journy to real time analytics
The journy to real time analytics
 
Build a modern data platform.pptx
Build a modern data platform.pptxBuild a modern data platform.pptx
Build a modern data platform.pptx
 
AZMS PRESENTATION.pptx
AZMS PRESENTATION.pptxAZMS PRESENTATION.pptx
AZMS PRESENTATION.pptx
 
Data Modeling on Azure for Analytics
Data Modeling on Azure for AnalyticsData Modeling on Azure for Analytics
Data Modeling on Azure for Analytics
 

Mais de eazyBI

How to Manage, Organize, and Visualize Projects with Profields Custom Fields ...
How to Manage, Organize, and Visualize Projects with Profields Custom Fields ...How to Manage, Organize, and Visualize Projects with Profields Custom Fields ...
How to Manage, Organize, and Visualize Projects with Profields Custom Fields ...eazyBI
 
Data-Driven Decisions in an Agile Environment
Data-Driven Decisions in an Agile EnvironmentData-Driven Decisions in an Agile Environment
Data-Driven Decisions in an Agile EnvironmenteazyBI
 
Insight Asset Management in Jira and eazyBI Powered Insight Reporting
Insight Asset Management in Jira and eazyBI Powered Insight ReportingInsight Asset Management in Jira and eazyBI Powered Insight Reporting
Insight Asset Management in Jira and eazyBI Powered Insight ReportingeazyBI
 
Management Visibility and Oversight in a Global R&D Organisation
Management Visibility and Oversight in a Global R&D OrganisationManagement Visibility and Oversight in a Global R&D Organisation
Management Visibility and Oversight in a Global R&D OrganisationeazyBI
 
How to Visualise, Understand, and Act on Salesforce Sales Data Using eazyBI?
How to Visualise, Understand, and Act on Salesforce Sales Data Using eazyBI?How to Visualise, Understand, and Act on Salesforce Sales Data Using eazyBI?
How to Visualise, Understand, and Act on Salesforce Sales Data Using eazyBI?eazyBI
 
eazyLY Mix, Match & Mash Up Project Data
eazyLY Mix, Match & Mash Up Project DataeazyLY Mix, Match & Mash Up Project Data
eazyLY Mix, Match & Mash Up Project DataeazyBI
 
eazyBI Overview – Reports, Charts, Dashboards
eazyBI Overview – Reports, Charts, DashboardseazyBI Overview – Reports, Charts, Dashboards
eazyBI Overview – Reports, Charts, DashboardseazyBI
 
eazyBI for Agile Teams
eazyBI for Agile TeamseazyBI for Agile Teams
eazyBI for Agile TeamseazyBI
 
eazyBI for Service Teams
eazyBI for Service TeamseazyBI for Service Teams
eazyBI for Service TeamseazyBI
 
eazyBI for Test Management
eazyBI for Test ManagementeazyBI for Test Management
eazyBI for Test ManagementeazyBI
 
eazyBI for Planning and Budgeting
eazyBI for Planning and BudgetingeazyBI for Planning and Budgeting
eazyBI for Planning and BudgetingeazyBI
 
eazyBI for Other Data Sources
eazyBI for Other Data SourceseazyBI for Other Data Sources
eazyBI for Other Data SourceseazyBI
 
eazyBI Add-on Day 2017 Keynote
eazyBI Add-on Day 2017 KeynoteeazyBI Add-on Day 2017 Keynote
eazyBI Add-on Day 2017 KeynoteeazyBI
 
eazyBI Advanced Training, June 2016
eazyBI Advanced Training, June 2016eazyBI Advanced Training, June 2016
eazyBI Advanced Training, June 2016eazyBI
 
eazyBI Basic Training, June 2016
eazyBI Basic Training, June 2016eazyBI Basic Training, June 2016
eazyBI Basic Training, June 2016eazyBI
 

Mais de eazyBI (15)

How to Manage, Organize, and Visualize Projects with Profields Custom Fields ...
How to Manage, Organize, and Visualize Projects with Profields Custom Fields ...How to Manage, Organize, and Visualize Projects with Profields Custom Fields ...
How to Manage, Organize, and Visualize Projects with Profields Custom Fields ...
 
Data-Driven Decisions in an Agile Environment
Data-Driven Decisions in an Agile EnvironmentData-Driven Decisions in an Agile Environment
Data-Driven Decisions in an Agile Environment
 
Insight Asset Management in Jira and eazyBI Powered Insight Reporting
Insight Asset Management in Jira and eazyBI Powered Insight ReportingInsight Asset Management in Jira and eazyBI Powered Insight Reporting
Insight Asset Management in Jira and eazyBI Powered Insight Reporting
 
Management Visibility and Oversight in a Global R&D Organisation
Management Visibility and Oversight in a Global R&D OrganisationManagement Visibility and Oversight in a Global R&D Organisation
Management Visibility and Oversight in a Global R&D Organisation
 
How to Visualise, Understand, and Act on Salesforce Sales Data Using eazyBI?
How to Visualise, Understand, and Act on Salesforce Sales Data Using eazyBI?How to Visualise, Understand, and Act on Salesforce Sales Data Using eazyBI?
How to Visualise, Understand, and Act on Salesforce Sales Data Using eazyBI?
 
eazyLY Mix, Match & Mash Up Project Data
eazyLY Mix, Match & Mash Up Project DataeazyLY Mix, Match & Mash Up Project Data
eazyLY Mix, Match & Mash Up Project Data
 
eazyBI Overview – Reports, Charts, Dashboards
eazyBI Overview – Reports, Charts, DashboardseazyBI Overview – Reports, Charts, Dashboards
eazyBI Overview – Reports, Charts, Dashboards
 
eazyBI for Agile Teams
eazyBI for Agile TeamseazyBI for Agile Teams
eazyBI for Agile Teams
 
eazyBI for Service Teams
eazyBI for Service TeamseazyBI for Service Teams
eazyBI for Service Teams
 
eazyBI for Test Management
eazyBI for Test ManagementeazyBI for Test Management
eazyBI for Test Management
 
eazyBI for Planning and Budgeting
eazyBI for Planning and BudgetingeazyBI for Planning and Budgeting
eazyBI for Planning and Budgeting
 
eazyBI for Other Data Sources
eazyBI for Other Data SourceseazyBI for Other Data Sources
eazyBI for Other Data Sources
 
eazyBI Add-on Day 2017 Keynote
eazyBI Add-on Day 2017 KeynoteeazyBI Add-on Day 2017 Keynote
eazyBI Add-on Day 2017 Keynote
 
eazyBI Advanced Training, June 2016
eazyBI Advanced Training, June 2016eazyBI Advanced Training, June 2016
eazyBI Advanced Training, June 2016
 
eazyBI Basic Training, June 2016
eazyBI Basic Training, June 2016eazyBI Basic Training, June 2016
eazyBI Basic Training, June 2016
 

Último

Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 

Último (20)

Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 

Portfolio Oversight With eazyBI

  • 1. Portfolio Oversight with eazyBI Kris Siwiec • Lead Consultant • New Verve Consulting • new_verve kris@newverveconsulting.com
  • 3. The who Who are these people?
  • 6. The what What is this all about?
  • 7. Integration is the path to riches and peace. E C PRESCOTT
  • 9. Love We love: the tool, the community, the ecosystem… Why eazyBI?
  • 10. Love Freedom Why eazyBI? For the tool, the community, the ecosystem. To structure, query and present data.
  • 11. Why eazyBI? Freedom IntegrationLove To structure, query and present data. Bridging gaps in functionality and understanding. For the tool, the community, the ecosystem.
  • 13. “He that breaks a thing to find out what it is has left the path of wisdom” Tempo “tantrums” Rigidness Built-in reports & gadgets not designed for easy customization • Pre-defined views of data • Limited number of - presets - units - scales
  • 14. “You shall not pass”Tempo “tantrums” Obstructiveness Built-in reports & gadgets respect user permissions • Jira permissions - Browse Projects - Filter Owner - … • Tempo permissions - Administrators - Team Administrators - Account Administrators - Rate Administrators - Folio Owner
  • 15. “A wizard is never late…nor is he early” Tempo “tantrums” Laziness Built-in reports & gadgets computed on- the-fly
  • 16. “My preciousss…”Tempo “tantrums” Possessiveness • Built-in reports not available through dashboard gadgets • Limited choice of built-in gadgets • Gadgets respect user permissions i.e. not suitable for unprivileged users (e.g. JSD customers)
  • 17. • Rigidness • Obstructivenes s • Laziness • Possessivenes s • Love • Freedom • Integration = riches & peace WHY EAZYBI WHY NOT TEMPO
  • 19. The eazy Getting our hands on the data
  • 20. Database API Different points of view Bottom-up view of data Top-down view of data
  • 22. select portfolio_name, expired, actual, account_id, account_key, account_name, rate_table_id, rate_table_name, cost_name, id, category, workload_scheme, team_id, team_name, team_role_id, role_id, role_name, start_date_p, end_date_p, amount from ( select concat('ALOC', aloc.`ID`) id, fo.`NAME` portfolio_name, if(fo.`END_DATE`>=CURDATE(),'OPEN','EXPIRED') expired, if(po.`ACTUAL`=1,'Actual','Planned') actual, # filter.`VALUE` query, # only used with AO_2D3BEA_FILTER and AO_2D3BEA_USER_FILTER # filter.`reqcontent` query, # returns the full JQL filter query substring_index(substring_index(filter.`reqcontent`, ''')', 1), '(''', -1) account_key_jql, # extracts the account key from JQL query # po.`ACCOUNT_KEY` account_key, # comes up NULL #account.`ID` account_id, fo.`WORKLOAD_SCHEME_ID` workload_scheme, fo.`RATE_TABLE_ID` rate_table_id, po.`TEAM_ROLE_ID` team_role_id, # WARN: does not line up with role_id below user.`ROLE_ID` role_id, user.`ROLE_NAME` role_name, # for comparison with ID user.`TEAM_ID` team_id, user.`TEAM_NAME` team_name, # for comparison with ID po.`CATEGORY` category, # 'Salaries' type, # optional constant po.`NAME` cost_name, wage.`WAGE`*aloc.`PERCENTAGE`/100*8*(5 * (DATEDIFF(aloc.`END_DATE`, aloc.`START_DATE`) DIV 7) + MID('0123455501234445012333450122234501101234000123450', 7 * WEEKDAY(aloc.`START_DATE`) + WEEKDAY(aloc.`END_DATE`) + 1, 1)) amount, # needs reviewing aloc.`START_DATE` start_date, aloc.`START_DATE` start_date_p, aloc.`END_DATE` end_date_p from AO_2D3BEA_POSITION as po join AO_2D3BEA_FOLIO as fo on po.`FOLIO_ID`= fo.`ID` join AO_2D3BEA_ALLOCATION as aloc on aloc.`POSITION_ID`=po.`ID` join AO_2D3BEA_WAGE as wage on wage.`POSITION_ID`=po.`ID` join AO_2D3BEA_USER_INDEX as user on user.`USER_KEY`=po.`MEMBER` # join AO_2D3BEA_USER_FILTER as filter on filter.`ID`=fo.`SAVED_FILTER_ID` # both AO_2D3BEA_FILTER and AO_2D3BEA_USER_FILTER are useless join searchrequest as filter on filter.`ID`=fo.`SAVED_FILTER_ID` ) t1 join ( select * from ( select ID account_id, NAME account_name, `KEY` account_key from AO_C3C6E8_ACCOUNT_V1 ) t3 join ( select NAME rate_table_name, SCOPE_ID scope_id, SCOPE_TYPE scope_type, PARENT_ID parent_id from AO_C3C6E8_RATE_TABLE where SCOPE_TYPE='ACCOUNT' ) t4 on t3.`account_id`=t4.`scope_id` ) t2 #on t1.`account_key_jql`=t2.`account_key` and t1.`rate_table_id`=t2.`rate_table_id` on t1.`account_key_jql`=t2.`account_key` and t1.`rate_table_id`=t2.`parent_id` # cannot join on rate_table_id as we need the parent rate table
  • 23. • indirect data access • high access time • low access cost • balance of granularity and control • direct data access • low access time • high access cost • maximum granularity and control DATABASE API
  • 26. The not-so-eazy Getting our hands on MORE data
  • 27. Request timeouts WHEN MORE DATA = BIGGER DATA Request proxying • Response time • Response size • Page size • Cache response • Format/paginate • Publish response
  • 28. 1h → 1m → 1s / account Data processing time reduction on a 500-account portfolio
  • 29. API coverage WHEN MORE DATA = BETTER DATA API stability • Not all data officially exposed • Sometimes in the response you get more than you bargained on • Public endpoints often experimental • Private endpoints here be dragons
  • 31. Wee demo How does this all fit together?
  • 32. Data processing workflow Data cache Source application Data source Data proxy • User properties • Active Objects • AWS S3 • …Database • REST API data connector in eazyBI • Pagination • Authentication • Public endpoints • Private endpoints • SQL queries • …Screen scrapes • Microservice • Scripted service / CRON job • Custom endpoint
  • 33.
  • 35. Wrap-up DO • Proxy your data • Cache your data • Use public endpoints DON'T • Presume performance • Use DB queries • Use private endpoints DOs & DON'Ts
  • 36. Questions? Kris Siwiec • Lead Consultant • New Verve Consulting • new_verve kris@newverveconsulting.com
  • 37. Cheers! Kris Siwiec • Lead Consultant • New Verve Consulting • new_verve kris@newverveconsulting.com

Notas do Editor

  1. This is the boring slide. Here’s New Verve picking up a recent business award nomination, with our glamorous founder to your left. We’re an Atlassian solution partner and a micro-business, proudly embracing the start-up culture. We like a personal approach and like to think that small is powerful and agile. Being a start-up, in practice we don’t really have fixed roles: we work collectively and our roles emerge naturally from our experience. We’re going through an exciting growth period, with a couple more team members already having joined since this picture was taken.
  2. Now that that’s out of the way, let’s talk about why we’re here.
  3. A brainy quote to set us off. Rather than showing off swanky reports, this talk will be about the technical challenges of implementing eazyBI reports as part of a wider ecosystem. Integration carries unique logistical considerations that are worth exploring. In this scenario, we’re integrating with the Tempo product suite, and we’re going to look at why we could or should make particular architectural decisions.
  4. 3 why use eazyBI reports? * love <3 (we’re besties) * freedom! (to structure & query data) * bridging gaps * in functionality (migration) * in understanding (transition)
  5. 3 why use eazyBI reports? * love <3 (we’re besties) * freedom! (to structure & query data) * bridging gaps * in functionality (migration) * in understanding (transition) We think it’s a real gift and we want to give back!
  6. 3 why use eazyBI reports? * love <3 (we’re besties) * freedom! (to structure & query data) * bridging gaps * in functionality (migration) * in understanding (transition)
  7. 3 why use eazyBI reports? * love <3 (we’re besties) * freedom! (to structure & query data) * bridging gaps * in functionality (migration) * in understanding (transition) We feel that integration is a very interesting use case for eazyBI and a healthy attitude to boot. You don’t build a wall between you & Mexico, or try and leave the continent you’re part of: you build a bridge across the border.
  8. Short description of Tempo: Tempo is a cloud-first software company that helps teams at more than 10,000 companies—SMBs and large-scale enterprises—collaborate, plan and schedule resources, manage budgets, and track time directly from their daily workflow. Longer description of Tempo: Tempo products are designed to enhance the efficiency of Atlassian's JIRA helping teams and businesses collaborate, plan, budget, track, and work smarter seamlessly in one central software platform. More than 10,000 customers in over 100 countries trust Tempo to be successful. Our customers include small startups to large-scale distributed enterprises such as NASA, Amazon, Paypal, Toshiba, Disney, BMW, and Princeton University. Tempo is one of the largest, award-winning, and bestselling add-on vendors in the Atlassian Ecosystem, and has an established network of more than 100 partners worldwide. Don’t get us wrong, we’re not knocking Tempo at all! We’re Tempo partners as well, after all. Tempo produces an excellent product suite that we think is by itself best-suited for manager-level oversight, rather than customer-level reporting. Here’s why…
  9. 4 why not use Tempo built-in reports? * pre-defined view of data * permission considerations (try exposing an Account Budget Burn-up Chart or an Account Time and Expenses Report to unprivileged customers) * performance challenges with large amounts of data (try running the Steering Committee Report over a portfolio of 450 projects) * embedding options We’ve called these “Tempo tantrums” – they’re not really tantrums, but it has a nice ring to it. They are based on some quotes from everyone’s favorite wizard. Dumbledore applied to be on the slides, but he wasn’t Jira-certified, so.
  10. 4 why not use Tempo built-in reports? * pre-defined view of data * permission considerations (try exposing an Account Budget Burn-up Chart or an Account Time and Expenses Report to unprivileged customers) * performance challenges with large amounts of data (try running the Steering Committee Report over a portfolio of 450 projects) * embedding options As a Tempo user, you’re interacting with Jira as a Jira user.
  11. 4 why not use Tempo built-in reports? * pre-defined view of data * permission considerations (try exposing an Account Budget Burn-up Chart or an Account Time and Expenses Report to unprivileged customers) * performance challenges with large amounts of data (try running the Steering Committee Report over a portfolio of 450 projects) * embedding options
  12. 4 why not use Tempo built-in reports? * pre-defined view of data * permission considerations (try exposing an Account Budget Burn-up Chart or an Account Time and Expenses Report to unprivileged customers) * performance challenges with large amounts of data (try running the Steering Committee Report over a portfolio of 450 projects) * embedding options
  13. So, to summarize, we have hopefully made a very strong case ;-) for using eazyBI to deliver planning/financial reports above & beyond what Tempo comes stock with…
  14. Fortunately, Tempo does expose its data via Active Objects database storage as well as REST API calls: now we will discuss which of these options is in our opinion better-suited for everyday integration with eazyBI.
  15. 5 getting your hands on the data * database query import approach * pros & CONS + direct data access + maximum granularity & control - need to cross-reference data from multiple database tables - need to reverse-engineer all calculations done by Tempo (e.g. costs accrued) * REST API import approach * PROS & cons + indirect data access (various measures precomputed upfront by the API) + good balance of granularity & control - indirect data access (must obey API limitations) - need to pre-process data prior to publishing eazyBI allows us to use various data source connectors: among these are a SQL query connector and a REST call connector. Let consider the pros & cons of each.
  16. 5 getting your hands on the data * database query import approach * pros & CONS + direct data access + maximum granularity & control - need to cross-reference data from multiple database tables - need to reverse-engineer all calculations done by Tempo (e.g. costs accrued) * REST API import approach * PROS & cons + indirect data access (various measures precomputed upfront by the API) + good balance of granularity & control - indirect data access (must obey API limitations) - need to pre-process data prior to publishing The DBA is naïve & idealistic: he looks up to the sky and hopes for the best. The hacker looks down from the sky: she’s already there and she knows what she wants.
  17. Theory – a simple query will suffice, right!? It turns out that the more data you would like to pull in, the harder you have to look, especially if you want to cross-reference various data points. Imagine you’re trying to cross-reference some Tempo folios with their parent portfolios, related accounts, team allocations, issue worklogs…
  18. Reality – by the time we’re finished with the query, we need to be a SQL grand-master, we’re at least middle-aged already, and this is just the beginning… There is a lot of SQL in that query: you can’t see it, because it was never meant to see the light of day. The SQL was crap, BTW: both the movie and the code. There’s a key differentiator between DB and REST data access, and that is the technical debt/cost carried by the data access operation. Let’s consider this in more detail.
  19. Database Pros: * direct data access * maximum granularity & control Cons: * need to cross-reference data from multiple database tables * need to reverse-engineer all calculations done by Tempo (e.g. costs accrued) API Pros: * indirect data access (various measures precomputed upfront by the API) * good balance of granularity & control Cons * indirect data access (must obey API limitations) * need to pre-process data prior to publishing (to avoid timeouts)
  20. 5 getting your hands on the data * database query import approach * pros & CONS + direct data access + maximum granularity & control - need to cross-reference data from multiple database tables - need to reverse-engineer all calculations done by Tempo (e.g. costs accrued) * REST API import approach * PROS & cons + indirect data access (various measures precomputed upfront by the API) + good balance of granularity & control - indirect data access (must obey API limitations) - need to pre-process data prior to publishing
  21. 6 getting our hands on MORE data * public API endpoints (experimental) * private API endpoints (enter at your own risk)
  22. 6 getting our hands on MORE data * public API endpoints (experimental) * private API endpoints (enter at your own risk)
  23. Request timeouts – when the API call takes too long or doesn’t return * Too much pre-processing – weak point of native APIs, linked to below * Too much data in response – some calls return more than you’d expect! * Response size too large * Page size too large Direct vs proxied calls
  24. A naïve implementation importing data directly from public endpoints can take upwards of 1h/account, depending on the combination of data required A slightly smarter implementation which pre-processes some data upfront can take 1m/account An optimized implementation which pre-processes and caches all data at the proxy can be as efficient as 1s/account
  25. 6 getting our hands on MORE data * public API endpoints (experimental) * private API endpoints (enter at your own risk)
  26. Emphasis on wee
  27. 6 getting our hands on MORE data * public API endpoints (experimental) * private API endpoints (enter at your own risk)
  28. Here are the basic building blocks for our data processing workflow. There are many options for choosing your data sources: it may be a combination of any number of data providers, from official endpoints to screen scrapes… A convenient option for implementing a quick & dirty microservice is ScriptRunner for Jira. Data can be cached anywhere convenient: from basic user properties to remote data stores in S3.
  29. Here’s an example anonymized snapshot of a live eazyBI report pulling in a combined planning/financial dataset based on a cube of multiple Tempo sources.
  30. We’ve put private endpoints under DON’Ts, as they’re a health & safety hazard, so don’t use private endpoints…but really, DO! :-) Just be aware of the risks…