User-centered open source
-
Upload
jackie-kazil -
Category
Software
-
view
113 -
download
0
Transcript of User-centered open source
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