Introduction to the cooperation principles in software development - Part II
1. Introduction to the cooperation
principles in software development
Part II
Prof. Dr. Febe Angel Ciudad-Ricardo
fciudad@uci.cu
University of Informatics Sciences (UCI), Havana, Cuba
May 10th
, 2021
2. Content
● Summary of Part I
● Tools for cooperation/collaboration in SE
● Relationships of cooperation/collaboration in SE
with others computer science movements and
fields
● Future work in ELINF project SE philosophy
● Conclusions?
2
5. Levels of cooperation/collaboration in SD
5
Team
Company
Coun-
try ● Organizational
● Temporal
● Socio-cultural
● Cognitive & educational
● Geographical
● Political
● Economical
6. Levels of challenges for
cooperation/collaboration in SD
6
• Interpersonal conflicts,
• Cultural background,
• Version control,
• Lack of cooperation, task
allocation and collaboration
● Politics and policies,
● Reduced transparency,
● Understanding of
requirements rationale,
● Team cohesiveness,
● Lack of informal contacts and
textual information,
● Integration,
● Diverse terminologies,
● Time overlap, and
● Different engineering
approaches
1. Communication,
2. Knowledge sharing and transfer,
3. Coordination,
4. Linguistic issues,
5. Project and process management,
6. Tool management,
7. Software architecture, and
8. Hardware configuration
CRITICAL
CHALLENGES
WRAPPING
CHALLENGES
7. Areas for cooperation/collaboration in SE
7
business
models
approaches
methods
methodologies
conceptions
patterns architectures
designs
development
storage
verification
& validation
releasing
TECHNO-
LOGICAL
MODELLING
PROCE-
DURAL
8. Tools for cooperation/collaboration in SD
8
Collaborative
Development
Environment (CDE)
Communi-
cations
Tools
Web 2.0
Apps
Build
Tools
Trackers
Modelers
Knowledge
Centers
Lanubile, F.; Ebert, C.;
Prikladnicki, R. & Vizcaíno, A.
(2010). Collaboration Tools for
Global Software Engineering,
IEEE Software, 27 (2), 52-55.
ISSN: 1937-4194. DOI:
10.1109/MS.2010.39
Versión
-Control
System
9. Tools for cooperation/collaboration in SD
9
Collaborative
Development
Environment (CDE)
Communi-
Cations
Tools
Versión
-Control
System
Web 2.0
Apps
Build
Tools
Trackers
Modelers
Knowledge
Centers
Version-control systems is a
category of software tools that
records changes made to a file
or set of files over time by
keeping a track of modifications
done to the code, so that we can
recover specific versions later
back in time.
This category of software tool
helps the developer team to
efficiently communicate and
manage(track) all the changes
that have been made to the
source code along with the
information like who made and
what change has been made.
10. Tools for cooperation/collaboration in SD
10
Collaborative
Development
Environment (CDE)
Communi-
cations
Tools
Versión
-Control
System
Web 2.0
Apps
Build
Tools Modelers
Knowledge
Centers
Trackers
Trackers are a category of
software tools used to manage
issues (or “tickets”)
such as defects, changes, or
requests for support from the
developers and/or the users
communities; and the tracking
function centers reside on a
database that all team members
and users can access through
the Web.
11. Tools for cooperation/collaboration in SD
11
Collaborative
Development
Environment (CDE)
Communi-
cations
Tools
Versión
-Control
System
Web 2.0
Apps
Modelers
Knowledge
Centers
Trackers
Build
Tools
Build tools is another category
of software tools that let projects
maintain remote repositories
and create and schedule
workflows. The workflows
facilitate continuous integration
for executing scripts, compiling
binaries, invoking test
frameworks, deploying to
production systems, and
sending email notifications to
developers. A Web-based
dashboard shows the status of
current and past builds.
12. Tools for cooperation/collaboration in SD
12
Collaborative
Development
Environment (CDE)
Communi-
Cations
Tools
Versión
-Control
System
Web 2.0
Apps Knowledge
Centers
Trackers
Build
Tools Modelers
Modelers (part of the CASE
tools) is another category of
software tools that let the
project team members do
model-based collaboration.
This category distinguishes
collaborative SE from other
more general cooperation
activities where we share
only files and not content.
This kind of tool help
developers create formal or
semiformal software artifacts,
including visual Unified
Modeling Language (UML)
models and customized
software processes.
13. Tools for cooperation/collaboration in SD
13
Build
Tools
Collaborative
Development
Environment (CDE)
Communi-
cations
Tools
Versión
-Control
System
Web 2.0
Apps
Trackers
Modelers
Knowledge
Centers
Knowledge Centers is a Content Management System
(CMS) for sharing explicit and tacit knowledge on the
Web. This kind of software tool makes every project
team member be able to access any knowledge
resource shared by her/his colleagues to learn and
increase skills and capabilities. Knowledge Centers
also support trainings and the evaluation of how every
team member growth for new and more complex
tasks.
14. Tools for cooperation/collaboration in SD
14
Collaborative
Development
Environment (CDE)
Versión
-Control
System
Web 2.0
Apps
Trackers
Build
Tools Modelers
Knowledge
Centers
Communi-
cations
Tools
Communication Tools is a very big group of software tools
used by project team members during their SE tasks for
synchronous and asynchronous communication to help them
keep updated about the project execution and product
development.
This category is not exclusive of the SE field, but belongs to a
wider spectrum of social and occupational dynamics needed
for strengthening the cohesion and relationships of the project
team.
Within this group of tools we may find: email, chat, blog,
videoconferencing, voice over IP, instant messaging, online
edition, etc.
15. Tools for cooperation/collaboration in SD
15
Collaborative
Development
Environment (CDE)
Versión
-Control
System
Trackers
Build
Tools Modelers
Knowledge
Centers
Communi-
Cations
Tools
Web 2.0
Apps
Web 2.0 Applications is also a very big group of software tools
used by project team members during their SE tasks for direct
user contributions, rich interactions, and community building. This
way these tools are a valuable form to increase the informal
communication exchange among team members, and for creating
and maintaining group communication and documentation.
This category is not also a exclusive one of the SE field, but
belongs to a broader group of tools needed for strengthening the
online collaboration among the team members.
Within this group of tools we may find: wiki, blog, professional
networks, collaborative tagging systems, etc.
16. 16
Lanubile, F.; Ebert, C.; Prikladnicki, R. & Vizcaíno, A. (2010:54). Collaboration Tools for Global
Software Engineering, IEEE Software, 27 (2), 52-55. ISSN: 1937-4194. DOI: 10.1109/MS.2010.39
18. Cooperation/collaboration in SD and others
computer science movements & fields
18
● Participating in a
community
● Transparency for easier
troubles solutions
● Open standards source
code
● Decentralization
● Shared tools and
resources
● Openness
● Global
19. Cooperation/collaboration in SD and others
computer science movements & fields
19
● Participating in a
community
● Transparency for easier
troubles solutions
● Open standards source
code
● Decentralization
● Shared tools and
resources
● Openness
● Global
● Encourage collaboration
environments
● Shared responsibility
● Promote continuos
improvement
● Computerize (almost)
everything
● Embrace failure and learn
from it
● Merge team and
experience
20. 20
Questier, F. (2021). Free Libre Open Source Software Development – Part II. April 2021 ELINF
Webinars. http://www.slideshare.net/Frederik_Questier
Future work in ELINF project SE philosophy
21. 21
Questier, F. (2021). Free Libre Open Source Software Development – Part II. April 2021 ELINF
Webinars. http://www.slideshare.net/Frederik_Questier
Future work in ELINF project SE philosophy
22. 22
Questier, F. (2021). Free Libre Open Source Software Development – Part II. April 2021 ELINF
Webinars. http://www.slideshare.net/Frederik_Questier
Future work in ELINF project SE philosophy
23. Levels of cooperation/collaboration in SD
(ELINF specific context)
23
Team
Partner
Universities
Project
● Organizational
● Temporal
● Socio-cultural
● Cognitive & educational
● Geographical
● Political
● Economical
1. Communication,
2. Knowledge sharing and transfer,
3. Coordination,
4. Linguistic issues,
5. Project and process management,
6. Tool management,
7. Software architecture, and
8. Hardware configuration
CRITICAL
CHALLENGES
24. Conclusions?
24
● Current SE practices have adopted a large number of
principles from openness philosophy in the SD.
● Collaboration/cooperation in SD brings benefits to enjoy,
but also challenges to fight and risks to mitigate.
● The project is a context for learning and sharing, rather
than a place to hide and compete.
● Tools are for collaborating and save time, effort, storage,
risks, faults.
● Changes in procedures, need changes in mindset and
behaviors.
25. Introduction to the cooperation
principles in software development
Part II
Prof. Dr. Febe Angel Ciudad-Ricardo
fciudad@uci.cu
University of Informatics Sciences (UCI), Havana, Cuba
May 10th
, 2021