SlideShare a Scribd company logo
Collaborative Software
Development
Alexander Serebrenik

a.serebrenik@tue.nl#WOCinTech Chat
Any fool can write code
that a computer can
understand.
Good programmers
write code that humans
can understand.
Martin Fowler
software developer, author,
speaker
Collaborative Software Development
How do developers
communicate?
How do developers
communicate?
1 component =
1 concern
reuse, independent development
Separation of concerns
Design
Interface
(API)
https://youtu.be/
s7wmiS2mSXY?t=1m5s
User
Producer
API
Who can help me?
API API API API
What functionality
do I want?
#WOCinTech Chat
function bs(x){

ย  ย var l = x.l;

ย  ย for (var m = l-1; m>=0; m--) {

ย  ย  ย for (var q = 1; q<=m; q++) {

ย  ย  ย  ย if (x[q-1]>x[q]) {

ย  ย  ย  ย  ย  ย var s = x[q-1];

ย  ย  ย  ย  ย  ย x[q-1] = x[q];

ย  ย  ย  ย  ย  ย x[q] = s;

ย  ย  ย  ย  }

ย  ย  ย }

ย  ย }

ย  ย return x;

}
function bs(x){

ย  ย var l = x.l;

ย  ย for (var m = l-1; m>=0; m--) {

ย  ย  ย for (var q = 1; q<=m; q++) {

ย  ย  ย  ย if (x[q-1]>x[q]) {

ย  ย  ย  ย  ย  ย var s = x[q-1];

ย  ย  ย  ย  ย  ย x[q-1] = x[q];

ย  ย  ย  ย  ย  ย x[q] = s;

ย  ย  ย  ย  }

ย  ย  ย }

ย  ย }

ย  ย return x;

}

function bubbleSort(arr) {

ย  ย var len = arr.length;

ย  ย for (var i = len-1; i>=0; i--) {

ย  ย  ย for (var j = 1; j<=i; j++) {

ย  ย  ย  ย if (arr[j-1]>arr[j]){

ย  ย  ย  ย  ย  ย var temp = arr[j-1];

ย  ย  ย  ย  ย  ย arr[j-1] = arr[j];

ย  ย  ย  ย  ย  ย arr[j] = temp;

ย  ย  ย  ย  }

ย  ย  ย }

ย  ย }

ย  ย return arr;

}
Variable
names matter
Isnโ€™t arr.sort() better?
Share!
Collaborative Software Development
Collaborative Software Development
Bugs, suggestions
of new features, โ€ฆ
Code
Code changes
suggested by
(external) contributors
Popularity
Derived
projects
Integrated code changes
suggested by (external)
contributors
Of๏ฌcial milestones
Community License
language:	python	
python:	
		-	"2.7"	
-	โ€œ3.4"	
before_install:	
		-	if	[[	"$TRAVIS_PYTHON_VERSION"	==	"2.7"	]];	then	
						wget	https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh	-O	miniconda.sh;	
				else	
						wget	https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh	-O	miniconda.sh;	
				fi	
	<โ€ฆ>	
install:	
		#	Install	recipy.	
		-	python	setup.py	install	
	<โ€ฆ>	
script:	
		-	cd	test/	&&	behave	
		-	cd	..	
		#	Run	py.test	with	'v'	(verbose)	to	show	test	function	names	and			
		#	'rs'	to	show	reasons	for	skipped	tests	
		-	py.test	-v	-rs	integration_test
Travis-CI
Travis-CI in
Apache Thrift
Collaborative Software Development
Collaborative Software Development
Collaborative Software Development
Collaborative Software Development
Collaborative Software Development
Atze W. Hold
1. Think about the APIs before the implementation

2. Variable names (and, broader, readability) matter

3. Be lazy: reuse! โ€œNot built hereโ€ is not a sin. 

4. Share using modern technologies: GitHub vs USB sticks

5. Automate change submission and build in quality checks

6. Control your technical debt
7. Talk to software engineering people: we donโ€™t always have
solutions but we can think together with you!

More Related Content

Similar to Collaborative Software Development (20)

PPTX
Eclipse Con 2015: Codan - a C/C++ Code Analysis Framework for CDT
Elena Laskavaia
ย 
PPT
Visual Studio .NET2010
Satish Verma
ย 
DOCX
C
Pavan Gupta
ย 
PPTX
PVS-Studio, a solution for resource intensive applications development
OOO "Program Verification Systems"
ย 
PPT
Python programming
saroja20
ย 
PDF
Effective Object Oriented Design in Cpp
CodeOps Technologies LLP
ย 
PPTX
Next .NET and C#
Bertrand Le Roy
ย 
PPT
An Overview Of Python With Functional Programming
Adam Getchell
ย 
PDF
The Present and The Future of Functional Programming in C++
Alexander Granin
ย 
PPTX
A Replay Approach to Software Validation
James Pascoe
ย 
KEY
Remix Your Language Tooling (JSConf.eu 2012)
lennartkats
ย 
PPT
F# and the DLR
Richard Minerich
ย 
PDF
Hack Like It's 2013 (The Workshop)
Itzik Kotler
ย 
PPT
C program compiler presentation
Rigvendra Kumar Vardhan
ย 
PDF
Clojure, Plain and Simple
Ben Mabey
ย 
PDF
Specialized Compiler for Hash Cracking
Positive Hack Days
ย 
PPTX
Novidades do c# 7 e 8
Giovanni Bassi
ย 
PDF
Clojure intro
Basav Nagur
ย 
PPTX
Python
Gagandeep Nanda
ย 
PPT
IronPython and Dynamic Languages on .NET by Mahesh Prakriya
codebits
ย 
Eclipse Con 2015: Codan - a C/C++ Code Analysis Framework for CDT
Elena Laskavaia
ย 
Visual Studio .NET2010
Satish Verma
ย 
PVS-Studio, a solution for resource intensive applications development
OOO "Program Verification Systems"
ย 
Python programming
saroja20
ย 
Effective Object Oriented Design in Cpp
CodeOps Technologies LLP
ย 
Next .NET and C#
Bertrand Le Roy
ย 
An Overview Of Python With Functional Programming
Adam Getchell
ย 
The Present and The Future of Functional Programming in C++
Alexander Granin
ย 
A Replay Approach to Software Validation
James Pascoe
ย 
Remix Your Language Tooling (JSConf.eu 2012)
lennartkats
ย 
F# and the DLR
Richard Minerich
ย 
Hack Like It's 2013 (The Workshop)
Itzik Kotler
ย 
C program compiler presentation
Rigvendra Kumar Vardhan
ย 
Clojure, Plain and Simple
Ben Mabey
ย 
Specialized Compiler for Hash Cracking
Positive Hack Days
ย 
Novidades do c# 7 e 8
Giovanni Bassi
ย 
Clojure intro
Basav Nagur
ย 
Python
Gagandeep Nanda
ย 
IronPython and Dynamic Languages on .NET by Mahesh Prakriya
codebits
ย 

More from Alexander Serebrenik (20)

PDF
Peer Reviews MSR 2025: tutorial for the Junior PC
Alexander Serebrenik
ย 
PDF
Studying Humans in Software Engineering [Keynote talk at BPM 2024]
Alexander Serebrenik
ย 
PDF
Software development is a human activity: understanding software requires und...
Alexander Serebrenik
ย 
PPTX
Towards Continuous Performance Assessment of Java Applications With PerfBot
Alexander Serebrenik
ย 
PPTX
โ€œSTILL AROUNDโ€: Experiences and Survival Strategies of Veteran Women Software...
Alexander Serebrenik
ย 
PPTX
A Qualitative Study of Developersโ€™ Discussions of Their Problems and Joys Dur...
Alexander Serebrenik
ย 
PPTX
Emotion Analysis in Software Ecosystems
Alexander Serebrenik
ย 
PPTX
Investigating the Resolution of Vulnerable Dependencies with Dependabot Secur...
Alexander Serebrenik
ย 
PDF
Gender and Age in Software Engineering
Alexander Serebrenik
ย 
PDF
Alexander - intro
Alexander Serebrenik
ย 
PDF
Diversity and inclusion in a CS classroom
Alexander Serebrenik
ย 
PDF
An Empirical Assessment on Merging and Repositioning of Static Analysis Alarms
Alexander Serebrenik
ย 
PDF
Classification and Ranking of Delta Static Analysis Alarms
Alexander Serebrenik
ย 
PDF
What Is an AI Engineer? An Empirical Analysis of Job Ads in The Netherlands
Alexander Serebrenik
ย 
PDF
Gender and Community Smells
Alexander Serebrenik
ย 
PPTX
Bias in MSR Research
Alexander Serebrenik
ย 
PDF
From team organisation to software quality
Alexander Serebrenik
ย 
PDF
Women in Dutch Computer Science: Best Practices for Recruitment, Onboarding a...
Alexander Serebrenik
ย 
PDF
My research story (presentation at ICSE 2021 New Faculty Symposium)
Alexander Serebrenik
ย 
PDF
Opinion Mining for Software Engineering
Alexander Serebrenik
ย 
Peer Reviews MSR 2025: tutorial for the Junior PC
Alexander Serebrenik
ย 
Studying Humans in Software Engineering [Keynote talk at BPM 2024]
Alexander Serebrenik
ย 
Software development is a human activity: understanding software requires und...
Alexander Serebrenik
ย 
Towards Continuous Performance Assessment of Java Applications With PerfBot
Alexander Serebrenik
ย 
โ€œSTILL AROUNDโ€: Experiences and Survival Strategies of Veteran Women Software...
Alexander Serebrenik
ย 
A Qualitative Study of Developersโ€™ Discussions of Their Problems and Joys Dur...
Alexander Serebrenik
ย 
Emotion Analysis in Software Ecosystems
Alexander Serebrenik
ย 
Investigating the Resolution of Vulnerable Dependencies with Dependabot Secur...
Alexander Serebrenik
ย 
Gender and Age in Software Engineering
Alexander Serebrenik
ย 
Alexander - intro
Alexander Serebrenik
ย 
Diversity and inclusion in a CS classroom
Alexander Serebrenik
ย 
An Empirical Assessment on Merging and Repositioning of Static Analysis Alarms
Alexander Serebrenik
ย 
Classification and Ranking of Delta Static Analysis Alarms
Alexander Serebrenik
ย 
What Is an AI Engineer? An Empirical Analysis of Job Ads in The Netherlands
Alexander Serebrenik
ย 
Gender and Community Smells
Alexander Serebrenik
ย 
Bias in MSR Research
Alexander Serebrenik
ย 
From team organisation to software quality
Alexander Serebrenik
ย 
Women in Dutch Computer Science: Best Practices for Recruitment, Onboarding a...
Alexander Serebrenik
ย 
My research story (presentation at ICSE 2021 New Faculty Symposium)
Alexander Serebrenik
ย 
Opinion Mining for Software Engineering
Alexander Serebrenik
ย 
Ad

Recently uploaded (20)

PDF
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
ย 
PDF
Troubleshooting Virtual Threads in Java!
Tier1 app
ย 
PDF
Why Are More Businesses Choosing Partners Over Freelancers for Salesforce.pdf
Cymetrix Software
ย 
PDF
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
ย 
PDF
Step-by-Step Guide to Install SAP HANA Studio | Complete Installation Tutoria...
SAP Vista, an A L T Z E N Company
ย 
PDF
How AI in Healthcare Apps Can Help You Enhance Patient Care?
Lilly Gracia
ย 
PDF
Enhancing Security in VAST: Towards Static Vulnerability Scanning
ESUG
ย 
PPTX
Cutting Optimization Pro 5.18.2 Crack With Free Download
cracked shares
ย 
PDF
Adobe Illustrator Crack Full Download (Latest Version 2025) Pre-Activated
imang66g
ย 
PDF
Virtual Threads in Java: A New Dimension of Scalability and Performance
Tier1 app
ย 
PDF
Odoo Customization Services by CandidRoot Solutions
CandidRoot Solutions Private Limited
ย 
PDF
How Agentic AI Networks are Revolutionizing Collaborative AI Ecosystems in 2025
ronakdubey419
ย 
PDF
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
ย 
PDF
Malaysiaโ€™s e-Invoice System: A Complete Guide for Businesses
Matiyas Solutions
ย 
PDF
What companies do with Pharo (ESUG 2025)
ESUG
ย 
PPTX
TRAVEL APIs | WHITE LABEL TRAVEL API | TOP TRAVEL APIs
philipnathen82
ย 
PPTX
TexSender Pro 8.9.1 Crack Full Version Download
cracked shares
ย 
PPTX
Presentation about Database and Database Administrator
abhishekchauhan86963
ย 
PPTX
Operations Profile SPDX_Update_20250711_Example_05_03.pptx
Shane Coughlan
ย 
PDF
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
ย 
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
ย 
Troubleshooting Virtual Threads in Java!
Tier1 app
ย 
Why Are More Businesses Choosing Partners Over Freelancers for Salesforce.pdf
Cymetrix Software
ย 
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
ย 
Step-by-Step Guide to Install SAP HANA Studio | Complete Installation Tutoria...
SAP Vista, an A L T Z E N Company
ย 
How AI in Healthcare Apps Can Help You Enhance Patient Care?
Lilly Gracia
ย 
Enhancing Security in VAST: Towards Static Vulnerability Scanning
ESUG
ย 
Cutting Optimization Pro 5.18.2 Crack With Free Download
cracked shares
ย 
Adobe Illustrator Crack Full Download (Latest Version 2025) Pre-Activated
imang66g
ย 
Virtual Threads in Java: A New Dimension of Scalability and Performance
Tier1 app
ย 
Odoo Customization Services by CandidRoot Solutions
CandidRoot Solutions Private Limited
ย 
How Agentic AI Networks are Revolutionizing Collaborative AI Ecosystems in 2025
ronakdubey419
ย 
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
ย 
Malaysiaโ€™s e-Invoice System: A Complete Guide for Businesses
Matiyas Solutions
ย 
What companies do with Pharo (ESUG 2025)
ESUG
ย 
TRAVEL APIs | WHITE LABEL TRAVEL API | TOP TRAVEL APIs
philipnathen82
ย 
TexSender Pro 8.9.1 Crack Full Version Download
cracked shares
ย 
Presentation about Database and Database Administrator
abhishekchauhan86963
ย 
Operations Profile SPDX_Update_20250711_Example_05_03.pptx
Shane Coughlan
ย 
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
ย 
Ad

Collaborative Software Development