SlideShare une entreprise Scribd logo
1  sur  65
Télécharger pour lire hors ligne
Full Stack Tech, November 2017
Maintaining a great User Experience
In Open Source Software
Sameer Al-Sakran
Who am I?
Founder of the Metabase project 

(metabase.com | github.com/metabase/metabase)
Built Gitalytics.com
(people search + analytics for Github, Bitbucket, Jiira, etc)
Was CTO of Expa, Blackjet, etc etc
What is Metabase?
Metabase is free, easy, open source BI
• Designed for non-technical users
• Bring your own database (SQL or NoSQL)
• Installs in 5 minutes
• Gets smarter about your data with usage
• Provides an easy, non-intimidating experience for users and admins
Our users appreciate our focus on
their experience
Unbelievable that we haven't had something powerful
and simple like @metabase up until now. Even now
there isn't something else close to it.
@petmongrels
Very impressed by @metabase. Easy to setup and an
intuitive interface. The first BI tool I’ve encountered in
my life that I actually want to use.
@vikasgorur
@metabase I just found you and I frigging love you.
Love love love love love.
@davesuperman
But enough about me, let’s talk about
The Problem
UX in Open Source software
sucks
can be less than amazing
What is User Experience anyway?
How software feels for the end user.
What is User Experience?
The functionality of the app is “well organized”
What is User Experience?
It’s obvious what the user can do at any point
What is User Experience?
Surprises are pleasant. There are no traps.
What is User Experience?
The user doesn’t need to know extra information
What is User Experience?
But really a good user experience means
people want to use your application
Why should I care, Sameer?
… SAP made 22B euros last year with
this interface…
You should care because the world is changing
iPhones + faster buying cycles + more competition + end users
have more power in selecting tools.
Better End User experiences results in winners.
What’s the difference between Dropbox and every other storage
app?
Why should you personally care?
• Learn how to work with designers
• Making Open software with good UX is playing on #HardMode

Take the lessons back to work, commercial, and solo projects

• All the same lessons apply for API design and other more
classic“engineering” problems.
• Help make the Open Source that we all use better!
How do you create a wonderful User
Experience?
What most people think design looks like
1. Gather requirements
2. Code up a basic version
3. A designer “Cleans it up”
4. The manager’s | engineer’s vision is accomplished. 

They get the raise they deserve.
What designers actually do all day
1. Get told 25% of the context they need of the problem
2. Design a solution
3. Realize it’s not quite right. Go back to step random.choice([1,2])
4. Show the solution to engineers | product | designers.

They point out some huge hole. Go to step 1
5. Get it coded…
What designers actually do all day (continued)
6. Realize it doesn’t quite work, go back to 1
7. Show the solution to real users and realize it doesn’t quite work.
8. Go back to step random.choice ([1,2,5])
What designers actually do all day
• It’s work.
• Long thankless work, with a final payoff in beauty and flow.
• The kind of thing you typically need to get paid to do….
….. you thought you were done?
The fundamental tension of having a great UX is —
Your Users want you to break the reason they love you (great UX) by adding
more features…
“Can’t you just add a button for ….”
….. you thought you were done?
• UX decays as you add features
• It requires constant re-working to maintain a given level of quality.
• Additionally, this is similar to the API versioning problem — how do you
change interfaces people have gotten dependent on?
An example from Metabase
Example - Initial actions in the Metabase query builder
“We need a way to let people browse
related fields or tables.”
Example - Added reference
“We need a way to let people convert
GUI queries to SQL.”
Example - Added SQL
“People are asking for a way to add
alerts to questions…”
8 requests later…
(Please note we did not actually do this)
“We need a way to make sure this
doesn’t become utter madness”
Lets create a structure that lets us
add new things while keeping things predictable
Manage Share Item specific
Edit this ques+on
View revision history
Move
Archive
This extremely simple example demonstrates
what’s so frustrating about UX Design
The better the job you do,
the more obvious the result looks
But to answer the original question
• Spend lots of time evaluating different UIs before writing code
• Show them to your end users
• Think carefully about the consequences of each additional feature in
other parts of the application
• Plan on having a major re-working of the feature after letting users use it
• Schedule time for UX Refactoring, you’ll need it.
So why is it worse in Open Source
applications?
Well, sometimes it’s not that bad
• When the end user is a developer, you tend to get
reasonable UX.
• You can make the case that Rails, Mongo, etc were really all
about developer UX (eg an elegant API)
Reason 1: Drive-by Pull Requests
• Metabase annecdote — despite a fairly clear contributors guide,
we still get half-broken PRs that have broken UX or design, don’t
have tests, don’t pass our linters, etc.
• Limited ability to force people to re-work a PR
• A dedicated, team player that wants to help is a near
impossibility
Reason 2: Dirty Secret of Open Source
• Most projects are the result of 1-3 people.
• 78% of github repos have all commits contributed by 3 or fewer people
• 97% of github repos have 3 or fewer people contribute more than 50% of the
commits
And this is a drastic undercounting, as many commits are
small and/or minor documentation fixes.
Most people who are able to write good code and
chose to do it for free aren’t “normal”
1. They’re probably smarter than average

2. FAR more technical than average

3. FAR more immersed in the specific domain

Hint: More features != Better
As a result, the average* contributor is unable to understand 

what a normal human being would think is a “good” User Interface.
Reason 2.5: Talent
Very few people are good at
• Coding
• Visual Design
• UX Design
The odds of a random OSS contributor having all three of these
skills is ~0%
Why not get a designer to “fix your UI”?
• Good design is done at the beginning. It’s not just a matter of “fix
this” or “improve this”
• People who don’t know how to design things think it’s magic and/or
effortless + more about the tools (eg “oh, my friend knows how to
use photoshop too”)
• Good design takes time and has lots of missteps. There are a lot of
bodies on the path up to the summit. How do your contributors feel
about making a bunch of prototypes for a feature they “had
working” in a PR a month ago?
But really… why is it so much worse in
Open Source Applications?
Well… how do Open Source projects make
money?
Most Open Source Companies sell
• Support
• Training
• Adding Custom Features
• Services i.e. building custom systems
• Hosting
All of these get less compelling the
better your user experience becomes.
So… what can you do?
In general
• Accept that if you want to make something beautiful and
amazing it’s going to be hard work.
• You’ll get 1/3 of the features of the other projects. Pick which
features wisely.
• Make sure users see possible solutions and use their
responses to guide you to the right solution
• Support projects that get this right
As a solo developer
• Use your product outside of working on it.
• Create working end to end prototypes and get them in front
of your users earlier
• Listen to what they say — A Confused User is never stupid.
• Talk to your users, especially ones that are different from you
Working inside of a company
• Use your product outside of working on it.
• Hire a good designer. 

Side note: Product Designers, UX Designers and Visual designers
are all different. You’ll eventually want people good at each of
those.
• Help designers understand the costs of what they propose
• Remember that “clean” applications need to be clean for the end
user and not just the developer
As an Open Source Project
• Pull in designers
• Make simplicity, elegance and quality your goals
• Behave accordingly
• Review all Pull Requests from the user’s perspective
• Use the application
• Set up automated user surveys (via google forms, twitter,
etc)
• Promote a culture of continuous improvement that means
reworking “done” features
As a community
• Build and use standardized interfaces (aka the Bootstrap model)
• Support companies exposing their commercial quality work to
the open source world. Maybe chill out about Open Core and
License Wars
• Question the current monetization models (services + hosting
providers make 99% of the revenue in eg linux) results in UIs
that look + feel like backend software
• If you’ll pay for instance hours (Xen-as-a-Service) but not
software, then software will get worse
We’re Hiring!
Want to write Open Source Software full time?
metabase.com
metabase.com
Frontend - ReactJS + Redux
Data Visualization - D3
Backend - Clojure, Machine Learning, Compiler Theory, Data Science
Databases
We’re Hiring!

Contenu connexe

Tendances

A Masterclass on Data Warehouse Automation
A Masterclass on Data Warehouse Automation A Masterclass on Data Warehouse Automation
A Masterclass on Data Warehouse Automation Heath Turner
 
Infoventure presentation Elasticsearch meet up
Infoventure presentation Elasticsearch meet up Infoventure presentation Elasticsearch meet up
Infoventure presentation Elasticsearch meet up DianaGoebel
 
Five Best Practices for Approaching Workflow Solutions
Five Best Practices for Approaching Workflow SolutionsFive Best Practices for Approaching Workflow Solutions
Five Best Practices for Approaching Workflow SolutionsSPC Adriatics
 
Nintex presentation Building forms and Workflows
Nintex presentation Building forms and Workflows Nintex presentation Building forms and Workflows
Nintex presentation Building forms and Workflows Netwoven Inc.
 
SharePoint Inspired 'Get more from your data with Office 365'
SharePoint Inspired 'Get more from your data with Office 365'SharePoint Inspired 'Get more from your data with Office 365'
SharePoint Inspired 'Get more from your data with Office 365'Xylos
 
Integrating RDBMS with Big Data V3.0 now with SPARK!
Integrating RDBMS with Big Data V3.0 now with SPARK!Integrating RDBMS with Big Data V3.0 now with SPARK!
Integrating RDBMS with Big Data V3.0 now with SPARK!Pat Wright
 
Integrating Confluence and JIRA Service Desk for Knowledge Management - Anna ...
Integrating Confluence and JIRA Service Desk for Knowledge Management - Anna ...Integrating Confluence and JIRA Service Desk for Knowledge Management - Anna ...
Integrating Confluence and JIRA Service Desk for Knowledge Management - Anna ...Atlassian
 
Nintex platform demo & updates
Nintex platform demo & updates Nintex platform demo & updates
Nintex platform demo & updates Amos Wachanga
 
Beyond Data Discovery: The Value Unlocked by Modern Data Modeling
Beyond Data Discovery: The Value Unlocked by Modern Data ModelingBeyond Data Discovery: The Value Unlocked by Modern Data Modeling
Beyond Data Discovery: The Value Unlocked by Modern Data ModelingLooker
 
Continuous Integration As A Service
Continuous Integration As A ServiceContinuous Integration As A Service
Continuous Integration As A ServiceAlex Meadows
 
Anatomy of a Big Data Application (BDA)
Anatomy of a Big Data Application (BDA)Anatomy of a Big Data Application (BDA)
Anatomy of a Big Data Application (BDA)BloomReach
 
Frank Bien Opening Keynote - Join 2016
Frank Bien Opening Keynote - Join 2016Frank Bien Opening Keynote - Join 2016
Frank Bien Opening Keynote - Join 2016Looker
 
Deflect Tickets and Stop Interruptions For Your IT Teams - Michael Knight
Deflect Tickets and Stop Interruptions For Your IT Teams - Michael KnightDeflect Tickets and Stop Interruptions For Your IT Teams - Michael Knight
Deflect Tickets and Stop Interruptions For Your IT Teams - Michael KnightAtlassian
 
Powerful and Quick Workflow Automation Solutions with Nintex
Powerful and Quick Workflow Automation Solutions with NintexPowerful and Quick Workflow Automation Solutions with Nintex
Powerful and Quick Workflow Automation Solutions with NintexNetwoven Inc.
 
A Walk Around SQL Server Data Tools | SQL Saturday#392 by James McAuliffe
A Walk Around SQL Server Data Tools | SQL Saturday#392 by James McAuliffeA Walk Around SQL Server Data Tools | SQL Saturday#392 by James McAuliffe
A Walk Around SQL Server Data Tools | SQL Saturday#392 by James McAuliffeCCG
 
What we learned at PASS Summit in 2019
What we learned at PASS Summit in 2019What we learned at PASS Summit in 2019
What we learned at PASS Summit in 2019Red Gate Software
 
Data processing services
Data processing servicesData processing services
Data processing servicessourcPEP
 
SharePoint, Nintex and DocuSign - Putting it all together
SharePoint, Nintex and DocuSign - Putting it all together SharePoint, Nintex and DocuSign - Putting it all together
SharePoint, Nintex and DocuSign - Putting it all together Netwoven Inc.
 

Tendances (20)

A Masterclass on Data Warehouse Automation
A Masterclass on Data Warehouse Automation A Masterclass on Data Warehouse Automation
A Masterclass on Data Warehouse Automation
 
Infoventure presentation Elasticsearch meet up
Infoventure presentation Elasticsearch meet up Infoventure presentation Elasticsearch meet up
Infoventure presentation Elasticsearch meet up
 
Five Best Practices for Approaching Workflow Solutions
Five Best Practices for Approaching Workflow SolutionsFive Best Practices for Approaching Workflow Solutions
Five Best Practices for Approaching Workflow Solutions
 
Nintex presentation Building forms and Workflows
Nintex presentation Building forms and Workflows Nintex presentation Building forms and Workflows
Nintex presentation Building forms and Workflows
 
SharePoint Inspired 'Get more from your data with Office 365'
SharePoint Inspired 'Get more from your data with Office 365'SharePoint Inspired 'Get more from your data with Office 365'
SharePoint Inspired 'Get more from your data with Office 365'
 
Integrating RDBMS with Big Data V3.0 now with SPARK!
Integrating RDBMS with Big Data V3.0 now with SPARK!Integrating RDBMS with Big Data V3.0 now with SPARK!
Integrating RDBMS with Big Data V3.0 now with SPARK!
 
Integrating Confluence and JIRA Service Desk for Knowledge Management - Anna ...
Integrating Confluence and JIRA Service Desk for Knowledge Management - Anna ...Integrating Confluence and JIRA Service Desk for Knowledge Management - Anna ...
Integrating Confluence and JIRA Service Desk for Knowledge Management - Anna ...
 
Nintex platform demo & updates
Nintex platform demo & updates Nintex platform demo & updates
Nintex platform demo & updates
 
Beyond Data Discovery: The Value Unlocked by Modern Data Modeling
Beyond Data Discovery: The Value Unlocked by Modern Data ModelingBeyond Data Discovery: The Value Unlocked by Modern Data Modeling
Beyond Data Discovery: The Value Unlocked by Modern Data Modeling
 
Celoxis Brochure
Celoxis BrochureCeloxis Brochure
Celoxis Brochure
 
Chetan Karkhanis Profile
Chetan Karkhanis ProfileChetan Karkhanis Profile
Chetan Karkhanis Profile
 
Continuous Integration As A Service
Continuous Integration As A ServiceContinuous Integration As A Service
Continuous Integration As A Service
 
Anatomy of a Big Data Application (BDA)
Anatomy of a Big Data Application (BDA)Anatomy of a Big Data Application (BDA)
Anatomy of a Big Data Application (BDA)
 
Frank Bien Opening Keynote - Join 2016
Frank Bien Opening Keynote - Join 2016Frank Bien Opening Keynote - Join 2016
Frank Bien Opening Keynote - Join 2016
 
Deflect Tickets and Stop Interruptions For Your IT Teams - Michael Knight
Deflect Tickets and Stop Interruptions For Your IT Teams - Michael KnightDeflect Tickets and Stop Interruptions For Your IT Teams - Michael Knight
Deflect Tickets and Stop Interruptions For Your IT Teams - Michael Knight
 
Powerful and Quick Workflow Automation Solutions with Nintex
Powerful and Quick Workflow Automation Solutions with NintexPowerful and Quick Workflow Automation Solutions with Nintex
Powerful and Quick Workflow Automation Solutions with Nintex
 
A Walk Around SQL Server Data Tools | SQL Saturday#392 by James McAuliffe
A Walk Around SQL Server Data Tools | SQL Saturday#392 by James McAuliffeA Walk Around SQL Server Data Tools | SQL Saturday#392 by James McAuliffe
A Walk Around SQL Server Data Tools | SQL Saturday#392 by James McAuliffe
 
What we learned at PASS Summit in 2019
What we learned at PASS Summit in 2019What we learned at PASS Summit in 2019
What we learned at PASS Summit in 2019
 
Data processing services
Data processing servicesData processing services
Data processing services
 
SharePoint, Nintex and DocuSign - Putting it all together
SharePoint, Nintex and DocuSign - Putting it all together SharePoint, Nintex and DocuSign - Putting it all together
SharePoint, Nintex and DocuSign - Putting it all together
 

Similaire à Full stack conference talk slides

UX design for every screen
UX design for every screenUX design for every screen
UX design for every screenFour Kitchens
 
Flow: A living full-stack framework for the web
Flow: A living full-stack framework for the webFlow: A living full-stack framework for the web
Flow: A living full-stack framework for the websebastian sastre
 
Citizen Developer Tools are not just for Citizen Developers (session at Share...
Citizen Developer Tools are not just for Citizen Developers (session at Share...Citizen Developer Tools are not just for Citizen Developers (session at Share...
Citizen Developer Tools are not just for Citizen Developers (session at Share...Antti Koskela
 
05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&process05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&processSheSaysCREATIVE
 
Rapid Product Design in the Wild
Rapid Product Design in the WildRapid Product Design in the Wild
Rapid Product Design in the WildMichele Ide-Smith
 
Citizen Developer Tools - session at SPS New England 10/20/2018
Citizen Developer Tools - session at SPS New England 10/20/2018Citizen Developer Tools - session at SPS New England 10/20/2018
Citizen Developer Tools - session at SPS New England 10/20/2018Antti Koskela
 
User Experience Design: an Overview
User Experience Design: an OverviewUser Experience Design: an Overview
User Experience Design: an OverviewJulie Grundy
 
Using the Crowd to Understand and Adapt User Interfaces
Using the Crowd to Understand and Adapt User InterfacesUsing the Crowd to Understand and Adapt User Interfaces
Using the Crowd to Understand and Adapt User InterfacesJeffrey Nichols
 
Multi Platform User Exerience
Multi Platform User ExerienceMulti Platform User Exerience
Multi Platform User ExerienceTanya Zavialova
 
Citizen Developer Tools @ Valo Solutions / Blue Meteorite Monday session
Citizen Developer Tools @ Valo Solutions / Blue Meteorite Monday sessionCitizen Developer Tools @ Valo Solutions / Blue Meteorite Monday session
Citizen Developer Tools @ Valo Solutions / Blue Meteorite Monday sessionAntti Koskela
 
First users: Heuristics for designer/developer collaboration
First users: Heuristics for designer/developer collaborationFirst users: Heuristics for designer/developer collaboration
First users: Heuristics for designer/developer collaborationJonathan Abbett
 
Mat Velloso - Bots in the real world
Mat Velloso - Bots in the real worldMat Velloso - Bots in the real world
Mat Velloso - Bots in the real worldWeb à Québec
 
User Experience Design + Agile: The Good, The Bad, and the Ugly
User Experience Design + Agile: The Good, The Bad, and the UglyUser Experience Design + Agile: The Good, The Bad, and the Ugly
User Experience Design + Agile: The Good, The Bad, and the UglyJoshua Randall
 
IxDA Helsinki meet-up at Smartly.io, Thu, 25th August 2016
IxDA Helsinki meet-up at Smartly.io, Thu, 25th August 2016IxDA Helsinki meet-up at Smartly.io, Thu, 25th August 2016
IxDA Helsinki meet-up at Smartly.io, Thu, 25th August 2016Pekka Hartikainen
 
User Driven Software Architecture
User Driven Software ArchitectureUser Driven Software Architecture
User Driven Software ArchitectureSimon Guest
 
Gdsc IIIT Surat Orientation 2022.pdf
Gdsc IIIT Surat Orientation 2022.pdfGdsc IIIT Surat Orientation 2022.pdf
Gdsc IIIT Surat Orientation 2022.pdfSparshJhariya2
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022 Michael Yagudaev
 

Similaire à Full stack conference talk slides (20)

UX design for every screen
UX design for every screenUX design for every screen
UX design for every screen
 
Flow: A living full-stack framework for the web
Flow: A living full-stack framework for the webFlow: A living full-stack framework for the web
Flow: A living full-stack framework for the web
 
Citizen Developer Tools are not just for Citizen Developers (session at Share...
Citizen Developer Tools are not just for Citizen Developers (session at Share...Citizen Developer Tools are not just for Citizen Developers (session at Share...
Citizen Developer Tools are not just for Citizen Developers (session at Share...
 
05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&process05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&process
 
Rapid Product Design in the Wild
Rapid Product Design in the WildRapid Product Design in the Wild
Rapid Product Design in the Wild
 
Citizen Developer Tools - session at SPS New England 10/20/2018
Citizen Developer Tools - session at SPS New England 10/20/2018Citizen Developer Tools - session at SPS New England 10/20/2018
Citizen Developer Tools - session at SPS New England 10/20/2018
 
User Experience Design: an Overview
User Experience Design: an OverviewUser Experience Design: an Overview
User Experience Design: an Overview
 
Using the Crowd to Understand and Adapt User Interfaces
Using the Crowd to Understand and Adapt User InterfacesUsing the Crowd to Understand and Adapt User Interfaces
Using the Crowd to Understand and Adapt User Interfaces
 
Multi Platform User Exerience
Multi Platform User ExerienceMulti Platform User Exerience
Multi Platform User Exerience
 
Citizen Developer Tools @ Valo Solutions / Blue Meteorite Monday session
Citizen Developer Tools @ Valo Solutions / Blue Meteorite Monday sessionCitizen Developer Tools @ Valo Solutions / Blue Meteorite Monday session
Citizen Developer Tools @ Valo Solutions / Blue Meteorite Monday session
 
Ice dec05-04-wan leung
Ice dec05-04-wan leungIce dec05-04-wan leung
Ice dec05-04-wan leung
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
First users: Heuristics for designer/developer collaboration
First users: Heuristics for designer/developer collaborationFirst users: Heuristics for designer/developer collaboration
First users: Heuristics for designer/developer collaboration
 
Mat Velloso - Bots in the real world
Mat Velloso - Bots in the real worldMat Velloso - Bots in the real world
Mat Velloso - Bots in the real world
 
User Experience Design + Agile: The Good, The Bad, and the Ugly
User Experience Design + Agile: The Good, The Bad, and the UglyUser Experience Design + Agile: The Good, The Bad, and the Ugly
User Experience Design + Agile: The Good, The Bad, and the Ugly
 
IxDA Helsinki meet-up at Smartly.io, Thu, 25th August 2016
IxDA Helsinki meet-up at Smartly.io, Thu, 25th August 2016IxDA Helsinki meet-up at Smartly.io, Thu, 25th August 2016
IxDA Helsinki meet-up at Smartly.io, Thu, 25th August 2016
 
306 belmont ssp08agileit
306 belmont ssp08agileit306 belmont ssp08agileit
306 belmont ssp08agileit
 
User Driven Software Architecture
User Driven Software ArchitectureUser Driven Software Architecture
User Driven Software Architecture
 
Gdsc IIIT Surat Orientation 2022.pdf
Gdsc IIIT Surat Orientation 2022.pdfGdsc IIIT Surat Orientation 2022.pdf
Gdsc IIIT Surat Orientation 2022.pdf
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022
 

Dernier

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 

Dernier (20)

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 

Full stack conference talk slides

  • 1. Full Stack Tech, November 2017 Maintaining a great User Experience In Open Source Software Sameer Al-Sakran
  • 2. Who am I? Founder of the Metabase project 
 (metabase.com | github.com/metabase/metabase) Built Gitalytics.com (people search + analytics for Github, Bitbucket, Jiira, etc) Was CTO of Expa, Blackjet, etc etc
  • 4. Metabase is free, easy, open source BI • Designed for non-technical users • Bring your own database (SQL or NoSQL) • Installs in 5 minutes • Gets smarter about your data with usage • Provides an easy, non-intimidating experience for users and admins
  • 5.
  • 6. Our users appreciate our focus on their experience
  • 7. Unbelievable that we haven't had something powerful and simple like @metabase up until now. Even now there isn't something else close to it. @petmongrels
  • 8. Very impressed by @metabase. Easy to setup and an intuitive interface. The first BI tool I’ve encountered in my life that I actually want to use. @vikasgorur
  • 9. @metabase I just found you and I frigging love you. Love love love love love. @davesuperman
  • 10. But enough about me, let’s talk about The Problem
  • 11. UX in Open Source software sucks can be less than amazing
  • 12. What is User Experience anyway?
  • 13. How software feels for the end user. What is User Experience?
  • 14. The functionality of the app is “well organized” What is User Experience?
  • 15. It’s obvious what the user can do at any point What is User Experience?
  • 16. Surprises are pleasant. There are no traps. What is User Experience?
  • 17. The user doesn’t need to know extra information What is User Experience?
  • 18. But really a good user experience means people want to use your application
  • 19. Why should I care, Sameer?
  • 20. … SAP made 22B euros last year with this interface…
  • 21.
  • 22. You should care because the world is changing iPhones + faster buying cycles + more competition + end users have more power in selecting tools. Better End User experiences results in winners. What’s the difference between Dropbox and every other storage app?
  • 23. Why should you personally care? • Learn how to work with designers • Making Open software with good UX is playing on #HardMode
 Take the lessons back to work, commercial, and solo projects
 • All the same lessons apply for API design and other more classic“engineering” problems. • Help make the Open Source that we all use better!
  • 24. How do you create a wonderful User Experience?
  • 25. What most people think design looks like 1. Gather requirements 2. Code up a basic version 3. A designer “Cleans it up” 4. The manager’s | engineer’s vision is accomplished. 
 They get the raise they deserve.
  • 26. What designers actually do all day 1. Get told 25% of the context they need of the problem 2. Design a solution 3. Realize it’s not quite right. Go back to step random.choice([1,2]) 4. Show the solution to engineers | product | designers.
 They point out some huge hole. Go to step 1 5. Get it coded…
  • 27. What designers actually do all day (continued) 6. Realize it doesn’t quite work, go back to 1 7. Show the solution to real users and realize it doesn’t quite work. 8. Go back to step random.choice ([1,2,5])
  • 28. What designers actually do all day • It’s work. • Long thankless work, with a final payoff in beauty and flow. • The kind of thing you typically need to get paid to do….
  • 29. ….. you thought you were done? The fundamental tension of having a great UX is — Your Users want you to break the reason they love you (great UX) by adding more features… “Can’t you just add a button for ….”
  • 30. ….. you thought you were done? • UX decays as you add features • It requires constant re-working to maintain a given level of quality. • Additionally, this is similar to the API versioning problem — how do you change interfaces people have gotten dependent on?
  • 31. An example from Metabase
  • 32. Example - Initial actions in the Metabase query builder
  • 33. “We need a way to let people browse related fields or tables.”
  • 34. Example - Added reference
  • 35. “We need a way to let people convert GUI queries to SQL.”
  • 37. “People are asking for a way to add alerts to questions…”
  • 39. (Please note we did not actually do this)
  • 40. “We need a way to make sure this doesn’t become utter madness”
  • 41. Lets create a structure that lets us add new things while keeping things predictable
  • 42. Manage Share Item specific
  • 43. Edit this ques+on View revision history Move Archive
  • 44. This extremely simple example demonstrates what’s so frustrating about UX Design
  • 45. The better the job you do, the more obvious the result looks
  • 46. But to answer the original question • Spend lots of time evaluating different UIs before writing code • Show them to your end users • Think carefully about the consequences of each additional feature in other parts of the application • Plan on having a major re-working of the feature after letting users use it • Schedule time for UX Refactoring, you’ll need it.
  • 47. So why is it worse in Open Source applications?
  • 48. Well, sometimes it’s not that bad • When the end user is a developer, you tend to get reasonable UX. • You can make the case that Rails, Mongo, etc were really all about developer UX (eg an elegant API)
  • 49. Reason 1: Drive-by Pull Requests • Metabase annecdote — despite a fairly clear contributors guide, we still get half-broken PRs that have broken UX or design, don’t have tests, don’t pass our linters, etc. • Limited ability to force people to re-work a PR • A dedicated, team player that wants to help is a near impossibility
  • 50. Reason 2: Dirty Secret of Open Source • Most projects are the result of 1-3 people. • 78% of github repos have all commits contributed by 3 or fewer people • 97% of github repos have 3 or fewer people contribute more than 50% of the commits And this is a drastic undercounting, as many commits are small and/or minor documentation fixes.
  • 51. Most people who are able to write good code and chose to do it for free aren’t “normal” 1. They’re probably smarter than average
 2. FAR more technical than average
 3. FAR more immersed in the specific domain
 Hint: More features != Better As a result, the average* contributor is unable to understand 
 what a normal human being would think is a “good” User Interface.
  • 52. Reason 2.5: Talent Very few people are good at • Coding • Visual Design • UX Design The odds of a random OSS contributor having all three of these skills is ~0%
  • 53. Why not get a designer to “fix your UI”? • Good design is done at the beginning. It’s not just a matter of “fix this” or “improve this” • People who don’t know how to design things think it’s magic and/or effortless + more about the tools (eg “oh, my friend knows how to use photoshop too”) • Good design takes time and has lots of missteps. There are a lot of bodies on the path up to the summit. How do your contributors feel about making a bunch of prototypes for a feature they “had working” in a PR a month ago?
  • 54. But really… why is it so much worse in Open Source Applications?
  • 55. Well… how do Open Source projects make money?
  • 56. Most Open Source Companies sell • Support • Training • Adding Custom Features • Services i.e. building custom systems • Hosting
  • 57. All of these get less compelling the better your user experience becomes.
  • 58. So… what can you do?
  • 59. In general • Accept that if you want to make something beautiful and amazing it’s going to be hard work. • You’ll get 1/3 of the features of the other projects. Pick which features wisely. • Make sure users see possible solutions and use their responses to guide you to the right solution • Support projects that get this right
  • 60. As a solo developer • Use your product outside of working on it. • Create working end to end prototypes and get them in front of your users earlier • Listen to what they say — A Confused User is never stupid. • Talk to your users, especially ones that are different from you
  • 61. Working inside of a company • Use your product outside of working on it. • Hire a good designer. 
 Side note: Product Designers, UX Designers and Visual designers are all different. You’ll eventually want people good at each of those. • Help designers understand the costs of what they propose • Remember that “clean” applications need to be clean for the end user and not just the developer
  • 62. As an Open Source Project • Pull in designers • Make simplicity, elegance and quality your goals • Behave accordingly • Review all Pull Requests from the user’s perspective • Use the application • Set up automated user surveys (via google forms, twitter, etc) • Promote a culture of continuous improvement that means reworking “done” features
  • 63. As a community • Build and use standardized interfaces (aka the Bootstrap model) • Support companies exposing their commercial quality work to the open source world. Maybe chill out about Open Core and License Wars • Question the current monetization models (services + hosting providers make 99% of the revenue in eg linux) results in UIs that look + feel like backend software • If you’ll pay for instance hours (Xen-as-a-Service) but not software, then software will get worse
  • 64. We’re Hiring! Want to write Open Source Software full time? metabase.com
  • 65. metabase.com Frontend - ReactJS + Redux Data Visualization - D3 Backend - Clojure, Machine Learning, Compiler Theory, Data Science Databases We’re Hiring!