What I've been up to lately

I've gotten involved in a number of new projects in the past 6-7 months so thought I'd update y'all in what I'm doing.


After a lovely summer break with no school and my time spent vacationing and working at a number of jobs, I came back to BYU for my first semester in the Masters of Information Systems program. But, as my classes this past semester were pretty boring, I won't mention school anymore here.

E-commerce websites:

I've built two e-commerce sites over the past six months using Ubercart (a fantastic open source shopping cart -- if you're in the market for that sort of thing). Ubercart is a module (cf. plugin/extension) for Drupal, an open source content management system, another technology I've been working with extensively.

This past June, with two friends, I started a t-shirt company running out of our apartment. As the lone techie, I built our website at coolcamisa.com. By our expectations, the company has been a rousing success (i.e., we didn't lose money)! We paid back our start-up costs by September (2 1/2 months from launch) and have netted some two grand since then. Not bad for our little apartment-based bootstrapped business. I've learned tons about starting a business, legal stuff (we organized as an LLC), pricing, marketing, website development, etc.

My second e-commerce site I started just recently. A good friend of mine, Nicole Sheahan, released her first CD in December (She's an excellent singer btw, so go buy her cd). I've been helping her set up a website to sell / market her music. The site is still a work in progress but it's amazing to me how fast it has come together. I've been working with open source software for awhile but I'm still impressed that I can singlehandedly put together a fully functional ecommerce store in under 10 hours for no cost other then my labor. That's the power of a community.

Other (Drupal) web sites:

With a friend, I've been volunteering to build a website for the Utah Valley Ministerial Association. The website will have news and events from churches in Utah County and serve as an online directory of churches in Utah County and surrounding communities. The site is not yet fully operational but it's soon in coming. Drupal's "Views" module was the real workhorse here slicing and dicing the church listings for display in a number of different ways. As you can see on the website, the different "views" of the data enable a user to find churches by city, denomination, or language.

Family History Site

Because of my Mormon heritage, the genealogy of my ancestors is very well done. Most of my ancestoral lines are traced back to the 17-18th centuries. About two years ago, my siblings/parents and I decided that while it's great to have names, dates, and places from our ancestors, what is really interesting is to read the stories and letters they wrote and view pictures of them and where they lived. These stories/letters/pictures/etc. flesh out the skeletal data we see on the normal family history tree.

But while current genealogical software does very well at organizing, storing, and sharing genealogical data, it does a poor job at handling other types of information. Documents and pictures tend to get lost in attics of aunts/uncles/grandparents. If you don't have them, they're hard to get hold of and you have them, they're hard to share with relatives.

We decided the best solution to this problem would be to create a website. Our first answer was a wiki website. The wiki software made it easy for our widely distributed family to work together on gathering information. But after some time we grew dissatisfied with the limitations of our wiki software and decided to migrate our site to one based on Drupal. That migration is still in progress but we're excited as Drupal will give us much more control over how information is stored and displayed (albeit with a great deal more complexity).

A New Job

In June, I started working as an research assistant at BYU in the Kevin & Debra Rollin's Center for eBusiness.

I'm working with a professor and a pH.D student studying how web2.0 technologies can be used in the classroom to help students become more active learners.

So far I can say this is the best job I've ever had. What I'm doing and learning just fascinates me.

Our main research thrust this past semester was creating a community site for a class to use at BYU -- http://isyscore.byu.edu/drupal.

We have learned a lot from the experience -- and it's given us mountains of data to sift through -- more on that in the future hopefully. Building the site showed me again the power Drupal gives a website developer (even if they really don't know what they're doing) to create sophisticated sites.

My other big project for my research job is creating a new module for Drupal called writing_assignment. This module will make it easy for teachers to give students writing assignments on a Drupal website. It will also facilitate easy peer-review and peer-grading of those assignments. This is my first Drupal module plus my first extensive project in PHP so I have faced quite the learning curve. You can read more about my module here.

Two's Company, Three's a crowd: Why better social software is needed to support (small) group interactions

For my research job at BYU, I'm reading quite a bit about social software, which is, as defined by Clay Shirky, software that supports group interactions. One article I read recently by Clay entitled, "Communities, Audiences, and Scale"is especially good and provided much of the inspiration for this post. The gist of the article is that audiences scale and communities don't. And understanding this principle I think is extra ordinarily important for designers of social software.

So what is the difference between audiences and communities? Audiences primarily consume content, communities primarily communicate with one another. TVs have audiences -- they have large numbers of people that watch their content. But there is very little communication between individual watchers of TV and between the watchers and the makers of TV content. On the other hand, a small group of men who gather to play cards on Friday nights is a community -- because they actively communicate with one another. Communities communicate with one another, audiences don't.

In addition, a group is a group and a community is a community because of the connections that form between its members. Two best friends have very strong connections. A high school basketball team has connections from running lines and sitting on the bus together for long road trips.

But connections get weaker and weaker as a group or community adds more members. Connections are created by communication. With two people, all communications happens between the two people. So the connections made are very strong. Add another person and the number of connections that need to be maintained increases from 1 to 3. Add another person making 4 in the group and the number of connections increases from 3 to 6. Add another member and the connections become 10 (read Clay for more of the math). Obviously as the group grows larger and larger, the bonds weaken between individual members of the group.

This idea is encapsulated in several common English expressions like "two's company, three's a crowd". Amongst young people, a person who tries to hang out with a couple feels like and is sometimes referred to as a "third wheel". It's possible to have 2-3 best friends but no more. The "gang" you hung out with in high school probably had 4-7 people but no more. Older people tend to have fewer friends then younger adults but with closer bonds. Clay Shirky references the research of primatologist Robin Dunbar who argues that, "humans are adapted for social group sizes of around 150 or less, a size that shows up in a number of traditional societies, as well as in present day groups such as the Hutterite religious communities."

This contradicts a fundamental assumption of most designers of social software that "more users is always a good thing." Different types of groups can maintain their identity to different sizes but at some scale all online communities start to lose the dense interconnections that make the community a community.

The line where an audience begins and a community ends can get rather murky with online social software. Consider for example the weblog. If three girlfriends use blogs to discuss their lives, this is obviously a community. On the other hand, a popular blogger such as Seth Goodin is not supporting a community on its blog but is operating a broadcast media platform much as CNN or Fox News.

I'm experiencing a good example of this murkiness. A Mailing list is an example of social software often used to support online communities. I am a student at BYU majoring in Information Systems. The ISys department at BYU provides a mailing list for the use of the 200+ students who are in the ISys major. The mailing list is quite popular -- I'd say it sees an average of 10-20 emails a day during the school year

But the funny thing I've observed in the year or so I've been on the list is that even though everyone has equal rights to email the list, I see the same 10-15 names over and over. The rest of the ISys students don't communicate via the mailing list but rather are audience members. So it seems the mailing list, as a community-building device, can't scale past a certain number of people.

So why does it matter if our social software isn't so social at times, or that not everyone can/will participate on a mass mailing list? We should care because we are social creatures. In our increasingly rushed and splintered world, technology can help fulfill our need for friends and community.

Joel Spolsky, in a post entitled "Building Communities with Software" speaks movingly of our need as humans for community and how social software can fulfill that need. He ends his post with this message, "Creating community, in any case, is a noble goal, because it's sorely missing for so many of us. Let's keep plugging away at it."

Social software done right can create a community for all its participants. I feel strongly about the need for excellent social software, in our schools, workplaces, and other organizations. Social software can help us learn, work, and live with greater effectiveness and joy.

In my next few posts I'll continue to explore the fundamental problems and opportunities with social software.