User:JDavis

From Foss2Serve
Revision as of 02:10, 7 June 2016 by JDavis (Talk | contribs)
Jump to: navigation, search

Janet Davis is the founding computer scientist at Whitman College. Yes, she is very busy. She has a homepage at Whitman and a blog about her experiences.

Janet has prior experience teaching software development with community-based projects in her former role at Grinnell College. She is concerned this model may not be sustainable in a department of three faculty and is therefore exploring other models for community-engaged software development.

Contents

Reflections on User-Centered Design & Open-Source Software Development

My research is in human-computer interaction (HCI), and I regularly teach user-centered design (UCD). I've also come to regularly teach a software development course. You'd think these things would be entirely compatible, but in fact there are some deep conflicts between the approaches.

I've long been aware of the tensions between agile software development and the user-centered design process. They share the practice of iterative design and development. But where agile says start coding as quickly as possible, user-centered design indicates that you must, at least, have a conceptual model that is well-grounded in understanding the target users and domain. I have made my own contribution to resolving this tension, and I think there is work towards a consensus that designing and validating a conceptual model is part of the practice of doing Just Enough Design Initially.

Reading excerpts from Eric Raymond's The Cathedral and the Bazaar has made me aware of a tension between the underlying values of UCD and open-source software (OSS). Raymond writes in The Social Context of Open-Source Software:

18. To solve an interesting problem, start by finding a problem that is interesting to you.

This stands in sharp contrast with the first principle of UCD:

You are not your user.

This is meant to emphasize that what makes sense to you as the software developer, what is useful to you, may not be useful or what makes sense to the people (usually other people) who will benefit from using your software.

I can see both sides of it. If software is useful to you, yes, chances are good it will be useful to other people as well, and there is value in sharing it. And if there is a need, there should be enough people empowered to develop software that someone in the open-source community is working on fulfilling that need. But it's impossibly idealist to assume it is. There's also a HUGE tension between Raymond's maxim and the idea of involving students in HFOSS, which is engaging students in solving problems that are not their own problems.

I'm going to channel my students and say I find these historical readings not inspiring but problematic. What have women and other people from outside the dominant software culture written about open-source software?

Intro IRC Activity

  1. How do people interact? Very easily. Darci seems to be in charge of the meeting. She introduces the topics ("updates", "next steps") and records the minutes using the meetbot. From a not-too-careful skim, it looks like everyone takes turns stating their updates and next steps. There is a conversation about each person's updates as others ask questions or offer advice.
  2. What is the pattern of communication? Is it linear or branched? Formal or informal? One-to-many, one-to-one or a mix? The conversation is branched, informal, and a mix of one-to-many and one-to-one. Sometimes one person holds the floor for several turns.
  3. Are there any terms that seem to have special meaning? The meetbot commands - #startmeeting, #topic, #info, #action, #link, #endmeeting
  4. Can you make any other observations? I noticed that john_ has an underscore_ after his name. Is this transcript recorded from his perspective? - Yes. And does "* john_" indicate a private thought rather or a public utterance about oneself in the third person? Also, this is interesting: "18:31:39 <Stoney> (sorry person at door... i'm back... reading)" I think he wrote this because Heidi had just asked him a question but he needed some time to answer it.
  5. Bonus question: Why didn't Heidi and Darci's actions get picked up by the meetbot? The meetbot seems to be case sensitive. Their usernames were typed incorrectly, with a capital letter ("Heidi", "Darci" instead of "heidi", "darci")

I observed the Ushahidi IRC channel (#ushahidi on Freenet). I found a grad school classmate there, Pat. I tried to start a private conversation, and wrote a public message by accident. I asked if there was much going on, and she invited me to join the Ushahidi skype group. There were a lot more people connected to the Skype channel than to the IRC channel, but still no conversation. About 24 hours later I got an invitation to join the Ushahidi group on HipChat as a guest.

I joined the #sahana-eden channel also.

I tried joining #mousetrap on irc.gnome.org. I found a bot and Kevin Brown. Not much going on. I also joined the Gnome accessibility channel, #a11y.

I finally joined the foss2serve group in hopes of observing something. It was totally quiet! I wonder if I would have seen more if I'd been able to observe on a weekend.

Project Anatomy Activity

Sugar Labs

Contributions. I could most easily see my students getting involved as developers, since this would be the point of engaging with the project in an upper level software development class. I could also imagine having students engage in design during part of my HCI class. Students might also draw on their liberal arts skills to engage as content writers or translators. Other possible engagements are contingent. For example, if my local schools wanted to adopt Sugar, my students might also take on roles of People Person or Educator as well.

Tracker. To report a bug, go to the github page, find the relevant activity, sign in to GitHub, and visit the Issues tab, and click the big green button to file a report. If you haven't written bug reports before, read this guide. It looks like you just write a title and some text. I'm not sure if or how this is connected to the information on [1]. How do issues get from GitHub to Trac?

Repository. It looks like [2] is an out of date link since the last activity was in 2014. There is a new repository hosted at [3] where the last activity was about two weeks ago, so, a web-based common repository.

Release cycle. The release information says: "Each release cycle will include development, beta, release candidate and final releases." The roadmap is updated by the release team at the beginning of each release cycle.

Sahana Eden

Community. Sahana Eden has similar roles to Sugar Labs, including Developers, Translators, and Designers. Other roles are conceived differently: Sahana Eden has not Content Writers and Educators but rather GIS Specialists, reflecting a different problem domain. There are Testers, Documenters, and Bug Marshals, all roles I could imagine my software development students getting involved with. There is an explicit SysAdmin role---maybe because Sahana Eden, unlike Sugar Labs, includes a hosting service? It seems like the sysadmin needs for supporting development might be similar, so it's odd Sugar Labs doesn't have this role. Instead of People Persons there are Newsletter Report Writers, maybe reflecting a less involved relationship with the user community.

Tracker. There are lots of categories of bugs, and they seem to be organized by status/severity/urgency instead of by sub-project. The information about each report seems to be pretty similar.

Repository. You get the source code using the command git clone https://github.com/sahana/eden.git. So there is a web-based repo hosted by GitHub.

Release cycle. The provided link seems to indicate there are three active milestones: 0.9 (2011, 92% complete), 1.0 May 2012, 72% complete), and 2.0 (no date set, 98% complete). I really don't understand this.

Each has a list of key features required. You can click on the progress bar to see information about all the tickets assigned to the corresponding milestone.

I'm kind of lost - I would need some orientation to understand the project status and what happens next.

But going back to the developer page, I found a link to a list of Blueprints -- descriptions of projects that want implementing. I also found a link to Requirements for Sahana 2 which might be a good place to read to understand what's going on with the project.

Reflection

This activity is pretty challenging since projects seem to reorganize their information from time to time, and there is a lot of different (possibly related) information fragmented across different locations that is not necessarily linked together. I would almost rather have been sent on a scavenger hunt with only a link to the project home page and keywords to put in Google rather than links to specific pages that seem to be maybe out of date.

FOSS Field Trip Activity

Part 1 - SourceForge

I searched for projects under Simulations. There are nearly 3000 projects in this category written in at least 15 different languages. The most common languages are C++, Java, C, and Python.

I could not find definitions of the project statuses on SourceForge. Here's what they mean to the best of my knowledge:

  • Inactive - No longer under development; last updated more than 90 days ago (?) - based on looking at the projects with this status and sorting by last update
  • Mature - Reliable, actively maintained, field-proven (?) - Stack Overflow: What is mature software?
  • Production/Stable - Testing completed and ready to use
  • Beta - Black box testing by users, often a select group
  • Alpha - White box testing by developers - Source: Software Release Cycle, Wikipedia.
  • Pre-Alpha - Not yet ready to be used
  • Planning - Implementation hasn't started yet

Automata Editor is listed as Mature, while Logisim is listed as Production. Both were last updated in 2013 and I thought that Logisim was no longer under active development. Automata Editor has had 37 downloads in the last week and two ratings, while Logisim has had thousands of downloads and 84 ratings.

Sweet Home 3D is the most popular in this category at over 125K downloads this week. I sorted by "Most Popular." I suppose it's most popular because it has a broader audience than most software in this category.

I looked more at the GNS3 project. I'm curious about it because once upon a time I used NS3 in my research.

  1. It is used for simulating computer networks.
  2. It is written in Python.
  3. I think it is used by network students and/or administrators, from reading the one review that says something more than "great job."
  4. The last update was 17 hours ago. It looks like that was a nightly build.
  5. Nonetheless, it doesn't seem very active. The last bug report is from 2012. How can I find out when the last commit was?
  6. There are two committers, gns3dev (a group?) and noplay (an individual).
  7. I would consider using this project since there are 5K downloads a week. I'd probably go do some more reading to find out what the alternatives are.

Part 2 - OpenHub

  • The main programming language used for OpenMRS Core is Java, which also has the highest comment ratio. The project uses a total of 15 different languages. The second most used language is JavaScript.
  • OpenMRS Core has over 3.5 million lines of code.
  • I couldn't see where there the contributors are. The map never got past "Loading." The average number of contributors over the last 12 months is somewhere between 12 and 20. The top three contributors have all been involved in the project for over two years. The two top contributors have been involved for over five years.
  • The average number of commits per month over the last year is somewhere in the ballpark of 50.

Project assessment activity

Hmm, I wonder if I can embed a file here. File:Davisj-openmrs-assessment.xlsx

Yes, it seems I can.

Blog activity

I know how to use a blog. My blog has a wide audience. I am not ready to make a public blog post on my POSSE activities. Maybe later.

Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox