Top Banner
Developer Friendly Open Data Albert O’Connor @amjoconn Colin Bell @collectdevCA
52

Developer friendly open data

Jan 20, 2015

Download

Technology

Want more apps to be built on your open data? Discover ways to make data more developer friendly. We will look at the history of the Internet and current trends to build an understanding of standards and interfaces to make your data future friendly. At the same time it will make it more useful to developers, citizens and your own organization.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Developer friendly open data

Developer FriendlyOpen Data

Albert O’Connor @amjoconnColin Bell @collectdevCA

Page 2: Developer friendly open data

{ lessons from the Internet }

{ APIs }

{ platform for productivity }

Page 3: Developer friendly open data

{ lessons from the Internet }

Page 4: Developer friendly open data
Page 5: Developer friendly open data

“The Internet is becoming the town square for the global village of

tomorrow.”

Bill Gates

Page 6: Developer friendly open data

The Web

Page 7: Developer friendly open data

The Web

The Internet

SSH

FTP

Skype EmailIRC BitTorrent

DNS

Online Gaming

Page 8: Developer friendly open data

GopherBulletin Board Systems

Page 9: Developer friendly open data

How did the Web come to dominate?

Page 10: Developer friendly open data

Clay Shirky observed that the Web won because it is

evolutionary

Source: http://www.shirky.com/writings/evolve.html [2013]

Page 11: Developer friendly open data

Not because it was perfectly designed or technically

superior

Page 12: Developer friendly open data

Weakly Defined

Solutions that produce partial results when partially implemented can

succeed.

Page 13: Developer friendly open data

Constantly Changing

What is, is wrong, no evolving system is ever perfectly in sync with the

challenges it faces.

Page 14: Developer friendly open data

Evolution is cleverer than you

The ability to understand what is missing at any given moment does not mean

that one person or a small central group can design a better system in the long

haul.

Page 15: Developer friendly open data

HTML5

Page 16: Developer friendly open data

Open Data

Page 17: Developer friendly open data

{ application programmer interfaces — APIs }

Page 18: Developer friendly open data

What application?

Page 19: Developer friendly open data

UI or GUIGraphical User Interface

Page 20: Developer friendly open data

Data User Interfaceor

Developer User Interface

Page 21: Developer friendly open data

DUI

Page 22: Developer friendly open data

DUIerrAPI

Page 23: Developer friendly open data

File Based Open Datahttp://www.regionofwaterloo.ca/opendatadownloads/DoorsOpendataset.xls

Save file on disk

Parse the file

Store as Intermediate format

Load entire dataset into app

Index

Query

Present Result

App

Data loader

Page 24: Developer friendly open data

API Open Datahttp://api.uwaterloo.ca/public/v1/?key=FFF&service=Weather&output=json

{} Json

Convert some data types

Present ResultApp

LanguageSpecificLibrary

Page 25: Developer friendly open data

When and how often do I load the data?

Do I always have to resubmit my App?

Page 26: Developer friendly open data

Why API?

1 - Monitoring

2 - Metrics

Page 27: Developer friendly open data

Why API?

1 - Monitoring / Audit ➡ Who, What, When?

2 - Metrics / Analytics ➡ How?

Page 28: Developer friendly open data

{ platform for productivity }

Page 29: Developer friendly open data

Effectiveness + Efficiency

Efficient (adj.) - performing or functioning in the best possible manner with the least waste of time and effort.

Source: http://dictionary.reference.com [2013]

Effective (adj.) - adequate to accomplish a purpose; producing the intended or expected result.

Page 30: Developer friendly open data

Effectiveness + Efficiency

{} JSON

Convert some data types

Present Result

App

LanguageSpecificLibrary

API Open Data

Save file on disk

Parse the file

Store as Intermediate format

Load entire dataset into app

Index

Query

Present Result

App

Data loader

File Based Open Data

Page 31: Developer friendly open data

{} JSON

Convert some data types

Present Result

App

LanguageSpecificLibrary

API Open Data

Save file on disk

Parse the file

Store as Intermediate format

Load entire dataset into app

Index

Query

Present Result

App

Data loader

File Based Open Data

Data Access

File Based

botheffective

Data Access

API

Effectiveness + Efficiency

Page 32: Developer friendly open data

{ file based works }

Page 33: Developer friendly open data

{} JSON

Convert some data types

Present Result

App

LanguageSpecificLibrary

API Open Data

Save file on disk

Parse the file

Store as Intermediate format

Load entire dataset into app

Index

Query

Present Result

App

Data loader

File Based Open Data

7 steps

File Based

<less

efficient

3 steps

API

Effectiveness + Efficiency

Page 34: Developer friendly open data

{} JSON

Convert some data types

Present Result

App

LanguageSpecificLibrary

API Open Data

Save file on disk

Parse the file

Store as Intermediate format

Load entire dataset into app

Index

Query

Present Result

App

Data loader

File Based Open Data

7 steps

File Based

<less

efficient

3 steps

API

Effectiveness + Efficiency

- duplication- silos- complexity- blind to use

- on-demand- direct- benign- visible

Page 35: Developer friendly open data

Effectiveness + Efficiency = Productivity

Productivity is the effective use of innovation and resources to increase the value-added content of products and services. It is the true source of competitive advantage that creates long term economic viability and a better standard of living for all.

Source: http://hkpc.org => http://bit.ly/ZoivM7 [2013]

Page 36: Developer friendly open data

Effectiveness + Efficiency = Productivity

Innovation + Resourcescombine to make

Products + Services

Page 37: Developer friendly open data

Effectiveness + Efficiency = Productivity

Innovation + Resourcescombine to make

Products + Services

Adding value makes us more efficient!

Page 38: Developer friendly open data

Effectiveness + Efficiency = Productivity

Innovation + Resourcescombine to make

Products + Services

Adding value makes us more efficient!Effectiveness and Efficiency make us Productive.

Page 39: Developer friendly open data

{ make all the things! }

Page 40: Developer friendly open data

{ make all the things! }

... but you can’t ...

Page 41: Developer friendly open data

{ make all the things! }

... but you can? ...

Page 42: Developer friendly open data

{ make all the things! }

... but you can! ...we

Page 43: Developer friendly open data

Rewind... Evolutionary

partial results when partially implemented can succeed

no evolving system is ever perfect

no single entity can meet all user needs and account for all niches

Page 44: Developer friendly open data

Embrace the reality, empower the toolmakers

We can all innovate to add value together!

Define data entities (nouns) ... see EA[1]

Make data accessible so Developers are Efficient

Developers inside and outside your organization can design + build services with the same data

[1]: http://en.wikipedia.org/wiki/Enterprise_architecture [2013]

Page 45: Developer friendly open data

Empower Developers within your Organization across Organizational Boundaries

Improve your Organization’s Productivity

Page 46: Developer friendly open data

Steadily evolve your APIs and begin using them

yourself.

Improve your Productivity

Page 47: Developer friendly open data

Design for ‘maker’* Users

https://www.gov.uk/designprinciples

* Toolmakers... aka. Developers

Page 48: Developer friendly open data

Design for AccessAccess by Design (AbD)

http://www.ipc.on.ca/images/Resources/accessbydesign_7fundamentalprinciples.pdf

Proactive, not Reactive

Access Embedded into Design

Openness and Transparency = Accountability

Fosters Collaboration

Enhances Efficiency

Makes Access Truly Accessible

Increases Quality of Information

Page 49: Developer friendly open data

{ provide friendly access }

Empower the ‘maker’ users to help you.

Make friends with developers!

Page 50: Developer friendly open data

{ provide open access }

Do your part to help improve productivity!

Empower yourself and others to provide better (more valuable) service.

Page 51: Developer friendly open data

{ further reading }

https://www.gov.uk/service-manual/making-software/apis.htmlhttp://www.w3.org/Provider/Style/URI.htmlhttp://www.shirky.com/writings/evolve.html

http://en.wikipedia.org/wiki/Enterprise_architecture

Page 52: Developer friendly open data

Developer FriendlyOpen Data

Albert O’Connor @amjoconnColin Bell @collectdevCA