How do software patterns evolve?

By on

I was talking yesterday afternoon with several other lab members about Martin Fowler’s "Patterns of Enterprise Application Architecture." In his book, Fowler admits that most patterns aren’t anything new. "Creating" a software pattern is just naming and describing a software practice already used by some developers. Of course, Fowler presents patterns with amazing clarity and skill, so his contributions are valuable to the development community.

Since our research group is interested in social communities, we were curious about how new software practices evolve into well-known design patterns. Do most patterns start with a bang from a few highly influential, outspoken developers? Is there gradually increased adoption until the pattern reaches a critical mass of people? Another possibility is that as the global software environment changes, many groups of people stumble onto the same pattern at the same time.

What’s your opinion?

 

Apple on Wrong Side of History

By on

Here’s one of many articles on the battle between Apple and iPhone hackers over the ability to run their applications on the iPhone. Apple seems to be badly misreading the current state of the world.  Hello!  We’re in Web 2.0 here!  The breakthrough is Facebook fielding a full-fledged API for its fans to develop their wild and crazy applications — and to share them with everyone else.  Yet, Apple is playing Microsoft, trying to lock down and protect their ability to deliver proprietary applications that their customers cannot build themselves, extend, or improve. 

Personally, I’m committed to the power of community-maintained resources; I won’t consider buying a device that is locked down like the iPhone and the ITunes Touch.  There’s something about knowing that the machine in your pocket is programmable that makes it more fun to carry — even if you end up not programming it yourself. 

John

 

http://www.engadget.com/2007/10/10/iphone-and-ipod-touch-v1-1-1-full-jailbreak-tested-confirmed/

Future of Computer Science

By on

Interesting Computer World article on the future of computer science.  A wide range of views.  The ones that impressed me the most were John Canny’s thoughts on what it is that has made computer science uninteresting to so many people.  He argues in several comments that computer science has chosen the path of not caring about social relevance, and that that is now costing us in how interesting we are as a discipline of study, and how much impact we are having on the world.  He points out that much of computer science is just working hard to be a hand-maiden to other sciences.  

I found his arguments compelling.  The suggested fix of moving towards understanding how computers can provide applications that deeply fit what people want to do in their lives is critical.  Right now most computer science programs don’t want to think about users and their problems.  Why is that?  How can it be fixed?

In a New York Times article on the same topic, Jon Kleinberg is quoted about the vast opportunity computer networks are creating for measuring social networks.  Of course, he’s right about the value of the social networks, but I think focusing on the measuring misses the big picture: computers are making possible radical new notions of community that are altering or replacing our traditional geography-bound notions of community.

In a Nature issue devoted to the future of computing, Stephen H. Muggleton, one commentator, discusses the use of computers for advancing biology research.  He
discusses many examples of the use of computer algorithms to improve
the ability of scientists to form and test hypotheses.  He argues that
interfaces to these algorithms will eventually enable human scientists
to perform in a way that will demonstrate "Exceeding human limits".

What do you think the future of computing will bring?

John 

 

Thoughts on the Value of Ethnographic Methods

By on

Our group has been thinking and talking a bit about ethnography as a research method.  The discussion was started when we read a paper from CHI 2006, called Why We Tag: Motivations for Annotation in Mobile and Online Media. This paper investigates the motives of a small group of people for tagging photos they upload to Flickr via a mobile app called ZoneTag.

As our group uses mostly quantitative methods (with some exceptions), this paper was a departure for us.  As a result, our paper meeting quickly digressed from a discussion of tagging activity in online systems to a generic discussion of methodology.  One of the most interesting points made in the discussion was: there is deep learning that happens in an ethnography, but it is very hard to communicate that deep learning in a peer reviewed publication.

I agree with this.  It is hard to understand what is generalizable from the set of quotes or the (often unsupported) theoretical models that tend to appear in ethnographic studies.  However, ethnographies appear to be among the more nuanced of research methods.  Thus, I have several thoughts about the value of these studies to me.

Perhaps ethnographers have deep insights, and are therefore in a unique position to contribute design implications.

Darn it.  I read more about this one, and it turns out that a preeminent voice in the field has argued directly against my intuition.  Paul Dourish wrote a CHI paper (as well as a follow-up to appear in DUX 2007) arguing that ethnographies should not be evaluated on the basis of their arguments for design implications.  Rather, design implications are shallow, whereas human culture and thought is deep.  A very interesting perspective, that to me argues for rethinking the design of ethnographic studies in many cases.  Ethnographic studies should be designed to understand people rather than design – but I fear that (HCI-focused) ethnographic studies are usually designed to understand design rather than people.

Perhaps ethnographies are useful up front for understanding ways of designing technology.

Clearly, there are different methodologies for different reasons.  There is no single method that dominates others.  They are situational.  Thus, we might ask where ethnography fits into this puzzle.  One answer is that ethnography is a useful way of gaining a deep understanding of people to guide early design decisions.  One could base survey questions on the results of an ethnography, or design user interaction based on users’ existing practices.

However, I often wonder if users really know what’s best.  Users cannot see innovations, but they can illustrate ways of making existing practices better, or perhaps ways of applying new techniques to old problems.  Thus, I am torn.

Perhaps ethnographies are interesting and a good vehicle for initiating discussion.

This is clearly true.  Stories are more interesting than numbers to most people.

All this has become particularly relevant to my thoughts as I contribute to a paper based on the work that I conducted over the summer.  While our research is not based on ethnographic methods, we do try to learn from observations, and through open-ended survey and interview methods.  It’s my belief that using several methods together (quantitative methods + qualitative methods) makes for strong and interesting research.  I am curious how we will tie stories to data, and the extent to which we will feel at liberty to generalize from a relatively small sample of users in a unique setting.