Dr. Anita Sarma is an Assistant Professor at UNL. Her research includes coordination in distribution teams and software visualization. She taught CSCE 361 Software Engineering in the fall semester and heads the Interaction Design and Coordination Lab. She discusses teaching and research in the following article.
Dr. Anita Sarma is an Assistant Professor at UNL. Her research includes supporting software development in distributed teams and software visualization. She teaches Human Computer Interaction and Software Engineering at the undergraduate level and Empirical Software Engineering at the graduate level. She heads the Interaction Design and Coordination Lab. In the following, she discusses her current research in software collaboration, teaching Software Engineering (which she taught past fall), and her work in the Interaction Design and Coordination Lab.
A key problem in today’s software development is coordinating development efforts that take place across multiple teams. Complex code dependencies lead to social dependencies among developers, which we call socio-technical dependencies. Teams typically coordinate through configuration management systems, issue trackers, and meetings. Dr. Sarma likens this coordination to fitting the pieces of a Lego puzzle together. The big difference is that all these dependencies are invisible, the team is often distributed geographically, the dependencies evolve over time, and development needs to occur concurrently. Coordination problems often manifest as development conflicts when two members edit the same file in parallel or a changes in one piece of code causes failures in another dependent piece of code. These conflicts require significant development efforts to resolve and often lead to cost overruns and missed deadlines. Further, those conflicts that are not identified during development remain hidden as software defects. Given how we are dependent on software (e.g., the typical BMW car contains close to 100 million lines of software code), identifying and avoiding any software defects is extremely important.
Sarma aims “to build tools to identify and avoid these conflicts proactively”. Her dissertation focused on monitoring software development in a team to identify and alert team members of potential conflicts that might arise because of ongoing parallel changes. The system, Palantír, performed static program analysis to identify which changes are incompatible and notify developers of these potentially conflicting changes, so that they can coordinate while changes are still in progress. She is now working on a new project called Cassandra, supported by an NSF grant, which makes conflict detection even more proactive by attempting to minimize conflicts in a team by rescheduling tasks. This novel conflict minimization technique evaluates task constraints based on technical dependencies in a project to recommend optimum task orders for each developer. A key goal is to proactively determine conflicting tasks – tasks that will conflict when performed in parallel and appropriately schedule them to recommend conflict-free development paths. This work ha been accepted for publication in ICSE – a top tier software engineering conference.
Sarma currently runs the Interaction Design and Coordination Lab, which is a part of the ESQuaReD software engineering lab at UNL. She incorporates her research and works with six graduate and two undergraduate students on many aspects of the above research. One new project that the lab is undertaking involves crowd sourcing. The idea is that which lies behind websites such as Wikipedia, that the opinion of the crowd is greater than the opinion of one or two experts. She focuses on what can be done about this in software engineering. Would it be possible to create an “exchange” where different projects submit their bugs (or tasks) and the system can identify developers who can perform those tasks not only based on their expertise but also based on their career goals? How would the system identify the expertise needed for a task? How can the system identify the career goals of the developer? What really stands out though is the focus on the user and not simply the project that needs the task performed. She believes that this will change the way that many websites and projects are run.
Another very exciting project that Sarma is currently working on with a group of undergraduate students is creating gesture-based interaction by implementing a Jackson Pollock-like painting application that uses the Microsoft Kinect sensors. The application tracks user movements to determine brushstrokes, change the paint color, and splatter paint on the screen. The team is looking to allow multiple users to simultaneous paint on the canvas and incorporate music that interacts with the brush strokes and paint changes. They are currently in talks with the Sheldon Art Museum to set up the projects as an installation artwork during the Jazz in June festival.
Sarma also teaches CSCE 361 (Software Engineering), which not only lets students explore “the general life cycle of software development” but also allows them to gain experience with hands on projects and exposes them to challenges that they will face in the work force. A project that students have to implement is building their own version of Twitter, with a reasearcher posing as their customer. This involves the customer changing their mind and students learning the difficulty of making on-the-spot suggestions and the possibility of raising expectations to unachievable levels. This exercise teaches students how to get a contract and work with clients, getting enough information to get a satisfactory end-result.
She also focuses on showing students their work in a real-world experiment. She used Sebastian Elbaum’s program “Bug Hunt”, which requires students to debug and identify bugs that were seeded in the program. At the end of class, Sarma ran the revised cases through “Bug Hunt”, which allowed the teams to see how they did. She also initiated a fun activity where students are tested about UI design with Design notes (flash) cards and discuss in groups what they have learned and how the concept relates to their current projects. Both make the subject material interactive and exciting.
Sarma offers advice to undergraduates that are torn between pursuing computer science and computer engineering. She says to look at the current projects going on in the department to decide what looks interesting. This information can be found on the faculty websites. Talk to graduate students about their research.
Finally, Sarma says to have fun in conducting research while focusing on good science. If a paper is not being accepted then focus on the science part and the rest will fall into place.