User-centered open source

Preview:

Citation preview

User-centeredOpen Source

By Jackie Kazil

For PyCon Russia, July 4, 2016

2

About me… @jackiekazil

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

4

5

What is user-centered design?

beta.eiti.org

8

Urllib2

EXAMPLE

9

Requests

10

“HTTP for Humans”Not for Humans?

Urllib2 vs Requests

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

Pick a project

User-centered approaches

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

14

Signal vs Noise

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]

16

Twitter data…

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

17

Twitter bit.ly/T-API-Libs

1818

Github data…

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

19

Githubbit.ly/G-API-Libs

20

FEC API

EXAMPLE

21

Landing page“Getting started”Communication channelsDocumentation

Discoverable entry points...

22

Discoverable entry points...

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

23

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

25

bit.ly/OpenByDefault

Flexible usageCommunity InvolvementCost-savingsIncreased security

26

Githubbit.ly/G-API-Libs

EXAMPLE

27

28

29

github3.py

30

Build and maintain…

Communicate, commit, test, & build regularly

31

… or consciously commit to retirement.

32

Engage!

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

34

Mesa, agent-based modeling

EXAMPLE

35

(Re)inception

36

(Re)inception

Stakeholders

37

(Re)inception

Stakeholders

Users

38

(Re)inception

Stakeholders

Users

Goals

39

(Re)inception

Stakeholders

Users

Goals

Non-Goals

40

(Re)inception

Users

Software engineer

41

(Re)inception

Users

Software engineer

42

(Re)inception

College Professor

Users

Software engineer

43

(Re)inception

College Professor

Student

Users

Software engineer

44

(Re)inception

College Professor

StudentPrivate industry

researcher

Users

Software engineer

45

(Re)inception

College Professor

StudentPrivate industry

researcher

Data Scientist

Users

Create personas for users

College professorStudentPrivate industry researcherData ScientistSoftware engineer

Users

Create personas for users

College professorStudentPrivate industry researcherData ScientistSoftware engineer

Users

Where to find your users?

User groups (generic)

Open call outs (generic)

Conferences (generic)

Direct emails (specific)

SPRINTS!!!! (specific) Users

Where to find your users?

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

Users

User Interviews

User: College

Professor

Talk to your users.

User Interviews

User: College

Professor

Talk to your users.

Know what you want to capture.

User Interviews

User: College

Professor

Talk to your users.

Know what you want to capture.

Get your questions ready.

User Interviews

User: College

Professor

Talk to your users.

Know what you want to capture.

Get your questions ready.

Designate a note taker.

User Interviews

User: College

Professor

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

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

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

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

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

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

Journey Mapping

:-):-(

Journey Mapping

Identifies Mesa

:-):-(

Journey MappingTries to build a model.

:-):-(

Journey Mapping

BUILDS A MODEL!!

:-):-(

Journey MappingTries to build complex

custom model

:-):-(

Journey MappingContributes back to Mesa

to fix issues

:-):-(

Journey Mapping

:-):-(

Affinity Diagramming

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

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

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

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

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

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

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

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

Rapid Prototyping

Rapid Prototyping3 prototypes in 3 hours

- Create prototype (40 min)

- Test prototype (15 min)

- Take a break (5 min)

- repeat 3 times

Rapid PrototypingSTART

STOP

RESET

80

Rapid Prototyping

Test. Repeat.

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

More techniques…

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

84

Urllib2

85

Requests

86

Your friend, Jackie

Recommended