- Faculty: Armando Fox
- Students: Karthik Sreedhar, Srujay Korlakunta (undergraduate)
- Alumni: An Ju (PhD); Joshua Zeitsoff (MS); Adnan Hemani, Xiao Fu (undergraduate)
- Collaborators: Pablo Fernández Montes, Institute for Applied Software, University of Seville, Spain (current); Yannis Dimitriadis, Univ. de Valladolid, Spain (former)
Team skills are crucially important in software engineering. Most modern teams use some form of Agile development, in which a collaborative, tool-intensive, but well-structured workflow allows teams to smoothly divide up work, coordinate the merging of their efforts, and maintain a high quality codebase while spreading knowledge of the codebase around the team.
Mentoring a team to ensure they’re following these processes is high-touch. Our goal is to collect telemetry from the multiple
tools student teams use to learn Agile development, to define Team Practice Agreements
that quantitatively capture “best practices” for Agile teams, and to provide real-time feedback to student team members on how well they are following the team practices and where they could improve.
The tools and techniques developed in this project are routinely deployed and piloted in UC Berkeley CS 169 Software Engineering
Selected recent publications
Alejandro Guerrero, Rafael Fresno, An Ju, Armando Fox, Pablo Fernández, Carlos Muller, and Antonio Ruiz-Cort ́es. “Eagle: A Team Practices Audit Framework for Agile Software Development
”. In: ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE). Tallinn, Estonia, 2019.
- We develop a methodology and tools to help teams monitor their performance on complex Agile team practices supported by multiple web-based tools. We express practices in terms similar to those developed for expressing service level objectives (SLO) : ”over any 2-week iteration, 75% of stories should be ’1-point’ stories”. We adapt a system originally developed for SLO monitoring to consume and analyze data exhaust from widely-used tools such as GitHub and Pivotal Tracker and provides a ”dashboard” summarizing the teams’ adherence to various practices. A pilot study found that undergraduate software engineering students using the tool improved their adherence to team practice and had more positive self-evaluations compared to previous cohorts that were taught the same practices but lacked the tool.
- Video demo of the tool
- Live demo
An Ju, Adnan Hemani, Yannis Dimitriadis, and Armando Fox. “What Agile Processes Should We Use in Software Engineering Course Projects?
” In: 51st ACM Technical Symposium on Computer Science Education (SIGCSE 2020). Portland, OR, USA, 2020.
- We combine a field study on professional Agile (eXtreme Programming, XP) teams and an established team process taxonomy to proactively select which team processes to incorporate in a project-based software engineering course. We find that adding these new processes does not interfere with existing learning opportunities in the course, that student teams experience similar benefits from these new processes as professional teams do, and that students appreciate the usefulness and value of the processes. In other words, our approach allows instructors to make conscious choices of XP processes that improve student learning outcomes while exposing students to a more complete set of processes and thus preparing them better for professional careers.
An Ju, Xiao Fu, Joshua Zeitsoff, Adnan Hemani, Yannis Dimitriadis, and Armando Fox. “Scalable Team-Based Software Engineering Education via Automated Systems”. In: Fifth International Conference on Learning With MOOCs. IEEE. Madrid, Spain, Sept. 2018.
An Ju and Armando Fox. “Measuring Software Engineering Processes with Teamwork Telemetry for Project Evaluation”. In: 23rd Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE 2018). Cyprus, July 2018.