< Return to Video

Decent Patterns

  • 0:29 - 0:30
    *Camp CCC 2023*
    *Preroll music*
  • 0:30 - 0:35
    Herald: Eileen is presenting to us decent
    patents on UX library for
  • 0:35 - 0:38
    decentralization. welcome.
    Eileen Wagner: Thank you so
  • 0:38 - 0:42
    much!
    *Applause*
  • 0:42 - 0:44
    [Filler, please remove in amara]
    EW: After that last lightning talk I feel
  • 0:44 - 0:47
    like I'm being very greedy with 20
    minutes but maybe we'll just have more
  • 0:47 - 0:53
    time for questions. So I'm here to talk
    about decent patterns in open UX library
  • 0:53 - 0:58
    for decentralization, this is a project
    that I guess I started a few years ago
  • 0:58 - 1:03
    with a small team of co-conspirators,
    some of whom are all in at this Camp
  • 1:03 - 1:07
    actually so you can meet us too and talk
    more about this. I'm hoping this talk
  • 1:07 - 1:12
    would be interesting to those of you who
    are building decentralized Technologies,
  • 1:12 - 1:15
    but of course also people who are
    generally just knowledge workers right.
  • 1:15 - 1:20
    Like if you have done a library in your
    life maybe you'll run into some similar
  • 1:20 - 1:25
    questions that I'm going to raise today.
    Similarly I think it's an interesting
  • 1:25 - 1:30
    answer to the question what can designers
    contribute an open source. This is
  • 1:30 - 1:34
    something that I've been thinking about
    for a long time, so I think maybe maybe
  • 1:34 - 1:41
    there's some answers here. But why?Why
    build one in the first place? So I'm a
  • 1:41 - 1:47
    designer, I work in decentralization
    Technologies around that and whenever I
  • 1:47 - 1:52
    work with people, you know you you know
    how it is, you go into a small team you
  • 1:52 - 1:55
    work with them intensely for a few months
    and then you go to another team and you
  • 1:55 - 1:59
    go to an organization and then maybe you
    get a chance to talk to another designer,
  • 1:59 - 2:03
    but basically you're kind of alone. And
    but as I was working alone with all of
  • 2:03 - 2:07
    these groups there were just some
    recurring questions that everybody had
  • 2:07 - 2:11
    right? How to permanently delete content?
    This is a very very common question if
  • 2:11 - 2:15
    you're working P2P. How to store
    encryption keys, where to store them if
  • 2:15 - 2:18
    you have multiple devices and you have no
    Central Authority? How to ensure a
  • 2:18 - 2:22
    critical number of peers being online
    right, that's so that the content can be
  • 2:22 - 2:27
    replicated. How do you communicate the
    unusual privacy and security properties
  • 2:27 - 2:32
    of your new technologies? How do you
    explain a Federated architecture, I think
  • 2:32 - 2:36
    we saw a lot of that with the migration
    to Mastadon of how to do it and how not
  • 2:36 - 2:41
    to do it. And then finally overall like
    very abstract questions, like how do you
  • 2:41 - 2:45
    even distribute trust and power, right?
    Like what is the right way to do it? And
  • 2:45 - 2:50
    I see all of these teams struggling with
    that and as I was working on it, I was
  • 2:50 - 2:56
    like surely someone thought about this.
    You know surely someone has come up with
  • 2:56 - 3:04
    a general solution to these very general
    problems. And I was no! I was sitting
  • 3:04 - 3:10
    there I was nope, nobody has really
    written like bigger pieces of like
  • 3:10 - 3:15
    solutions to these problems and, more
    than that, it wasn't just that I couldn't
  • 3:15 - 3:20
    find those resources that I needed for my
    work. But it was also somewhat of a a
  • 3:20 - 3:24
    general adoption problem, something well
    UX problems that caused adoption
  • 3:24 - 3:29
    problems. And by that I mean most of us
    who are building these Technologies
  • 3:29 - 3:36
    decentralized or not. We're seeing that
    as a vehicle to drive or at least support
  • 3:36 - 3:40
    sociopolitical change. And for
    sociopolitical change to happen you
  • 3:40 - 3:43
    really have to have a critical mass of
    people using it right? It doesn't mean it
  • 3:43 - 3:49
    has to be the whole world, but it means a
    critical mass of users need to be using
  • 3:49 - 3:55
    this tool. And adoption also is actually
    very well understood, like products and
  • 3:55 - 4:01
    services get adopted you know by some
    very common, you know, systems. Like
  • 4:01 - 4:05
    people are infused about it and then some
    people are Visionaries, they see it and
  • 4:05 - 4:10
    then finally the pragmatists the
    conservatives and the Skeptics follow.
  • 4:10 - 4:15
    But you know that curve is very well
    understood. And as I was working with the
  • 4:15 - 4:19
    folks, I realize that we really never
    move much further beyond the first group
  • 4:19 - 4:23
    of people right? The people who want to
    try out everything, who want to show you
  • 4:23 - 4:27
    a proof of concept and who are really
    excited about it. But there was very
  • 4:27 - 4:32
    little movement forward. And in my view
    one of the reasons for that is when you
  • 4:32 - 4:37
    have new technologies like this you don't
    have a lot of you don't have a common
  • 4:37 - 4:43
    framework you can build into. When you
    have new Concepts and everybody names it
  • 4:43 - 4:47
    differently right, every user new user
    who has to learn this has to learn a
  • 4:47 - 4:53
    completely new framework, this is super
    hard. So in my view when I was thinking
  • 4:53 - 4:58
    about adoption, I was really thinking
    about something like design standards,
  • 4:58 - 5:03
    like what would a good standard be as you
    are building this new technology. And by
  • 5:03 - 5:10
    standards I don't mean sort of generic
    guidelines like always give people good
  • 5:10 - 5:13
    error messages, when you build a tool,
    right? Like not like generic things like
  • 5:13 - 5:19
    that, but also not super specific things
    like Apple's mobile interface guidelines
  • 5:19 - 5:22
    or anything like that. Like something
    somewhere in the middle. What was that
  • 5:22 - 5:28
    middle right? And then I realized
    actually that middle is also very well
  • 5:28 - 5:30
    understood. This this is what I had to do
  • 5:30 - 5:34
    to sign up for this talk. You know you
    you go to this website, either you have
  • 5:34 - 5:39
    an account already, then you log in, or
    you don't have an account and you need
  • 5:39 - 5:44
    one, then you register. I see another
    pattern there, reset password right, you
  • 5:44 - 5:47
    lost your password you reset the password
    . There is a language switch I don't know
  • 5:47 - 5:51
    if you can see it on the top right. On
    the bottom you have like the the legal
  • 5:51 - 5:57
    bits right, like all of this is something
    that's familiar to us just as users on
  • 5:57 - 6:01
    the internet. Like it's something we see
    day in and day out, we're trained to sort
  • 6:01 - 6:07
    of understand how that user experience is
    supposed to be. And in in that way we're
  • 6:07 - 6:12
    sort of learning a language. Learning a
    language of how to interact with these
  • 6:12 - 6:19
    Technologies. And this idea of having a
    language is also not new. This is a book
  • 6:19 - 6:25
    by Christopher Alexander 1979 a Timeless
    way of building. It really details this
  • 6:25 - 6:30
    idea of how you can see different
    patterns in the World. Christopher
  • 6:30 - 6:34
    Alexander Was An Architect, he was
    meticulously documenting different ways
  • 6:34 - 6:40
    of looking at sort of buildings, Urban
    infrastructure, small room like window
  • 6:40 - 6:47
    placement and he defined this idea of a
    pattern as a careful description of a
  • 6:47 - 6:51
    perennial solution to a recurring
    problem. So again buildings right? People
  • 6:51 - 6:55
    have lived in buildings for thousands of
    years, you don't need to reinvent the
  • 6:55 - 6:59
    wheel when you're doing a new building,
    you just look at existing buildings. And
  • 6:59 - 7:03
    this is what he was was doing, as he was
    sort of collecting these patterns and
  • 7:03 - 7:07
    this is just one example for sort of
    urban planning. Like these are the the
  • 7:07 - 7:12
    typical ways of how you can put buildings
    together, right? Like a very simple idea.
  • 7:12 - 7:16
    He's just going around collecting
    different ways of putting buildings
  • 7:16 - 7:21
    together. So what I and the small team
    I'm working with wanted to do, was to
  • 7:21 - 7:27
    just sort of collect these things and see
    how we are putting our language together,
  • 7:27 - 7:31
    how we could put our language together.
    And with that I just want to show you
  • 7:31 - 7:37
    really the thing that we built. This is
    decent patterns.com, it's a pattern
  • 7:37 - 7:43
    Library meaning that we have, you know ,
    different categories and different
  • 7:43 - 7:48
    patterns, sort of explained to a general
    audience. The first thing we had to come
  • 7:48 - 7:52
    up with, was a template for a pattern. So
    I'm just going to show you really, this
  • 7:52 - 7:56
    is a pattern we called host roulette, of
    course the name is the most important
  • 7:56 - 7:59
    thing, because that is the thing that
    explains it, and people can refer to it.
  • 8:00 - 8:06
    So host roulette is addressing a design
    problem. The design problem is when you
  • 8:06 - 8:12
    are signing people onto a Federated
    system, you want to give people default
  • 8:12 - 8:16
    options, that's just good UX. But if you
    give everybody the same default option,
  • 8:16 - 8:20
    it's not much of a Federated system
    anymore, right? So host roulette very
  • 8:20 - 8:26
    simple solution, you randomize it. You're
    putting the host on a roulette get I
  • 8:26 - 8:31
    don't know. So basically what you're
    doing is is you're randomizing the sign
  • 8:31 - 8:38
    up process and you can achieve better
    distribution of your users, and then we
  • 8:38 - 8:43
    so, we describe the solution and then
    give an example of who's already doing
  • 8:43 - 8:48
    this. In this case this is nextcloud. And
    then we again this is a short one but why
  • 8:48 - 8:53
    choose host roulette right? Like
    understanding what contexts, what reasons
  • 8:53 - 8:59
    you would have to actually act ually use
    such a pattern. Then we have best
  • 8:59 - 9:03
    practice, these are just tips from the
    actual practice of implementing these
  • 9:03 - 9:10
    patterns, small discussion potential
    problems with a pattern, a takeaway and
  • 9:10 - 9:13
    then some references, where you can learn
    more. So this is the general template,
  • 9:13 - 9:19
    that we have for a pattern and
    importantly here I think, we also have
  • 9:19 - 9:24
    the option for you to just edit it on
    GitHub, so you can always just you know
  • 9:24 - 9:31
    join the actual GitHub and see what's you
    know what what you might want to change,
  • 9:31 - 9:35
    what's inaccurate what you might want to
    add. The other thing that we did, which I
  • 9:35 - 9:44
    think is also part of running a knowledge
    base, is we did name categories, we
  • 9:44 - 9:49
    basically identified even more kind of
    overall topics, that are interesting here
  • 9:49 - 9:54
    in decentralization, we think. Those are
    sort of around roughly four different
  • 9:54 - 10:00
    categories, where it's different from
    centralized paradigms and that's identity
  • 10:00 - 10:06
    and agency, moderation and curation,
    sharing and permissions and syn and
  • 10:06 - 10:11
    status. I'm not going to go into detail
    on you know, why they're important but I
  • 10:11 - 10:14
    think for any of you who have worked in
    decentralization hopefully those
  • 10:14 - 10:21
    categories ring true. Yeah I think this
    is just my very quick demo of the
  • 10:21 - 10:25
    library. You can play around in it
    there's also you can just look at all the
  • 10:25 - 10:31
    patterns, if you want to see them all.
    Again the most important part here may be
  • 10:31 - 10:35
    the naming of it, and then the other
    things just sort of come themselves.
  • 10:35 - 10:43
    You'll see that there many, there are
    very different levels of kind of yeah
  • 10:44 - 10:48
    generality here. Like some some of them
    are very specific, like a visual idea but
  • 10:48 - 10:52
    some of them are I don't know I'm looking
    at cautious optimism, that is an idea of
  • 10:52 - 10:56
    how to even build a protocol, like how to
    think about trust in a protocol, things
  • 10:56 - 11:00
    like that. So we really have sort of like
    very large ideas IDE and very small
  • 11:00 - 11:07
    ideas, all collected in this one pattern
    Library. Next I want to talk a little bit
  • 11:07 - 11:13
    about like okay, so what have we learned
    in doing this. I think one thing that was
  • 11:13 - 11:17
    really interesting for me to see, is when
    we first started it we were very happy
  • 11:17 - 11:23
    about putting QR code verification in it,
    it was a very immediate way for devices
  • 11:23 - 11:26
    to connect and to verify it, had great
    security properties it had, it was just
  • 11:26 - 11:31
    very immediate. And then the pandemic
    happened and QR codes were everywhere
  • 11:31 - 11:36
    right? Every like all the different apps
    that you had like introduced QR codes, it
  • 11:36 - 11:40
    just really sort of accelerated that
    development. And then you see things like
  • 11:40 - 11:45
    this I don't know if the video is going
    to be very much visible, but this person
  • 11:45 - 11:53
    is in Atlanta and is just peeling off the
    QR code from a parking ticket provider, I
  • 11:53 - 11:58
    suppose, and that's that's what happens
    right? Like once you have an idea, that
  • 11:58 - 12:01
    is out there in the world and people
    learn to use it, like it's actually first
  • 12:01 - 12:07
    of all, what a success story for QR
    codes, but also here are the caveats here
  • 12:07 - 12:13
    are the consequences, that come with
    that. So how do we make sure that the
  • 12:13 - 12:17
    patterns we do have, you know, I mean I'm
    not saying we have to see though so far
  • 12:17 - 12:22
    into the future, but what kind of
    critical discussion, what kind of context
  • 12:22 - 12:26
    can we actually provide people with who
    are using this in their actual
  • 12:26 - 12:31
    development. The other thing we sort of
    ran into is, a question around
  • 12:31 - 12:37
    descriptive versus prescriptive ways of
    presenting the patterns, and by that I
  • 12:37 - 12:41
    just mean descriptive as a you know it's
    a description or just showing you the
  • 12:41 - 12:46
    actual patterns, prescriptive is there is
    some recommendation coming with it right.
  • 12:46 - 12:50
    So in a descriptive sense we have
    collecting existing Solutions and
  • 12:50 - 12:55
    relating them to one another, so the work
    that you do there is mostly just finding
  • 12:55 - 12:58
    the right level of abstraction and making
    sure that the patterns you have in a
  • 12:58 - 13:03
    library are are described correctly. And
    you're to inspire you're there to inspire
  • 13:03 - 13:08
    people you're not not more. In a
    prescriptive world we have a library that
  • 13:08 - 13:13
    perhaps creates new solutions to these
    problems, so you really are generating
  • 13:13 - 13:19
    new content. Maybe you're testing an d
    validating them with you know real users
  • 13:19 - 13:23
    in the real world and you're making sure
    that whatever you build is actually going
  • 13:23 - 13:29
    to work and not just uh hypothetical. In
    that case then the library is to guide
  • 13:29 - 13:34
    people, to really offer some guidance and
    recommendations. So we're still sort of
  • 13:34 - 13:37
    unclear about that right now, it's a
    collection and we do think most of the
  • 13:37 - 13:41
    patterns we have are good, but that's
    just our opinion right and we know as
  • 13:41 - 13:45
    designers that a lot of the things we
    design aren't necessarily good until we
  • 13:45 - 13:53
    test them. So that's it from me. You can
    check out decent patterns.com, we
  • 13:53 - 13:58
    obviously welcome contributions and also
    shout out to the team raised there, we
  • 13:58 - 14:03
    have Vincent and KN also and if you're
    interested in pattern libraries in
  • 14:03 - 14:06
    general, you should also check out I mean
    they're General libraries that you can
  • 14:06 - 14:11
    just go to that have UX patterns, if
    you're a designer and trying to learn how
  • 14:11 - 14:15
    to design. But there's also particular
    libraries I really would recommend for
  • 14:15 - 14:20
    privacy security, for social media,
    there's one about digital public spaces
  • 14:20 - 14:24
    being made right now. Of course there's
    also anti patterns you should think
  • 14:24 - 14:28
    about, patterns that are deceptive. Those
    are all great libraries that you should
  • 14:28 - 14:33
    check out just if you're into patterns in
    general. And that said I would love to
  • 14:33 - 14:41
    answer your questions, thank you.
    [Filler, please remove in amara]
  • 14:41 - 14:41
    *Ovations, WOWs*
    [Filler, please remove in amara]
  • 14:41 - 14:46
    Angel: Okay, thank you Eileen, Applause
    are fine but I thought maybe we uh take
  • 14:46 - 14:51
    the time for questions, we have time for
    two because we're a bit behind schedule.
  • 14:51 - 14:59
    What are your questions to Eileen ? Does
    somebody have a question?
  • 14:59 - 15:09
    Q1: I just one question not I'm really
    cous about XI and I wanted to know if I
  • 15:09 - 15:13
    wanted to know more, because you gave me
    a lot of links if I wanted to have to
  • 15:13 - 15:17
    know more about it where I could look
    into it about what's new because like
  • 15:17 - 15:22
    what look what you did was really is
    already Edge but I'm really curious about
  • 15:22 - 15:26
    the world field because it's as a
    developer it's really interesting for me
  • 15:26 - 15:29
    yeah, I think I mean so those are good
    links to look if you'r
  • 15:29 - 15:32
    e into patterns
    E: I think it's always difficult to think
  • 15:32 - 15:36
    about how patterns fit into the
    development process, because it's very
  • 15:36 - 15:40
    abstract and sometimes you do need a
    designer to help you actually put the
  • 15:40 - 15:44
    pixels in place right, like it's it's a
    bit of a different type of work. But if
  • 15:44 - 15:49
    you're interested in UX in general like
    they're awesome resources. The one that I
  • 15:49 - 15:53
    like a lot is the interaction design
    Foundation. They have a lot of really
  • 15:53 - 15:57
    good courses and it's like a foundation
    in Denmark that just sort of does good
  • 15:57 - 16:03
    work and it's sort of very classic and
    and well presented I think.
  • 16:03 - 16:13
    Angel: We have time for one more
    question. Anyone? Okay then I'll say
  • 16:13 - 16:20
    thank you Eileen again go talk to elen if
    you have other questions it was nice to
  • 16:20 - 16:27
    have you
    [Filler, please remove in amara]
  • 16:27 - 16:30
    *Applause*
    [Filler, please remove in amara]
  • 16:30 - 16:34
    *Camp 2023 Postroll music *
    [Filler, please remove in amara]
Title:
Decent Patterns
Description:

more » « less
Video Language:
English
Duration:
16:26
C3Subtitles edited English subtitles for Decent Patterns
C3Subtitles edited English subtitles for Decent Patterns
C3Subtitles edited English subtitles for Decent Patterns
C3Subtitles edited English subtitles for Decent Patterns

English subtitles

Incomplete

Revisions Compare revisions