This was a week of confusion, mostly because no one knew where they wanted to put me, and I myself didn't know what part I wanted to play in the project.
Initially I was put with Helena, and Prof. Carroll had suggested looking at the way participants explained their decisions and rationale to other members of the team. Of course, the idea was not so clear as that at first, so we spent a lot of time reading papers and feeling out what work had already been done on the subject. As an undergrad in software engineering, this was completely new and unfamiliar to me. At the same time it was interesting, and I got a crash course by reading lots of papers on human computer interaction, group collaboration, common ground, and group decision making. While I am not at all familiar with psychology, I picked up on a lot of terminology easily. Unfortunately, not a lot of work has been done on this particular subject, so we found a lot of papers that were sort of relevant, but not quite what we were looking for.
Because I was so unfamiliar with any of the things I was reading about, I began to think maybe I should be more on the software side of things. Alex had given me a run through of the software prototype and I noticed the user interface could definitely be improved upon, and she mentioned some bugs and things that could be made better in the program. So I had Helena talk to Craig, and I became involved in the software side of things as well. At the same time, I realised I really wanted experience with an in depth study and to be doing research as well, so I asked Helena if I could do half and half - do research with her, but at the same time help out with the software prototype. She said it was all right, so now I get to do a little bit of both!
So basically this week has been reading a lot of papers and learning about fields I normally am not involved in. I've also set up BRIDGE on my computer and am feeling my way around it. It's a good idea to learn a bit about it, because that is what the software prototype is working off of. BRIDGE, which stands for Basic Resources for Integrated Distributed Group Environments, is a giant mish mosh of tools designed to faciliate collaboration on the web. A lot of different people have worked on it, and it's a little on the buggy side, which makes things interesting, to say the least...
Another week was spent fighting with path names and devlopement libraries on the software side. Some progress was made towards actually being able to run the software prototype, but I am far from being able to do any development on it. I feel if things were better organized and everyone knew what libraries were being used, it would be a lot easier.
On the research side of things, though, it has been going fairly well. Helena and I met with Liu, and it really gave us a much better idea of what direction we wanted to go in. We also started working of a coding scheme of our own, because Gregorio's current coding scheme is a little vague and also does not cover the topics we want to cover. Gregorio is more interested in the idea of common ground, and how over time, people's shared knowledge increases. We are more interested in the participants' reasoning behind their choices, and there is not really anything in Gregorio's coding that covers that. So we pulled parts of our coding scheme from a couple of different papers, namely Group Decision Making and Normative Versus Informational Influence: Effects of Type of Issue and Assigned Decision Rule(Kaplan & Miller 1987) and Argumentation and Emotional Processes in Group Decision-Making: Illustration of a Multilevel Interaction Process Analysis Approach (Beck & Fisch 2000).
So Helena and I got to sit down and start coding one of the runs from when they were doing the experiment with the paper prototype. It seems to cover the material we'd like to cover, especially concerning the moments when the group as a whole makes a decision, and the turning points leading up to it. We still don't have a hypothesis as to the changes between the first and last runs though, hopefully next week when we code the third run we'll see something interesting.
This week I finally got the development libraries I needed, thanks to Blaine. My first task was to implement the ability to remove layers from a map. It took two days, because I spent quite a while familiarizing myself with how the software prototype works. There's not much to say about the process of coding, except that I feel so much more comfortable with it than the research. Occasionally I call over Vince or Lauren and ask them to "break" it, because most of the time it is easier to find bugs in someone else's code than your own
On the research side of things with Helena, we finally coded the third run. Gregorio and Alex had not yet coded it with their current coding scheme, so we took a whack at that as well as coding with our own scheme. Oh. my. gosh. What a nightmare - Gregorio's coding scheme definitely needed some major tweaking. Helena and I (mostly Helena) sat down and thought of a unified coding scheme that both we and Gregorio could use. Pitching this to Gregorio will probably not work, because he seems very fond of his ideas as opposed to others', but Helena wants to take a whack at it. We also took a look at the differences between the first and the third runs. One of the main things we noticed was that a group doesn't make simply one decision at the end - they go through cycles, making several decisions before agreeing on a final one. With each decision, inferences and judgements are made, and information is presented and summarized. One of our theories is that as they cycle through this decision making process, less information will be presented, and more inferences and judgements will be made towards the end. Another theory we have is that the way in which members present information and make judgements may change from the first run to the third. We may be able to tie in these theories into Gregorio's work on common ground - but that remains to be seen.
One of Gregorio's results from his usability questionnaire given to the participants who used the software protoype was that users wanted to grab and drag the map. So my goal with the software prototype this week was to implement the ability to grab the map and pan across it, much like you can do with Google Maps. It took me about two days to get the basic implementation done. I am seeing a pattern here - I wrestle all the first day with a bunch of code I don't understand, but I come in the second day and in about an hour I've got it all figured out. Kind of funny. Anyway, panning is implemented, but there is currently a conflict with one of the other mouse listeners, which stems from the fact that the roles (public works, environmental, mass care), have been hard-coded into the code. That's right. So when I'm logged in as guest, and I try to select a feature, I get a really big string of errors, and then the map panning starts to act weird. I'm trying to decide if I should try to un-hard code it, or to just make sure it doesn't throw the error. I don't want to break how the rest of the map works, and I"m worried I'll do that if I try to remove the hard-coding.
This week with Helena I didn't really get much of a chance to help out. I wanted to try and test out our unified coding scheme on one of the runs, but Helena did not have the time to put it up on the server anywhere. We did get a chance to have a meeting though, where Gregorio showed us his revised coding scheme, which was much better than the previous version. The great thing about this meeting was that we got to present all of our ideas to both Professor Carroll, Prof. Rosson, and Allister. It also gave us a much better idea of how we might relate our work to Gregorio's.
This Thursday and Friday I'm not in, I'm taking a bus back to my hometown to see my little sister graduate! Professor Rosson didn't seem to mind at all, Helena wasn't around, and Craig is gone Friday too to see his niece graduate, so it's all good. Look under Other Activites to read more about it...
This week Helena went MIA. Which was just as well, because I embarked on those most challenging part of the software prototype yet. First I fixed the bug I discovered last week - I just made sure not to assume that anything was hard coded in. I also worked around the conflict with the other mouse listeners. Once I tested that all out and committed it, it was time to fix one of the bigger problems with the software prototype. The map itself is a bridge object, but the formats which the map data is stored in are not. We are using geotools, so map layers are stored in SharedShapefileStore, and user annotations are stored in SharedMutableDataStore. These are not BRIDGE objects, so when you go to copy a map, it can't make a copy of the layers or the annotations. This means every time poor Alex has to set up an experiment, she has to remake the map every.. single.time. I don't know why they didn't make these things BRIDGE objects to begin with in the original implementation, but I find myself asking a lot of questions like that lately. In any case, my mission is to make these BRIDGE objects. The object classes are written, but I have to create the component views so that you can view them inside of BRIDGE. I've gotten stuck once or twice so far but am definitely making headway.
On Monday, Helena had returned! She had worked out a bit more of a focus to what we want to do, I felt bad because I don't have as much input to give as the more experienced members in the CSCL lab, like Gregorio. In any case, Helena got some advice from Alistair, who is a visiting professor from England. He suggested that she look into Rhetorical Structure Theory as a way to code and analyze people choices and the rationale behind them. We also sat down with Gregorio and got more ideas from him on where we wanted to go. I think very practically, and while sometimes in the area of research this can be my downfall, at times it is very helpful. I was able to give Helena and Gregorio an idea of what practical uses our research could possibly have, and what sort of functionality we could build into a piece of software that would support group decision making.
I am continuing to work on making the map data into BRIDGE objects. Let's just say I've been consulting the Geotools API quite a bit. Prior to this I had no experience in displaying maps of any sort, and I've found the technical details to be pretty interesting. It might be a lot easier if there was some sort of definitive documentation on how Geotools handles everything, but if there is, I haven't found it yet. It seems that the people who created Geotools are more focused on development than documentation. It would also help if either Craig or Blaine could pass on some of their knowledge to me, because they have been working on the software prototype for quite a while, particularly Craig. I find that generally they do not, because it has become subconscious knowledge for them - they just instinctively know obscure details of everything works - I think at times they forget that I am new to all of this.
We also had our biweekly meeting. Everyone discussed the papers they want to write concerning the geocollaborative experiment, and what the focus would be. I could not really give much input for this, because by the time the deadline for CHI papers is (September) , I will be long gone. Then Helena and I (mostly Helena, I tend to be very quiet at meetings) gave an overview of how we were tying our work into Gregorio's on common ground. For once, there were not tons of objections from Professor Carroll, who nearly always has some criticism for whatever is being said at the moment. This means that next week we can start analyzing more of the data from the experiment. We will start out trying to decompose the decision process, starting from when the final decision is made, back to the very beginning. Helena says if we can manage this, the coding will be a piece of cake.
I did not see Helena at all this week, and so there has been no work on the rationale analysis. I have been finding that Helena goes off on her own and that I am not getting as much exposure to the analysis of the transcripts as I would like.
But, there is a partial victory on the software development front. SharedDataSets are now officially a BRIDGE object, with a component view and everything. Users can configure them to either hold user annotations or to hold data about a map layer (i.e. use a shapefile). This week started out with Gregorio saying to me that the map panning was too sensitive. So I managed to sit down with him and changed the numbers until the sensitivity was satisfactory. This week I also needed to integrate my stuff with Blaine's Blaine - it seemed that he had made some changes to classes that I would need to change to implement the ability to copy maps, but hadn't committed them. He told me where to find them on his computer, since he was going to be gone until next week, and said I could check them in. But first.. I had to integrate it with my code. I was getting some very strange bugs, but finally realised that running the clean command in Eclipse did not actually delete all the class files - I needed to run the ant build file's clean. I didn't know this, not ever having used an ant build file before this, and I'm still a little fuzzy on all the details of how ours works. That solved the problem, and after some testing I finally managed to integrate everything and committed both Blaine's changes and mine.
Still no Helena, but I can keep myself occupied with other things.
So this week I began to write my final paper for the DMP. I have to say, it has been quite a while since I had to write an academic paper - more than a year, actually. I am very rusty, so it is taking me a lot more effort than I anticipated. I've never been one to balk at paper writing - most of the time I find it fairly enjoyable - but I am finding it less enjoyable than I would like.
I also continued to work on making the maps copyable. The two main steps I need to take are to 1)change the list of data sets to hold the path to the data set, not the data sets id in BRIDGE, and 2) To write a copying class for the map, because the default copier does not know the specifics of how to make a deep copy of the map object. The first step I wrestled with all this week - mostly due to the fact that the paths and ids are BRIDGE specific inventions, not a Java thing. I've had a lot of help from Craig, without him I would be pretty lost, because there is no documentation anywhere about how this works. I am starting to think I should leave some sort of documentation behind. It would certainly not be complete, I am only beginning to understand the complexities of BRIDGE, but as a famous software engineering quote goes, "Documentation is like sex: when it is good, it is very, very good; and when it is bad, it is better than nothing” And documentation is something that developers who are working with BRIDGE sorely need. (Not to mention some sort of automated testing, but that is far beyond what I can do in my remaining three weeks.)
This week I have to say I took a little bit of a break. It came at a perfect time however, as I was still stuck on the problem of copying the maps, and had begun writing my paper in between emails to Craig. My boyfriend Brad came to see me, and so I must admit I only worked Monday and Tuesday, and spent the rest of the week showing him around State College and cooking him delicious food. However, I did keep the problem of switching over the list of data sets to embedded paths instead of ids, and all that time stewing in my head really helped the next week.
I finally made a breakthrough! I am finally almost done with figuring out how to copy the maps. After wrestling with the problem of how to get an item's path and then get the item back from its path, I finally figured that part out. Craig really wasn't much of a help, he was very busy, and most of the time wouldn't repsond to my emails for a day or two - by that time, I would have figured it out. This was a part of BRIDGE I really, really wish had documentation. I spent so much time figuring silly things out that I should have been able to just look at a piece of documentation for, instead of bothering Craig about it.
I also finished up writing the first draft of my paper, and sent it to Professor Rosson. I feel like it could definitely use some review. She's away this weekend, but she said she'd take a look at it and we could meet together on Monday next week for lunch and talk about it.
I've also come to the conclusion that I have "fallen off the wagon", so to speak, when it comes to analysis for the rationale stuff. I'm no longer really involved with things, and Helena is rarely around. When she is, she really doesn't say anything to me about the rationale stuff. It's almost my last week anyway, and I am wrapping things up, so I guess it's okay.
Week Eleven - The Final Week
On Monday I had lunch with Professor Rosson and we talked about my paper. She sent me some slight changes she had made (grammar, phrasing, stuff like that), but she said that otherwise it was a fairly good paper. It obviously can't be published, because it doesn't say anything new about the field, but she said it provided a good overview of the research we had been doing, and that it showed I had a good grasp of it. Professor Rosson seemed a little impressed because no one had really sat down and explained the concept of common ground to me - I've just been picking up things here and there, and reading a lot of papers so that I could catch up and at least understand what everyone was talking about. I made the changes to my paper that she reccommended, and now I am officially done with it! The only suggestion I didn't take was to add some screenshots - most of the work I did on the software prototype can't really be shown through a screenshot, it's all interactive features, or just structural changes to the software itself.
I also wrapped up coding this week. On Tuesday I demoed all the changes I had made to the software at our regular software development meeting. Now all that remains is to have Craig come by and look over the most recent changes, and test it out before I commit anything. I still find that Craig always thinks to test something out that I have completely forgotten.
This Friday Professor Rosson is taking Lauren, Val, and I out to lunch! Vince is away, and Nick was done last week, so it'll be just us girls. All in all this research position has been a great experience - I loved the people I worked with, I learned about a field that was very unfamiliar to me, I got to do some graduate level analysis, but still got to program. I think I really have a handle on whether I want to go on to graduate studies - after a lot of talking with Professor Rosson. She has really helped put things into perspective, and helped me think about what I really want to do. I know now that I definitely want to go on to get my masters - but I'm not really sure I'll go any farther. If I do eventually go on, it will probably be later on in my life, after working in industry for a while. I can really see myself getting bored of having a normal job, and maybe going back to school and becoming a professor myself. Also, if I ever go on to higher graduate studies, it will definitely not be in a "soft" field like HCI or geocollaboration.. I find that it is too easy to just make concepts up, and I feel like sometimes it never really gets anywhere. It would probably be in a more concrete field, like math or computer science, where I also might feel a little more passionate about the subject.