























Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An insight into the use of extreme programming (xp) in the development of drjava, a pedagogic java ide. The author, charlie reis, shares his experience as a lead developer of drjava, having worked on the project during his undergraduate and graduate studies at rice university and his current phd program at the university of washington. The background of drjava, the benefits of xp, the development process, the team structure, the open-source license, and the tools and management used. It also discusses the challenges faced during the project and the lessons learned.
Typology: Study notes
1 / 31
This page cannot be seen from the preview
Don't miss anything!
























Charlie Reis CSE 403 Guest Lecture
1998-2002 (^) Undergrad at Rice University 2002- Masters at Rice, Lead DrJava developer 2003-Present UW PhD program (wireless networks, web browser security)
Pedagogic Java IDE
Simple, interactive, intuitive
Used at dozens of schools around the world
Freely available
Professor PhD Student (^) Masters Student Undergrad Undergrad^ Undergrads Comp 312
Make it freely available
Tool and management support
Incorporate code from others
Educational value
Credibility?
Java with generics (e.g., List
~400 classes, 50,000 lines of code
Complex
Two JVMs, plus multithreaded GUI
RMI, JDI, Custom Classloaders
Backward compatibility
Context:
Young project, quickly maturing
Small team (3 to 15), high turnover
Vocal customers (other schools)
Source code available to world
Set of development practices:
Safeguard for code quality
Can't commit without testing
Improves design of program APIs
Think about how to use before building
"Executable documentation"
Knowledge transfer
Two people coding at one machine
“Isn’t that a waste of effort?”
Knowledge transfer
Higher quality code
Stay on task
Getting up to speed
New DrJava developers paired with old
Course projects
Student pairs in Comp 312 ...for DrJava
Anyone could change any DrJava module
Many parts changed over time
Overhaul of indent logic
New approach for configuring options ...for DrJava
Release early and often!
Evolve in manageable amounts
Keep product stable and usable
React quickly to feedback