_____ uses an iterative process that repeats the design, development, and testing steps as needed, based on feedback from users.
a. Extreme programming
b. Joint application design
c. Rapid application development
d. Service-oriented architecture