Sunday, February 1, 2009

Assignment 2

I took a software engineering course in Spring 2008. In this course, groups developed software for a real third-party client. The inputs for my group included six people, all from different cultural backgrounds but all studying either computer science or information science. Our task was to build software that satisfied our client’s needs. The tools we had at our disposal for this included email, instant messaging, revision control software, and project management software.

The interaction process consisted of a combination of face-to-face and distributed CMC interaction. At the outset, face-to-face was used primarily to assign roles and delegate tasks. Once this happened, group members individually worked on their own tasks. Revision control software helped resolve overlapping contributions and ensured that everyone had easy access to the latest version of the code. We used a project management tool called Basecamp in addition to email in order to keep everyone aware of tasks remaining, deadlines, and upcoming project meetings. Instant messaging was used for smaller communication when someone needed knowledge that another person had in order to complete a task, but it was not important for the group as a whole to worry about. Periodic face-to-face meetings were still useful for discussing high-level design decisions and agreeing on terminology.

The production outcomes of the project were clearly defined deliverables: a written project report, a presentation and demo of the software, the full source code to the software, and accompanying software documentation. Our group members didn’t necessarily have to work together in the future, but I think our interaction process didn’t leave anyone feeling aloof. We could work together if the future if desired.

We followed a “structured management” approach as described in Kiesler and Cummings. As K&C describe, this method somewhat alleviates the problems of distributed communication exploiting independent subtasks. However, under time pressure, we found that close proximity provided a remarkable efficiency boost over distributed work. Time constraints were an overriding issue throughout the semester, and the rapid flow of communication in face-to-face meant that during crunch time we would try to organize group “programming sessions” to speed up the process.

3 comments:

  1. I had a similar project a year ago where I worked with two other students to design a website for a real client. We actually ended up using doodle and google docs as our main tools for working out dates and tasks and stuff. I've never used basecamp, but I would be interested to see how that compares, because I'm sure it has a lot more features than doodle. I can also imagine that it was much harder to coordinate with six people as opposed to three. In general we ended up splitting up work a lot, but I also noticed that proximity helped our efficiency a lot. Even if you're working on different parts of a project, programming in the same room as someone else seems to be a lot easier. It helps to have fresh eyes when you encounter a bug, and it's often easier to picture the whole scope of a project when someone's working on another aspect of it next to you.

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. I am taking the software engineering course currently and we are working on how to divide up tasks and also what technology to use for project management. One issue that arises from distributed work is holding people accountable for their work. In Ftf group work, there are a lot of traces of who is doing what, who has done what. In a distributed collaborative environment, as simple as Google Docs even, the traces of work are less visible and it is harder to hold people accountable for their work.

    It is interesting to see that you used Ftf meetings in "crunch time" in order to get things done with higher efficiency. Is it possible that we are getting less done with all of the collaborative technologies that we have? Has Ftf communication become so valuable that we use it sparingly or only in times of need?

    ReplyDelete