62
All rights reserved. Daniel Jackson, 2015 Onward, SPLASH · Pittsburgh · October 29, 2015 towards a theory of conceptual design for software Daniel Jackson · MIT

towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

All rights reserved. Daniel Jackson, 2015

Onward, SPLASH · Pittsburgh · October 29, 2015

towards a theory ofconceptual design for software

Daniel Jackson · MIT

Page 2: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

threesoftware design

problems

Page 3: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

#1email categories

Page 4: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

gmail’s categories

Page 5: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

category tab settings

Page 6: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

some reactions

Page 7: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

categories? labels?

Page 8: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

how google explains labels (!)

Page 9: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

what you can’t do

associate tabs with labelsfeature available only for categories

use tabs outside inboxtabs disappear when you filter on a label

Page 10: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

#2camera settings

Page 11: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

my camera fuji x100s

Page 12: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

image quality setting

Page 13: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

aspect ratio

Page 14: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

image size setting

Page 15: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

non-standard ratio + raw?

Page 16: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

what you can’t do

non-standard aspect ratio + raweven though raw images get nice nondestructive crop!

Page 17: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

#3fonts & styles

Page 18: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

what’s a font?

Page 19: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

what you can’t do

define a style that italicizesArno Regular to Arno Italic

Futura Book to Futura Book ObliqueMagma Light to Magma Light Italic

Page 20: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

what kind of problems are these?

manifestationsconstrained functionalityconfusion & complexity

coding errors?no, code seems to meet the spec

user interface design errors?no, interfaces are clear and faithful to function

Page 21: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

these are conceptual flaws

image size:a confusing concept

categories:a redundant concept

subfamily:a missing concept

Page 22: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

what’s anapp about?

Page 23: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

what characterizes an app?

Apple Mail Microsoft Word Twitter

EmailAddressMessage

Folder or Label

ParagraphFormat

Style

concepts!

TweetHashtag

Following

Photoshop

PixelMapLayer/MaskAdjustment

Page 24: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

concepts define classes

text editorline

buffer

paragraphformat

style

word processor

stylesheettext flow

page template

desktop publishing app

Page 25: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

where are Word’s concepts from?

Charles Simonyi: brought key concepts to Word from Xerox PARC

Page 26: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

rich concepts have long journeys

Bravo, 1974

Ginn & Co, since 1868

Microsoft Word, 1983

Apple Pages, 2005

Page 27: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

so whatexactly is

a concept?

Page 28: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

a timer

Page 29: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

a non-conceptual description

¬ON

¬ON

ON

¬ON

¬ON

ON

ON

ON

ticktoggle(day)toggle(night)

a precise semanticsbut no real meaning

Page 30: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

a conceptual explanation

using this timer, you can program a light to be on at certain times each day

if you put a slot in the schedule, thenwhen the time is in that current slot, the light will be on

the day’s divided into time slotsthere’s a set of slots called the schedule

and a current time slot

operational principle

each tab is a time slotthe current time is where the arrow points

purpose

data model

user interface

the concept!

Page 31: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

the operational principlea way to define & explain a concept

an archetypal scenarioseparates essential from accidental aspects

shows how purpose is fulfilledby combination of user & system actions

Michael Polanyi

“if you pull a tab out, then when that time slot comes around, the light will

go on”

Page 32: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

“if you change a style’s format, then all paragraphs of that style will change

format accordingly”“if you tag a photo, then all friends of the person tagged

will be able to see the photo”

“if you select some files and they belong to a folder with

keyboard focus, then pressing delete will move the files to the

trash”

“if you pull a tab out, then when that time slot comes around, the light will

go on”

Page 33: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

designingon purpose

Page 34: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

design is driven by purpose

motivates

fulfills?

contrivance

purpose

misfit✘

not a counterexample

Page 35: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

adhesive corners

magnetic paint

corkboard tiles

changeable wall display of prints

example: a photo wall

✔not strong

enough

motivates

fulfills?

damagesprints

Page 36: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

as implemented

Page 37: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

adhesive corners

magnetic paint

corkboard tiles

changeable wall display of prints

refining the purpose with misfits

motivates

fulfills?

strongenough

no damage

blockswifi

anticipatedmisfits

unanticipatedmisfits

Page 38: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

Such a list of requirements is potentially endless... But if we think of the requirements from a negative point of view, as potential misfits, there is a simple way of picking a finite set.

Page 39: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

application purpose

application

concepts driven by purposes too

mot

ivat

es

fulfi

lls?

concept conceptconcept

purpose purposepurposem

otiv

ates

fulfi

lls?

mot

ivat

es

fulfi

lls?

Page 40: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

create & format documents

microsoft word

example: microsoft word

paragraph stylesheetstylem

otiv

ates

provide structure

consistency within docs

mot

ivat

es

consistency across docs

mot

ivat

es

Page 41: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

purposes, principles & misfits

concept: trash

operational principle: if you delete a file, it moves to a special folder; you can restore from there, but emptying it removes contents for good

purpose: allow undo of deletions

misfit: if you delete a file on an external drive, you cannot reclaim the space until you empty the trash, but then you’ll lose the ability to restore files deleted from the main drive

misfit: if you delete an old file and change your mind, you may not be able to find it again in the trash (if there are many deleted files and you forgot the file’s name)

Page 42: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

the fundamental principlein a well-designed system

each concept is motivated by one purpose

Page 43: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

analyzingconcepts

Page 44: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

the ideal mapping

P1 C1

P2 C2

purposes concepts

Page 45: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

4 bad smells

P1 C1

P2

P1 C1

C2

P1 C1

C2

P1 C1

P2

unfulfilled purpose

unmotivated concept

overloaded concept

redundant concepts

Page 46: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

unfulfilled purposes

P1 C1

P2

user (Apple Mail, Gmail)‘identify parties to communication’

weak search, no authentication

slide hierarchy (Powerpoint)‘structure slides in a tree’

sections provide just one level

aspect ratio (Sony A7Rii, Canon 5D3)‘take square image’

can’t view in finder or save setting

binder (Preview, Acrobat)‘maintain composite PDF doc’

can insert pages, but forgets source

C2

Page 47: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

unfulfilled purpose Apple Mail

Page 48: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

P1 C1

C2

unmotivated concepts

buffer (emacs)no reason not to save to file

stash (Git)addresses branching misfits

staging area (Git)what’s it for?

boxing (Java)addresses primitives vs objects misfit

Page 49: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

P1 C1

C2

redundant concepts

rating stars (Lightroom)colors, flags, stars, oh my!

rules & searches (Apple Mail)two ways to specify set of messages

labels & categories (Gmail)two ways to classify messages

text object & text box (Acrobat 10) document text too: all different

permissions (AFS)coexist with Unix permissions

headline, title, caption (IPTC)original purposes lost

Page 50: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

redundant concepts apple mail

Page 51: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

P1 C1

P2

overloaded concepts

Nam Suhindependence

axiom

No one can serve two masters. Either you will hate the one and love the other,or you will be devoted to the one and despise the other. [Matthew 6:24]

Page 52: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

P1 C1

P2

overloaded concepts

conference reviewfeedback vs. selection

call forwardingfollow-me vs. delegate

contact (Apple address book)shortcut vs. format addressee

friends (Facebook)filter posts vs. limit access

signature (Acrobat 9)digital vs. physical

paper size (Epson printer driver)dimensions vs. source

Page 53: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

overloaded concepts epson driver

result: can’t create custom size for front loadingalso, page size presets in Lightroom hold feed setting

Page 54: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

casestudies

Page 55: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

gitless: a reworking of git

SantiagoPerez De Rosso

Page 56: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

results of a user study

18%

0%

9%

36%

73%

64%

64%

55%5% 9% 27% 18%

14% 27% 27% 9%

18% 27% 18% 18%

5% 36% 9% 27%

5%18%18%

14%9%

18%

5%9%9%

I would continue usingGitless if I could

I found Gitless to beeasier to use than Git

I found Gitless to beeasier to learn than Git

I enjoyed using Gitless

100 50 0 50 100Percentage

Strongly Disagree Disagree Disagree Somewhat Neutral Agree Somewhat Agree Strongly Agree

Git Gitless

12

34

56

78

Task

com

ple

tion tim

e (

min

ute

s)

Git Gitless

45

67

89

Task

com

ple

tion tim

e (

min

ute

s)

Git Gitless

46

810

12

Task

com

ple

tion tim

e (

min

ute

s)

Git Gitless

510

15

Task

com

ple

tion tim

e (

min

ute

s)

Git Gitless

510

15

20

Task

com

ple

tion tim

e (

min

ute

s)

Git Gitless

46

810

12

14

Task

com

ple

tion tim

e (

min

ute

s)

Page 57: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

small survey of MIT dropbox users

0%

20.0%

40.0%

60.0%

80.0%

good knowledge average knowledge poor knowledge

correctly predicting behavior

delete shared folder results in leavingdelete shared subfolder removes it

Kelly Zhang

Page 58: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

conclusions

Page 59: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

what else is in the paper?

stylesheet

style

paragraphformat

text

paragraph style

character style

concept

purpose

consistency

style

achieve consistent formatting of a set of elements

masterachieve consistent structure and format of composite elements

stenciluse archetypal objects for consistency and time saving

style bufferreformat another object like a previous one to save effort

presetallow setting of many properties at once

organizatio

n

folderorganize collection of items into a hierarchy

REST

organize collection of resources by simple path names

groupgroup items so they can be treated as a single item

layer

allow easy inclusion/exclusion of sets of items

stack

place items in stacking order for precedence

selectionapply action in aggregate to many items at once

label

add labels to items so they can be found later

alias

address one or more items with a shorthand name

filter

allow filtering of set of objects by their features

propertydescribe an object with properties that have values

metadatasort and search for items using associated data

navigation

historykeep past actions for audit, undo, visibility

buffer provide temporary storage area for quick modification

cursorprovide shortcut entry into traversable document

access

access tokencontrol access to a resource in an easy way

reservationallocate resources efficiently and prevent conflicts

OOBAauthenticate user with ‘out of bound’ channel unique to user

communication

messagecommunicate in discrete packets between endpoints

postingshare a short communication by broadcast

notificationlet a user know when something happens

community

friendmediate communications by preapproved relationships

cliquecreate subcommunity within larger community

invitationpredicate relationship on approval

accountcentralize user-specific information

karmaincentivize users to contribute to an online community

ratingcrowdsource evaluation of items

concept dependence graphs

concept idioms

Page 60: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

contributions

the idea of conceptsa new-old view of software design

talking about conceptspurpose, misfit, operational principle

analyzing conceptspurpose-concept mapping, esp. overloading

Page 61: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

a common view of software design

UI designsoft & human

about presentation

programminghard & technicalabout content

Page 62: towards a theory of conceptual design for softwarepeople.csail.mit.edu/dnj/talks/onward15/onward15-talk.pdf · towards a theory of conceptual design for software Daniel Jackson ·

a better view of software design

conceptual design:essential concepts

& behavior

representation design:organization & performance

Layer

Adjustment

Mask

PixelMap

Brush