web collaboration for software engineering
DESCRIPTION
My presentation for my master thesis. Main contents are: - Research on CSCW, Groupware, Social Software and Software Engineering - Analysis of 47 Software Engineering tools - Web prototype developed in Ruby on Rails - Experiment for testing the prototype It's in English.TRANSCRIPT
WEB COLLABORATION FOR SOFTWARE ENGINEERING
Tiago Mourão Teixeira
Supervisor: Ademar Aguiar, Co-supervisor: Nuno Flores
MIEIC - 17 July 2009
2
PRESENTATION OUTLINE
Collaboration: What and why?
Background on collaboration research areas
Collaborative Software
Software Engineering Tools
Problem Statement and Solution
Prototype and Experiment
Conclusions and Future Research
3
COLLABORATION: WHAT IS?
+
Collaboration is a process where two or more partieswork together towards a common goal.
4
COLLABORATION: WHY?
Social nature
Complexity
Dimension
5
BACKGROUND ON COLLABORATION RESEARCH AREAS
Groupware
Computer-Supported Collaborative Work (CSCW)
Collaboration in Software Engineering
6
GROUPWARE
Original definition: “intentional group processes plus software to
support them” (Peter and Trudy Johnson-Lenz)
Main goal Use computers to assist groups in:
Communicating
Collaborating
Coordinating
7
CSCW
Definition: “ CSCW examines the possibilities and effects of
technological support for humans involved in collaborative group communication and work processes” (J. M. Bowers and S.D. Benford)
Interdisciplinary field
CSCWComputer scientists
Social scientists
Psychologists
Cognitive scientists and ergonomists
Human-computer interaction researchers
8
GROUPWARE VS. CSCW
Group work analysis
+Technology’s
impact on group behavior
Technologies aiding
group work
CSCW
Groupware
9
CSCW CLASSIFICATION
Same time Different time
Same place
•Electronic meeting systems
•Roomware
•Single display groupware
•Large public displays
•Team rooms
Different place
•Collaborative real-time editors
•Instant Messaging
•Video conferencing
•Voice over Internet Protocol
•Blogs
•Group calendars
•Internet forums
•Microblogs
•Version Control Systems
•Wikis
10
Categories of collaboration
Unstructured communication Coordination (E-mail, IM, …) Meetings and conversations in workplace
Structured communication Formal and semi-formal artifacts (Reports, Diagrams, ...) Each artifact has its own model
COLLABORATION IN SOFTWARE ENGINEERING
11
Model-based collaboration
Shared meaning
Reduceambiguity
New models
COLLABORATION IN SOFTWARE ENGINEERING
12
COLLABORATIVE SOFTWARE: ASYNCHRONOUS AND DIFFERENT PLACE CSCW
Blogs• Variety of types, content and social features.• Lack of effective protection of the blogger.
E-mail• Simplicity. Widely used.• Loss of information context. Information overload.
Group calendars• Less conflict and effort in scheduling.• Risk of calendar being outdated.
Internet forums• Organization in categories.• Distinction between posters and moderators.
13
COLLABORATIVE SOFTWARE: ASYNCHRONOUS AND DIFFERENT PLACE CSCW
Microblogs• Awareness.
• Limited content’s richness.
Version Control Systems• Revision history.
• Resolution of conflicts.
Wikis• Collective intelligence.
• Quality of the content.
14
COLLABORATIVE SOFTWARE: ASYNCHRONOUS AND SAME PLACE CSCW
Large public displays
• Big dimensions and input devices.
• Research of applications.
Team rooms
• Permanent shared space.
• Participants in one place.
15
COLLABORATIVE SOFTWARE: SYNCHRONOUS AND DIFFERENT PLACE CSCW
Collaborative real-time editors• Multi-user simultaneous editing of the same file.• Not strictly real-time.
Instant messaging• Real-time communication. Saving conversations.• Not fit for long and detailed conversations.
Videoconferencing• Join many people in one meeting. • High speed Internet connectivity requirement.
Voice over Internet Protocol• Low operational and installation cost.• Quality of Service.
16
COLLABORATIVE SOFTWARE: SYNCHRONOUS AND SAME PLACE CSCW
Electronic meeting systems• Productivity.
• Requires networked computers, a projection screen and EMS software.
Roomware• Real room’s objects + computer-based support.
• Infrastructure’s requirements.
Single display groupware• Shared computer, with a shared display.
• Single display.
17
COLLABORATIVE SOFTWARE: SOCIAL SOFTWARE
Feeds
• Agglomerates information with minimal user’s intervention.
• Visibility.
Folksonomies
• Users own vocabulary.
• Synonym control.
18
Social bookmarking• Portability.
• URLs produced unlikely to impact the crawl ordering of a major search engine.
Social cataloging• Virtually can be cataloged.
• Sending unwanted invitations.
Social online storage• Resources available anytime, anywhere.
• Third party.
COLLABORATIVE SOFTWARE: SOCIAL SOFTWARE
19
SOFTWARE ENGINEERING TOOLS
47 tools distributed among 6 areas:
Bug Tracking; 5
Collabora-tion; 7
Construction; 9
Design; 13
Engineering Management;
8
Requirements; 5
20
SOFTWARE ENGINEERING TOOLS: CRITERIA
Collaboration Awareness
Communication
Collective Knowledge
Integration
Other characteristics
Team awarenes
s
Resources
awareness
Context awareness
21
SOFTWARE ENGINEERING TOOLS: OPEN ISSUES
E-mail Depended on external services Used primarily for notification purposes
Group calendars Lack in the Engineering Management area
25%
75%
Group calendars
YesNo
22
SOFTWARE ENGINEERING TOOLS: OPEN ISSUES
Lack of features popular in the Web
6%
94%
BlogsYesNo
4%
96%
MicroblogsYesNo
2%
98%
Social networksYesNo
13%
87%
WikiYesNo
13%
87%
TaggingYesNo
23
SOFTWARE ENGINEERING TOOLS: OPEN ISSUES
Inexistence of: Online whiteboard
Usages: draft of a diagram (Design) Recommender Screen sharing Social bookmarking Social cataloging
Lack of:4%
96%
Videoconferenc-ing Yes No
4%
96%
VoIPYesNo
11%
89%
VotingYesNo
24
PROBLEM STATEMENT
Two gaps in the state of the art
Need for better web-based tools covering a project’s life cycle
Few studies on the impact of integrating collaboration features in those tools, by designing and conducting an experiment
25
PROBLEM STATEMENT
Uniqueness of the problem
Collaboration tools Lack of support for the life-cycle of a project The majority provided support by integration with
other tools
Studies Measured the effects of collaboration in the workplace
Lack of features integrated in web-based tools Didn’t monitor the life-cycle of a project
However…
26
SOLUTION
First gap: Integrate collaboration features as plugins into a
web-based tool (Redmine) and cover the life-cycle of a project
Second gap: Design and conduct an experiment for assessing
the prototype’s effectiveness.
27
PROTOTYPE
Features integrated as plugins into Redmine, a project management web application
28
PROTOTYPE
Features analyzed according to four criteria: Time Value Innovation Preference
Developed features Integrated features
•Blogs•Contact Management•Microblogs•Ratings•Recommendations•Search•Social bookmarking•Social cataloging•Social networking
•Dashboard•E-mail•Feeds•IM/Chat•Polls•Software Engineering•Tags
29
PROTOTYPE
Recommendations
30
PROTOTYPE
Social networking
31
PROTOTYPE
Architectural patterns: 3-tier and MVC
32
PROTOTYPE
Logical architecture
33
PROTOTYPE
Physical architecture
34
EXPERIMENT
Experimental Group
Control Group
35
EXPERIMENT
Subjects must be: Familiar of collaborative software. Have participated at least in one Software Engineering
project. Be willing perform teamwork.
Attributes of interest: Task completion time. Tools used.
9 tasks for developing game Pong in Scratch, an interactive programming language.
Experiment wasn’t conducted due to the subjects’ unavailability.
36
CONCLUSIONS
Objectives were in its majority successfully achieved
Relevant achievements
Depth and broadness of the research
Degree of integration between plugins
High number of implemented requirements
37
CONCLUSIONS
Contributions
Research multiple areas and use them to prioritize the features
Innovation: Prototype Recommendations, Social bookmarking and Social
cataloging plugins
Experiment
38
CONCLUSIONS
Future Research Conduct the experiment
Resolve the identified open issues
Fields of study Integration between web and desktop-based tools Effective support for Global Software Development Migration of tools to the web
Prototype’s future developments E-mail with tags E-mail and feeds notifications of “watched” users’ actions Recommendations based on implicit data collection
The prototype only provides generic support
39
DISCUSSION
Thank you!