Project:

 

Agile Widgets

Student Researchers:

 

Sarah Joseph,
Logan Kennedy

Advisor:

 

Carol Wellington

Institution:

 

Shippensburg University

Webpage:

 

http://clipper.ship.edu/~sehuddle/agilewidgets/





Project Description: goals and purpose of the project

Communication is a critical aspect of software development, especially in the Agile community. In fact, most Agile methods rely on face-to-face ad hoc communication to such a degree that it is difficult to deploy Agile techniques when teams are not co-located. Recent operating systems have included small GUI software applications called "widgets" that we are leveraging to support communication among distributed teams. We have spent this year studying the communication protocols in co-located Agile teams and built a prototype system of communication widgets that could be employed to aid in the scaling of Agile teams by providing not only communication paths, but also the social cues governing communication protocols.

Agile development strategies like Scrum and XP are gaining acceptance. These strategies depend upon rapid feedback and a high level of communication among team members. While these methods have been shown to be effective for small, co-located teams, they do not scale to teams that are too large to be co-located or to distributed teams (as discussed in [2]). Most software development projects are too large to be developed by teams of 15 to 20 engineers; this creates an interest in exploring ways that Agile strategies can be scaled. Most strategies for scaling Agile methods are organizational in nature, in that they focus on dividing the project into pieces so that small, relatively independent teams can proceed somewhat autonomously (like the structure advocated by [1]).

This project, has explored an alternative to scaling agility for larger teams. We have researched how new technologies such as widgets in the Mac dashboard and gadgets in Windows Vista can be leveraged to address some of the communication needs of larger teams. Many previous attempts at automating the communication agile teams require have been "pull systems" in that the engineer had to visit a web site or run an application to see the information. Our small-scale development of our widget is designed to push the information to engineers in much the same way big, visible, charts work. We have produced a series of widgets that will be able to push more information about the status of the project to the engineers. We have also paved a way for the design of an interface that will promote peer-to-peer communication among the team. Researching the best structure of this widget by creating and gathering information from a survey conveyed to the Agile programming community has already begun to take place.

Process used on the project

Our studies have shown the importance of 'big-visible charts' and immediate communication. Non co-located teams lack tools to allow this type of communication. As a result we set out to answer the following two questions:

In response to our research we have successfully been able to design and develop a widget that will "watch" a supplied source of information, such as a URL reader, and make decisions about whether the status of the source is good or bad. The status is based on a user-defined source, such as a JUnit build or simple web page. If the status of the page that the widget is watching is failing, for example the JUnit tests on a project are failing, the widget responds to this by turning the color red; likewise if the status on the page/JUnit test is passing, the widget will respond with a green color. The widgets are designed to stand on their own platform so that stability in running many widgets at the same time to watch different parts of a program, or system, is possible.

The second question mentioned above drove us to gather communication styles from Agile-practicing teams. We did this by conducting a controlled survey of the Agile community, and talking with an Agile group of programmers on campus. From this information, we were able to create a mock-up design of what the user interface of the communication widget would probably look like. This designed widget will aid in the communication between team members as a zoomable/scalable, widget on a platform that will support a variety of types of online communications (IM, Skype, email, etc.). The goal for this tool is to help solve the problems that distance creates when being in the same room is not an option for a development team.

Conclusions

As a result of our progress on this project, there are many possibilities for prospective opportunities for research. We have found that these widgets can be developed/designed rather easily - which opens the door to many opportunities. We have already begun to work on developing a set of widgets that will handle other types of data for specific readings which are not related to communication or build status of a software development project. This shows that the research we conducted is not limited to only one use, and is proving to be quite a valuable project in the programming community.

The research we have been able to conduct this year has given us the opportunity to branch out and explore new fundamental aspects of - not only development of a large project - but in the field of Computer Science as a discipline itself. The experience of investigating/producing something that is useful, and previously non-existent, has given us a greater confidence in our potential and helped us to realize that the possibilities in software development are limitless.

REFERENCES
[1] Leffingwell, Dean, Scaling Software Agility - Best Practices for Large Enterprises, Addison-Wesley, Upper Saddle River, NJ, 2007.
[2] Fitzgerald, Brian, Agerfalk, Par J. Flexible and Distributed Software Processes: Old Pentunias in New Bowls?, Communications of the ACM, October 2006, 27-34.

Websites Developed and Publications

Web pages developed:
  1. http://clipper.ship.edu/~sehuddle/agilewidgets
Papers or posters at conferences:
  1. Formal presentation of our project was given to a group of Shippensburg Alumni where we each presented one part of the project and entertained many questions from the alumni. Our project was also on display at Saint Joseph's University Research Symposium and Shippensburg University Research Project Fair, at which we were available to answer questions from the project observers. Having had the opportunity to present our project, both on campus and off, as well as answer questions in locations where we were on exhibit, helped us experience the customer-vendor relationship that will occur in our future careers.



Back to 2007-2008 Project Listing