rethinking software design
play

rethinking software design Daniel Jackson CSAIL MIT SATURN - PowerPoint PPT Presentation

rethinking software design Daniel Jackson CSAIL MIT SATURN Conference San Diego May 4, 2016 what is software design? designers & engineers designer engineer elements door, window, wall column, beam, truss comfortable,


  1. rethinking software design Daniel Jackson · CSAIL · MIT SATURN Conference · San Diego · May 4, 2016

  2. what is software design?

  3. designers & engineers designer engineer elements door, window, wall column, beam, truss comfortable, convenient, structural integrity, goals attractive durable, sustainable

  4. designers & engineers designer engineer ? elements function, object, type goals learnable, effective, tolerant maintainable, correct, fast

  5. the role of design criteria designer engineer ? elements function, object, type ? criteria decoupling & localization goals learnable, effective, tolerant maintainable, correct, fast

  6. OBSESSIVE DETAILS AHEAD

  7. That’s quite obsessive, isn’t it? Jonathan Ive in “Objectified” The details are not the details. These make the design. attributed to Charles Eames by Garrett

  8. survey of MIT dropbox users correctly predicting behavior 80.0% 60.0% 40.0% 20.0% 0% good knowledge average knowledge poor knowledge delete shared folder results in leaving delete shared subfolder removes it Kelly Zhang

  9. 3 software design problems

  10. #1 email categories

  11. gmail’s categories

  12. category tab settings

  13. some reactions

  14. categories? labels?

  15. how google explains labels (!)

  16. what you can’t do associate tabs with labels feature available only for categories use tabs outside inbox tabs disappear when you filter on a label

  17. #2 camera settings

  18. my camera fuji x100s

  19. image quality setting

  20. aspect ratio

  21. image size setting

  22. non-standard ratio + raw?

  23. what you can’t do non-standard aspect ratio + raw even though raw images get nice nondestructive crop!

  24. #3 fonts & styles

  25. what’s a font?

  26. what you can’t do define a style that italicizes Arno Regular to Arno Italic Futura Book to Futura Book Oblique Magma Light to Magma Light Italic

  27. what kind of problems are these? minor nitpicks? in all cases, can’t do useful things coding bugs? code seems to meet a coherent spec user interface flaws? interfaces are clear and faithful to function

  28. getting to the essence of an app

  29. what characterizes an app? concepts! Twitter Microsoft Word Photoshop Apple Mail Paragraph PixelMap EmailAddress Tweet Format Layer/Mask Message Hashtag Style Adjustment Folder or Label Following

  30. concepts define classes word processor desktop publishing app paragraph text editor stylesheet format line text flow style buffer page template

  31. where are Word’s concepts from? Charles Simonyi: brought key concepts to Word from Xerox PARC

  32. rich concepts have long journeys Ginn & Co, since 1868 Bravo, 1974 Apple Pages, 2005 Microsoft Word, 1983

  33. kinds of concept solve a hard design even these were analogical, problem invented or new given concepts instrumental concepts enabling concepts electoral vote hashtag relative reference reservation label public key social security number friend layer mask calendar event follower conference call

  34. how to sketch a concept

  35. how would you explain this?

  36. the operational principle a way to explain a concept an archetypal scenario separates essential from accidental aspects shows how purpose is fulfilled by combination of user & system actions “ if you pull a tab out, then when that time slot comes around, the light will go on” Michael Polanyi

  37. “ if you pull a tab out, then when that time slot comes around, the light will go on” “ 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”

  38. purposes, principles & misfits purpose : allow undo of deletions 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 (and makes space on disk) 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 concept : trash may not be able to find it again in the trash (if there are many deleted files and you forgot the file’s name)

  39. how to model a concept

  40. example word styles

  41. data model word styles sheet ! Stylesheet Document styles paras name ! Style StyleName ! style ? Paragraph rules basedOn overrides Rule operations add property value delete There is no problem modify ! ! in computer science update that cannot be solved Property Value apply by introducing another level of indirection. David Wheeler

  42. concept dependences ⟨ c,c’ ⟩ ∈ depends ⇔ ∀ a: apps · c ∈ concepts(a) ⇒ c’ ∈ concepts(a) Word stylesheet OpenOffice style Stickies TextEdit format paragraph emacs text

  43. how to reuse a concept

  44. other instantiations style Powerpoint schemes Indesign swatches

  45. non-instantiations style Apple color picker Write 2 text editor swatch-color mapping fixed no para-style mapping

  46. style generic concept base style Element Style rules value ! Rule Value property ! Property Style Element Stylesheet Style Style ? ? basedOn name styles next style Name Style Name add ons variants

  47. generic concept parts part example Style name purpose make it easy to maintain consistent format across set of elements sample uses Text formatting in word processors/layout apps (Word, Indesign, Pages, etc); rules in CSS; color themes in Powerpoint. model base, add-ons, variants operations add, delete, modify, apply, update related to StyleBuffer, Stencil, Master issues optional rules problem

  48. concept selection slides in messages in Apple Mail photos in Adobe Lightroom Keynote objects in OS X Finder notes in Evernote thumbnails in Preview

  49. subtlety selection scope subset of selection in scope subset of selection out of scope

  50. subtlety active element Adobe Lightroom: brightest thumbnail is the “active photo”

  51. subtlety continuous selection Photoshop: outline shown with Photoshop: selection shown in “marching ants” Quick Mask mode

  52. subtlety folder selection Google Drive: selecting folder = CrashPlan: selecting folder = selecting children selecting all future children

  53. concept selection members Workspace Element Workspace Selection current view active selection ! ? ? View Item Group Selection Element elements elements Element Element addons base Purposes: apply action in aggregate to many items at once

  54. concept catalog (so far) instantiate organize relate resource save communicate personalize stylesheet selection friend access token history message account master folder clique notification buffer posting karma stencil group invitation reservation cursor OOBA style buffer label REST sync rating cart export status layer stack subscription purchase order alias preset RMA cursor coupon catalog filter property metadata

  55. how to evaluate a concept

  56. the fundamental principle in a well-designed system each concept is motivated by one purpose

  57. the ideal mapping purposes concepts P1 C1 P2 C2

  58. 4 bad smells unfulfilled purpose overloaded concept P1 C1 P1 C1 P2 P2 unmotivated concept redundant concepts P1 C1 P1 C1 C2 C2

  59. unfulfilled purposes P1 C1 C2 P2 allow Adobe Indesign: typeface subfamily an unfulfilled purpose independent styling

  60. unfulfilled purposes (more) user (Apple Mail, Gmail) ‘identify parties to communication’ weak search, no authentication P1 C1 slide hierarchy (Powerpoint) ‘structure slides in a tree’ sections provide just one level C2 P2 eject-after-import (Lightroom) ‘prevent accidental writing’ feature removed (and reinstated!) binder (Preview, Acrobat) ‘maintain composite PDF doc’ can insert pages, but forgets source

  61. unmotivated concepts P1 C1 C2

  62. unmotivated concepts (more) buffer (text editors) Apple got rid of it stash (Git) addresses branching misfits P1 C1 boxing (Java) addresses primitives vs objects misfit C2 null (Javascript) when undefined is too vague

  63. redundant concepts P1 C1 C2 category in Gmail a redundant concept label classify messages category

  64. redundant concepts in acrobat text object, text box, document text (Acrobat) all subtly different (Acrobat 10) merged into one (Acrobat 11)

  65. overloaded concepts 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] P1 C1 P2 3 forms of overloading: piggybacking new purpose hacked onto old concept false convergence two purposes looked the same emergent purpose users found second purpose for concept

Recommend


More recommend