user-centered open source

86
User-centered Open Source By Jackie Kazil For PyCon Russia, July 4, 2016

Upload: jackie-kazil

Post on 08-Jan-2017

114 views

Category:

Software


0 download

TRANSCRIPT

Page 1: User-centered open source

User-centeredOpen Source

By Jackie Kazil

For PyCon Russia, July 4, 2016

Page 2: User-centered open source

2

About me… @jackiekazil

Page 3: User-centered open source

После четырех лет в университете, Я говорю по-русски.

Page 4: User-centered open source

4

Page 5: User-centered open source

5

Page 6: User-centered open source

What is user-centered design?

Page 7: User-centered open source

beta.eiti.org

Page 8: User-centered open source

8

Urllib2

EXAMPLE

Page 9: User-centered open source

9

Requests

Page 10: User-centered open source

10

“HTTP for Humans”Not for Humans?

Urllib2 vs Requests

Page 11: User-centered open source

Why ‘open-source’?- Open Source- Inner Source- Closed Source

Page 12: User-centered open source

Pick a project

Page 13: User-centered open source

User-centered approaches

1. Passive (signal vs noise)2. Active (direct engagement)

Page 14: User-centered open source

14

Signal vs Noise

Page 15: User-centered open source

MIMOSE (Micro-und Multilevel Modelling Software) [53]

GAMA [28]

ABLE (Agent Building and Learning Environment) [2]

Jason (Jason:Interpreter for extension of AgentSpeak) [40]MAS-SOC (Multi-Agent Simulations for the SOCial Sciences) [51]

Brahms [11]

ECHO [22]

FLAME [25]

FLAME GPU [26]

Construct [13]

MOOSE(Multimodeling Object-Oriented Simulation Environment) [55]

Jade’s sim++

SimBioSys [68]

SimPack [69]

DeX [20]

LSD (Laboratory for Simulation Development)[45]iGen [31]

FLUXY [27]

MASS (Multi-Agent Simulation Suit) [50]Framsticks

SimPlusPlus [66]

Descartes[19]

A3 / AAA (Agent Anytime Anywhere) [1]

ADK (TryllianAgent Development Kit)[4]AOR Simulation[6]

Ascape [8]

BDI4Jade [9]

Cougaar[15]

CybelePro[17]

FAMOJA(Framework for Agent-based MOdelling with JAva) [24]

ICARO-T [32]

JABM [34]

JADE

JAS-mine [38]

JASA (Java Auction Simulator API) [39]

jES (Java Enterprise Simulator) [42]jEcho [43]

MASON [49]

Moduleco [54]

MASS (Multi-Agent Simulation Suit) [50]

Framsticks

SimPlusPlus [66]

Descartes[19]

A3 / AAA (Agent Anytime Anywhere) [1]

ADK (TryllianAgent Development Kit)[4]AOR Simulation[6]

Ascape [8]

BDI4Jade [9]

Cougaar[15]

CybelePro[17]

FAMOJA(Framework for Agent-based MOdelling with JAva) [24]

ICARO-T [32]

JABM [34]

JADE

JAS-mine [38]

JASA (Java Auction Simulator API) [39]

jES (Java Enterprise Simulator) [42]jEcho [43]

MASON [49]

Moduleco [54]

netLogo

JIAC [64]

Sugarscape [71]

VSEit [74]

Xholon [75]

D-OMAR(Distributed Operator Model Architecture) [21]

Repast

Janus [37]

EVE [23]

JCA-Sim [41]

Boris[12]

MaDKit (Multi Agent Development Kit)[46]

Swarm

AnyLogic

JESS [44]

Insight Maker [33]

AgentBuilder [5]

TerraME[72]

MacStarLogo

MAGSY [47]

MAML (Multi-Agent Modeling Language) [48]

AgentService [7]

OBEUS (Object Based Environment for Urban Simulation) [56]

OpenOME [58]

Behaviour Composer (Rich Internet Application building on NetLogo) [10]

NetLogo

Spatial Modeling Environment(SME) [70]

JAMEL (Java Agent-based MacroEconomic Laboratory) [35]

PS-I (Political Science-Identity)[60]

Altreva Adaptive Modeler [3]oRIS [59]

SimAgent (alsosim agent) [67]

DigiHive

Mesa [52]

DALI[18]

Insight Maker [33]AgentBuilder [5]TerraME[72]MacStarLogoMAGSY [47]MAML (Multi-Agent Modeling Language) [48]AgentService [7]OBEUS (Object Based Environment for Urban Simulation) [56]OpenOME [58]Behaviour Composer (Rich Internet Application building on NetLogo) [10]NetLogoSpatial Modeling Environment(SME) [70]JAMEL (Java Agent-based MacroEconomic Laboratory) [35]PS-I (Political Science-Identity)[60]

Altreva Adaptive Modeler [3]oRIS [59]SimAgent (alsosim agent) [67]DigiHiveMesa [52]DALI[18]BreveSeSAm (Shell for Simulated Agent Systems) (fully integrated graphical simulation environment) [63]Cormas(Common-pool Resources and Multi-Agent Systems) [14]

SDML (Strictly Declarative Modeling Language) [61]SoarStarLogoOpenStarLogoStarLogo TNGStarLogoT

SEAS (System Effectiveness Analysis Simulation) [62]GPU Agents [29]GROWlab [30]AgentSheetsVisualBots [73]ZEUS [76]

Page 16: User-centered open source

16

Twitter data…

Which library to use?bit.ly/T-API-Libs

Page 17: User-centered open source

17

Twitter bit.ly/T-API-Libs

Page 18: User-centered open source

1818

Github data…

Which library to use?bit.ly/G-API-Libs

Page 19: User-centered open source

19

Githubbit.ly/G-API-Libs

Page 20: User-centered open source

20

FEC API

EXAMPLE

Page 21: User-centered open source

21

Landing page“Getting started”Communication channelsDocumentation

Discoverable entry points...

Page 22: User-centered open source

22

Discoverable entry points...

API Landing: bit.ly/fec-apiDev: bit.ly/fec-ghChannels: bit.ly/fec-channels

Page 23: User-centered open source

23

Page 24: User-centered open source

24

The checklist- Landing page

- “Getting started”

- Install instructions

- Contribution guide

- Responses < 24hrs

- Clear git workflow

- Labeled branches

- License

- Project comms

- Project status

- Project ownership

- Regular commits

- Tests & build results

- “Other users”

- Open by default

Page 25: User-centered open source

25

bit.ly/OpenByDefault

Flexible usageCommunity InvolvementCost-savingsIncreased security

Page 26: User-centered open source

26

Githubbit.ly/G-API-Libs

EXAMPLE

Page 27: User-centered open source

27

Page 28: User-centered open source

28

Page 29: User-centered open source

29

github3.py

Page 30: User-centered open source

30

Build and maintain…

Communicate, commit, test, & build regularly

Page 31: User-centered open source

31

… or consciously commit to retirement.

Page 32: User-centered open source

32

Engage!

Page 33: User-centered open source

Don’t make assumptions…... back it up with data.

Page 34: User-centered open source

34

Mesa, agent-based modeling

EXAMPLE

Page 35: User-centered open source

35

(Re)inception

Page 36: User-centered open source

36

(Re)inception

Stakeholders

Page 37: User-centered open source

37

(Re)inception

Stakeholders

Users

Page 38: User-centered open source

38

(Re)inception

Stakeholders

Users

Goals

Page 39: User-centered open source

39

(Re)inception

Stakeholders

Users

Goals

Non-Goals

Page 40: User-centered open source

40

(Re)inception

Users

Page 41: User-centered open source

Software engineer

41

(Re)inception

Users

Page 42: User-centered open source

Software engineer

42

(Re)inception

College Professor

Users

Page 43: User-centered open source

Software engineer

43

(Re)inception

College Professor

Student

Users

Page 44: User-centered open source

Software engineer

44

(Re)inception

College Professor

StudentPrivate industry

researcher

Users

Page 45: User-centered open source

Software engineer

45

(Re)inception

College Professor

StudentPrivate industry

researcher

Data Scientist

Users

Page 46: User-centered open source

Create personas for users

College professorStudentPrivate industry researcherData ScientistSoftware engineer

Users

Page 47: User-centered open source

Create personas for users

College professorStudentPrivate industry researcherData ScientistSoftware engineer

Users

Page 48: User-centered open source

Where to find your users?

User groups (generic)

Open call outs (generic)

Conferences (generic)

Direct emails (specific)

SPRINTS!!!! (specific) Users

Page 49: User-centered open source

Where to find your users?

General survey with...“May we reach out to you?”

Users

Page 50: User-centered open source

User Interviews

User: College

Professor

Page 51: User-centered open source

Talk to your users.

User Interviews

User: College

Professor

Page 52: User-centered open source

Talk to your users.

Know what you want to capture.

User Interviews

User: College

Professor

Page 53: User-centered open source

Talk to your users.

Know what you want to capture.

Get your questions ready.

User Interviews

User: College

Professor

Page 54: User-centered open source

Talk to your users.

Know what you want to capture.

Get your questions ready.

Designate a note taker.

User Interviews

User: College

Professor

Page 55: User-centered open source

Talk to your users.

Know what you want to capture.

Get your questions ready.

Designate a note taker.

Use electronic tools.

User Interviews

User: College

Professor

Page 56: User-centered open source

Talk to your users.

Know what you want to capture.

Get your questions ready.

Designate a note taker.

Use electronic tools.

Verbatim and interpretations separate.

User Interviews

User: College

Professor

Page 57: User-centered open source

Talk to your users.

Know what you want to capture.

Get your questions ready.

Designate a note taker.

Use electronic tools.

Verbatim and interpretations separate.

Annotate along the way.

User Interviews

User: College

Professor

Page 58: User-centered open source

Talk to your users.

Know what you want to capture.

Get your questions ready.

Designate a note taker.

Use electronic tools.

Verbatim and interpretations separate.

Annotate along the way.

Don’t forget body language!

User Interviews

User: College

Professor

Page 59: User-centered open source

Talk to your users.

Know what you want to capture.

Get your questions ready.

Designate a note taker.

Use electronic tools.

Verbatim and interpretations separate.

Annotate along the way.

Don’t forget body language!

Consider privacy, from start.

User Interviews

User: College

Professor

Page 60: User-centered open source

Talk to your users.

Know what you want to capture.

Get your questions ready.

Designate a note taker.

Use electronic tools.

Verbatim and interpretations separate.

Annotate along the way.

Don’t forget body language!

Consider privacy, from start.

User Interviews

User: College

Professor

Page 61: User-centered open source

Journey Mapping

:-):-(

Page 62: User-centered open source

Journey Mapping

Identifies Mesa

:-):-(

Page 63: User-centered open source

Journey MappingTries to build a model.

:-):-(

Page 64: User-centered open source

Journey Mapping

BUILDS A MODEL!!

:-):-(

Page 65: User-centered open source

Journey MappingTries to build complex

custom model

:-):-(

Page 66: User-centered open source

Journey MappingContributes back to Mesa

to fix issues

:-):-(

Page 67: User-centered open source

Journey Mapping

:-):-(

Page 68: User-centered open source

Affinity Diagramming

Page 69: User-centered open source

How to I build a model?

Tutorial has bugs

Getting Started is

hard

Models need to be

tested

Unclear on how to build

plug-ins

What is core vs private?

Sample models

need more docs

Affinity Diagramming

Page 70: User-centered open source

How to I build a model?

Tutorial has bugs

Getting Started is

hard

Models need to be

tested

Unclear on how to build

plug-ins

What is core vs private?

Sample models

need more docs

Affinity Diagramming

Page 71: User-centered open source

Dot Voting

How to I build a model?

Tutorial has bugs

Getting Started is

hard

Models need to be

tested

Unclear on how to build

plug-ins

What is core vs private?

Sample models

need more docs

Page 72: User-centered open source

Dot Voting

How to I build a model?

Tutorial has bugs

Getting Started is

hard

Models need to be

tested

Unclear on how to build

plug-ins

What is core vs private?

Sample models

need more docs

Page 73: User-centered open source

Dot Voting

How to I build a model?

Tutorial has bugs

Getting Started is

hard

Models need to be

tested

Unclear on how to build

plug-ins

What is core vs private?

Sample models

need more docs

Page 74: User-centered open source

Dot Voting

How to I build a model?

Tutorial has bugs

Getting Started is

hard

Models need to be

tested

Unclear on how to build

plug-ins

What is core vs private?

Sample models

need more docs

Page 75: User-centered open source

Dot Voting

How to I build a model?

Tutorial has bugs

Getting Started is

hard

Models need to be

tested

Unclear on how to build

plug-ins

What is core vs private?

Sample models

need more docs

Page 76: User-centered open source

Dot Voting

How to I build a model?

Tutorial has bugs

Getting Started is

hard

Models need to be

tested

Unclear on how to build

plug-ins

What is core vs private?

Sample models

need more docs

Page 77: User-centered open source

Rapid Prototyping

Page 78: User-centered open source

Rapid Prototyping3 prototypes in 3 hours

- Create prototype (40 min)

- Test prototype (15 min)

- Take a break (5 min)

- repeat 3 times

Page 79: User-centered open source

Rapid PrototypingSTART

STOP

RESET

Page 80: User-centered open source

80

Rapid Prototyping

Page 81: User-centered open source

Test. Repeat.

Page 82: User-centered open source

If you do not have users, you are are doing it wrong.

Page 83: User-centered open source

More techniques…

http://bit.ly/18F-Methods

Page 84: User-centered open source

84

Urllib2

Page 85: User-centered open source

85

Requests

Page 86: User-centered open source

86

Your friend, Jackie