Groupware can be classified based on when and where participants work, and the functions it performs to support cooperation. Key types include computer-mediated communication, meeting and decision support systems, and shared applications and artifacts. Effective groupware integrates communication, shared work objects, and awareness of who is participating and what changes have been made. Implementation challenges include managing feedback delays from networks and avoiding problems from concurrent edits.