Archive for category Uncategorized

Online vs. Offline Social Networks

The Real Life Social Network is a great presentation by Paul Adams, UX Reseacher at Google, on the differences between online and offline social networks, and how those differences cause user confusion and even pain.  One of the main reasons for this disconnect, he claims, is that online social networking sites tend to put all your connections in one big bucket (Friends on Facebook, Connections on linkedIn, etc), where in real life, across cultures, people tend to have 4-6 relatively independent groups of connections, with 2-10 people in each group.

This sounds about right to me, but I wanted to see if I could see this in my own social network.  I used the excellent gephi network visualization and analysis tool, along with these instructions to generate a network graph of my facebook friends.

Graphed and clustered visualization of my Facebook friends. Just as Google predicts, I've got about 6 real world groups that I interact with separately, not one big bucket of 'Friends.' Click the image to see more details about these groups.

It looks like I’ve got about 7 discrete social networks (click the image to see more details, labels, etc):

  • College friends (mostly from the Hawkeye Marching Band)
  • Graduate School colleagues (fellow grad students and professors)
  • Current Work Colleagues
  • Church friends
  • High School classmates
  • Family
  • Former Job Colleagues (mostly from when I worked and lived in England)

I learned a few things in doing this exercise:

  • Facebook turns out to be a pretty decent proxy for my offline social network.  If someone were to ask me, as Google did in their social network user research, to identify my people, place them in groups, and name the groups, this is pretty much the list I would’ve come up with.
  • I’ve got more than 10 people in most of my groups.  However, this graph doesn’t really take into account the strength of the connections.  If I were to apply a filter to this graph that only showed people who posted on my wall, or who’s wall I posted on recently, I bet the number would be much closer to 10 per group.  And some of those groups would disappear.  Which leads to…
  • These groups and connections are dynamic.  My groups, and my attention to them, wax and wane over time.
  • I didn’t need Betweenness Centrality to know that my wife is the center of my world.  =)

Adams goes on to describe that the web is fundamentally changing because it is becoming a web not just of documents and data, but also of people and relationships.  He argues that designers must learn to build systems with these new constructs.  The desktop model of one person, dealing with one system, in a cozy office environment is broken.  Relationships, influence, identify, and privacy must be built into next-generation systems. from the ground up.

That’s a huge mandate for designers and engineers.  It means that your system model has to be extended beyond the HTML, Javascript, and SQL statements; beyond the server configuration and network bandwidth.  Beyond a single user.  When you think about your system, you have to  include and account for the collection of users — their goals, needs, desires.  You have to understand how they influence one another.  You have to understand how they want to segment bits of information into different social circles.

, , ,

1 Comment

UX Designer/Developer Core Competencies

I’ve struggled to communicate exactly what a User Experience Designer does.  User Experience is a relatively new field.  It borrows a lot of techniques from various long-established disciplines, but I don’t think there is any strong consensus on what a User Experience professional does, how they interact with other established parts of an organization and how to know if you’re a good one.  In this post, I synthesize some of the current thinking on what UX Designers are supposed to do (UXMatters.com), how they go about doing it (userfocus.co.uk), how they might be evaluated (Jared Spool, uie.com) , and present a framework for thinking about your User Experience practice.

The Bottom Line:  UX Designers/Developers need skills in 3 areas: Core UX Skills (User Research, Visual Design, Interaction Design, Implementation, Evaluation), Enterprise/Business Skills, and Foundational Skills.

UX Designer/Developer Core Competencies

User Experience Definition

Search for ‘user experience definition’ and you’ll get a lot of different answers.  You could do worse than the ISO 9241-11 definition:

‘…we define [user experience] as all aspects of the user’s experience when interacting with the product, service, environment or facility’ and we point out that ‘it is a consequence of the presentation, functionality, system performance, interactive behaviour, and assistive capabilities of the interactive system.

It includes all aspects of usability and desirability of a product, system or service from the user’s perspective’.

That’s a tall order for one person to fill.  In a company of any size, it is unlikely that one UX Designer will have complete influence over all aspects of the user experience.

UX Honeycomb. Peter Morville

So while I hold this definition as an ideal, and try to communicate it to others in my organization, I tend to focus my view and efforts to the electronic, web systems that I design and have direct influence over.

There are a couple pictures that I think sum up this view rather well.  The UX Honeycomb describes 7 facets of a good web user experience.

Dan’s visualization of UX at KickerStudio encapsulates the notion that UX is the space/cytoplasm that connects the various disciplines into a single organism.

User Experience Artifacts/Deliverables

What are user experience designers supposed to do?  I like the idea that UX designers bring compassion and empathy into product design.  They use structured methods to turn empathy into a design process that result in improved user experience.  David Travis breaks UX work into four categories: Analyze the Opportunity, Build the Context for Use, Create the User Experience, and Track Real-World Usage and Continuously Improve the Product (graphic).

A Model for User Experience. David Travis

What deliverables they bring to the table?  We use tools like stories, wireframes, tasks analysis, and prototypes Peter Morville gives a nice overivew of the UX Deliverables (along with an excellent graphical UX Deliverables Treasure Map).

With Agile development methods leading to shorter and shorter developmet cycles, some have suggested that UX Designers also need some development skills.  Being able to express designs with the same language and tools as used by the ‘backend’ development team certainly makes easier for the UX designer to integrate their work with the development team.  I agree with this view, to a certain extent.  I started my career as a developer, and I still do some coding.  I think this helps me communicate with my full-time developer colleagues.  But I also think that focusing on development can taint your design thinking.  When you’re in the weeds of writing code, and under a delivery deadline, it’s easy to cut corners on the design and say “this works…this is good enough.”

User Experience Core Competencies

In his Agile2009 Keynote, Jared Spool had a nice graphic of all the different disciplines the UX Designer/Developer dabbles in (I’m surprised the slides from this aren’t available anywhere).  I combined some of these ideas, some from Steve Psomas in UX Matters (linked above), and my own thoughts/experiences.

I would tend to group UX Competencies into three categories.  Let’s look at the picture again:

UX Designer/Developer Core Competencies

UX Designer/Developer Core Competencies

CORE UX SKILLS

This is your ability to turn your compassion and empathy into design artifacts and deliverables.  This is what people hire you to do.  I think this breaks down into 5 areas:

  • User Research
  • Visual Design
  • Interaction Design
  • Implementation
  • Evaluation and Testing

The graphic gives some examples of the types of artifacts deliver and skills required in each of these areas.  These are obviously not complete lists.  In particular, take a look at the Implementation box.  To be a UX developer these days, you need to know something about the front end presentation (HTML, CSS), the ability to make the screens sing and dance (javascript, AJAX, or maybe Flash, Flex, or Silverlight).  You need to be able to persist the data, whether in a local database, key-value store or remote system.  You need to be able to glue those two together, either through some lower level server side programming with straight PHP, or some framework like Ruby on Rails, Django, or CodeIgniter.

ENTERPRISE/BUSINESS SKILLS

Enterprise and Business skills enable you to map your Core UX Skills onto the needs of your organization in order to deliver business value.  As Jared Spool explains:

User experience extends beyond the on-screen interactions to all touch points with the user. Special skills are needed to ensure the team interacts with the rest of the organization in a productive manner. While the teams don’t need to know how to do the jobs of others in the organizations, they need to know how those other roles will influence the design.

I organized some of these Enterprise/Business skills differently than Jared…more in a way that fits my experience I guess.  Where the Core UX Skills live almost exclusively in the UX World, the Enterprise/Business skills are about the connections, interfaces, and links between the UX practitioner and the organization.

FOUNDATIONAL SKILLS

The Foundational Skills are the theory, tools, and practices that help you critically evaluate new technologies, tools, or methodologies.  Design and Development practices seem to come and go almost daily.  Today we’re all talking about guerilla usability testing, paper prototyping, user stories.  A few years ago talking about Usability Engineering, Outside In Design and looking at UI UML modeling.  Before that, we were talking about User Centered Design and the need for full blown usability labs.  Tomorrow, we’ll be talking about something else.  It’s your Foundational Skills that help you step back and see the relationships between all these things.  Foundational Skills enhance your ability to ‘pick up’ the latest thing because you can relate it to something you already know.

Foundational Skills would grow both through formal academic training in fields like Ethnography, Psychology, Human Factors, Computer Science, Engineering.  Foundational Skills would also grow through real-world experience with people, organizations, technology, and systems.

User Experience Core Competencies Use Cases

Assessing Your Own Strengths/Weaknesses

A designer/developer might rate themselves on some scale, say 1-5, in each of the 7 areas, to clearly communicate the skills they bring to the team.  I could imagine some color coded version of this graphic, or even a treemap that emphasizes where one’s skillset lies.

Assessing Your Teams Strengths/Weaknesses

A UX team manager might assess their teams strengths along these dimensions, in order to identify team strengths, weaknesses, opportunities to pair people and do cross-traning, and guide hiring decisions.  This leads to…

Evaluating Job Candidates

Given that you’ve identified areas where you need additional skills, you can rate prospective hires in the 7 areas (or ask them to rate themselves).  You can give each area a weight in order to emphasize the balance of skills you’re looking for, and build a table that calculates a weighted score for each of the candidates.

Conclusion

There are many misconceptions about UX.  In many organizations I’ve worked or consulted for, UX design is treated like some magical black box — sprinkle some pixie dust on our servers and *poof* out comes a great UX.  Maybe this type of framework can help remove some of the mystery, and help us communicate generally what we do and how we do it.  It may also help you communicate your own strengths, skills, and contributions to the product team.

I showed this visualization to my boss at my performance evaluation this year, and said, “this is how I think about UX and the types of things I should be doing…here are the areas where I’m strong, and here are the areas where I’m looking to grow.”  I noticed he only marked up the areas where I’m weak.  =)  That’s ok, because 1) we have others on our team that are really good in areas that I’m weak, 2) we agreed on where I need to get more practice, and 3) it lets me be proactive in defining the UX world, and the value a UX Designer/Developer in general (and me specifically) brings to the team, and what things I should be doing.

I certainly welcome thoughts from the community.  Is this helpful?

, , , , ,

3 Comments

ICWSM Paper Titles – Wordle

This tag cloud was generated from all the paper titles that were presented at the ICWSM ’09 conference (http://www.icwsm.org). I don’t think anyone is surprised that ‘social’ is the major term.

, ,

Leave a Comment

ICWSM Liveblog – Wordle

This tag cloud was generated from my liveblog of the ICWSM conference (http://fitzgeraldsteele.wordpress.com/tag/icwsm). I think it is interesting that people shows up as the biggest term here, where it hardly registers in the paper titles.

Tagcloud generated by http://www.wordle.net

, ,

Leave a Comment

Memeing in PHP

From Eric Florenzano

Rules:

  1. Implement a program that takes in a user’s name and their age, and prints hello to them once for every year that they have been alive.
  2. Post these rules, the source code for your solution, and the following list (with you included) on your blog.
  3. Bonus points if you implement it in a language not yet seen on the following list!

I’ve seen solutions in python, ruby, Java, C, lisp, and TCL.  I haven’t seen PHP, and I’ve never really done PHP…so without further ado…

<?php

print “What is your name: “;
$name=fgets(STDIN);

print “What is your age: “;
$age = fgets(STDIN);

for ($i = 0; $i < $age; $i++) {
    print “$i. Hello, $name”;
}
?>

And the output…

What is your name: Jerry Steele
What is your age: 33
0. Hello, Jerry Steele
1. Hello, Jerry Steele
2. Hello, Jerry Steele
3. Hello, Jerry Steele
4. Hello, Jerry Steele
5. Hello, Jerry Steele
6. Hello, Jerry Steele
7. Hello, Jerry Steele
8. Hello, Jerry Steele
9. Hello, Jerry Steele
10. Hello, Jerry Steele
11. Hello, Jerry Steele
12. Hello, Jerry Steele
13. Hello, Jerry Steele
14. Hello, Jerry Steele
15. Hello, Jerry Steele
16. Hello, Jerry Steele
17. Hello, Jerry Steele
18. Hello, Jerry Steele
19. Hello, Jerry Steele
20. Hello, Jerry Steele
21. Hello, Jerry Steele
22. Hello, Jerry Steele
23. Hello, Jerry Steele
24. Hello, Jerry Steele
25. Hello, Jerry Steele
26. Hello, Jerry Steele
27. Hello, Jerry Steele
28. Hello, Jerry Steele
29. Hello, Jerry Steele
30. Hello, Jerry Steele
31. Hello, Jerry Steele
32. Hello, Jerry Steele

Amazing that I’ll do this, but I won’t fill out those net forwards that my friends send me…

, ,

1 Comment

Coda, TextMate, and BBEdit…Oh My!

[UPDATE: I've decided to go with TextMate]

I’m looking for a new Mac text editor, which will be primarily used for web coding (HTML, Python, PHP if they make me).  I want an editor that simple when I need it to be simple, helps me complete routine/repetitive tasks more efficiently, and lets me script/customize when I need advanced functionality. Here’s what I’ve tried so far…

vim
Oldie but goodie.  Sometimes its nice to quickly open a file in the terminal, but I have a hard time seeing how to use it as a full-time text edit environment.  I know beneath the simple terminal screen lies multi-buffers, regex search/replace, and keyboard based editing nirvana, but I haven’t been able to fulfill its promises. I would need to take some time to recall all the keystroke commands, and then configure it and customize it to my liking.

Coda
Did the 15 day trial, and I really thought it was a nice web development environment.  Text Editor, Terminal, FTP, Version Control, Reference Books all in one window, with some sexy page transition animations that make your Windows-using co-workers jealous.  I also liked the Find/Replace functionality which allows placeholder/token expressions.  Much simpler than having to mess with regular expressions.  But I’m not sure if this is the best text editor for general text files.  For example, I’m also experimenting with Sphinx and reStructuredText…Coda has no love for reStructuredText (love=syntax highlighting, auto complete, etc).  The latest version of Coda supports user-defined plugins, so maybe reStructuredText is coming.  Finally, I had trouble getting Coda to work with a svn repository I set up, although it might be more of a problem with my svnadmin skills, than Coda.

My Coda trial has expired, so now I’m looking at:

TextMate
I’ve watched some screencasts…seems pretty sexy.  All the cool kids seem to be using it.  It seems like there’s a lot of configuration/customization possibilities.  Maybe too many?   I’m interested in seeing if I use the snippets, which Bundles I’ll use, etc.  I’ve just downloaded the 30 day trial, and I’ll use it as my primary editor until it ends, or I get sick of it.

BBEdit
The granddaddy of Mac text editors.  All my co-workers use it.  Because it has been popular for so long, I imagine it is pretty solid.  Reminds me of Ultraedit on Windows.

I probably won’t try Emacs.  I gave up on that in 1994.

Anything else I should be looking at?

, , , , ,

2 Comments

New blog for my blatherings

Ok…I’m starting a new blog.  I needed a place to talk about some of my research/work thoughts.  Facebook didn’t seem right.  Neither did my home/personal/family blog.  So here we are.  Let’s get to it!

Leave a Comment

Follow

Get every new post delivered to your Inbox.

Join 532 other followers