SlideShare a Scribd company logo
1 of 62
Version control,
issue tracking,
and communication
Software Development, DIKU spring semester 2016
Presenter: Lars Yde, M.Sc.,Engineering Manager, Milestone Systems
Contact
 Academic collaboration: thesis, B.Sc. project, dissertation, internship
 Lars Yde, Engineering Manager : lay@milestone.dk (or larsyde@gmail.com)
 John Madsen, Software Architect : jm@milestone.dk
 Milestone Systems, company website and information
 www.milestonesys.com
Version control
Version Control
 Purpose
 Manage change in time (history) and space (branches)
 Benefits
 Ease collaboration
 Allow branching and continuous integration
 Track ownership and change history
 Types
 Local
 SCCS
 Centralized
 E.g. Subversion
 Distributed
 E.g. Git
Version control - definitions
 ”Manage change”
 Put files in a data store (file system, database, etc)
 Optionally associate with metadata
 Maintain deltas
 Rinse & repeat
 Achieves
 Traceability
 Concurrency
 Reversability
Terminology 101 [10]
 Branch : A set of files under version control may be branched or forked at a point in time so that, from that
time forward, two copies of those files may develop at different speeds or in different ways independently
of each other.
 Change : A change (or diff, or delta) represents a specific modification to a document under version control.
 Checkout : To check out (or co) is to create a local working copy from the repository.
 Clone : Cloning means creating a repository containing the revisions from another repository.
 Commit : To commit (check in, ci or, more rarely, install, submit or record) is to write or merge the changes
made in the working copy back to the repository.
 Conflict : A conflict occurs when different parties make changes to the same document, and the system is
unable to reconcile the changes
 Head : Also sometimes called tip, this refers to the most recent commit, either to the trunk or to a branch
 Merge : A merge or integration is an operation in which two sets of changes are applied to a file or set of
files
 Pull, push : Copy revisions from one repository into another
 Repository : The repository is where files' current and historical data are stored, often on a server
 Tag ; A tag or label refers to an important snapshot in time, consistent across many files
 Trunk : The unique line of development that is not a branch (sometimes also called Baseline, Mainline or
Master)
 Working copy : The working copy is the local copy of files from a repository, at a specific time or revision
Version control – visual summary [12]
Version control system popularity – Google Trends
Version control system popularity – Eclipse Foundation Community Survey 2014 [6]
Why is git leading ?
 SVN is conceptually simpler and easier
to learn, and has some good UI add-ons +
it automatically backs up remotely
 But, git has some unique selling points
 Faster
 Works decentralized
 Isolation (less FUD factor)
 Why is “the other DVCS” – Mercurial –
lagging so far behind
 Git’s a bit faster (written in C)
 GitHub
 Instant community because of Git origins
in Linux world
Basic use scenarios
 ”Save-as” version control
 ”MyCode.txt” => ”MyCodeA.txt” => ”MyCodeAA.txt” => ...you get the point
 Use OS permissioning to ”manage” concurrent access
 Local version control systems (RCS) a refinement of this scheme [7]
 Central repository model (e.g. SVN) [8]
 Basic cycle
 SVN update => SVN add / delete / copy / move => SVN status / diff => SVN update /
resolve => SVN commit => (goto start)
 Distributed repositories model (e.g. Git)
 Git init => git add => git commit => git push => (git pull)
GitHub
 What is it ?
 Git
 Git with a web interface
 Git hosting
 Issue and request tracking system
 Documentation system
 A social media platform (feeds, followers, wikis, newsletter, social graph) ?
GitHub
 12M users, 31M repositories
 Why ?
 Free(mium)
 Natural fit to open source / non-colocated collaboration
 Popular! (network effects, winner takes all)
 Web interface / accessibility
 Why not ?
 Arguably a steep learning curve
 Maybe overkill / bad fit for certain scenarios = don’t make a sheeple decision
GitHub
 Tooling and interfaces
 https://git.wiki.kernel.org/index.php/InterfacesFrontendsAndTools
 GUI clients (fat clients, various platforms)
 http://git-scm.com/downloads/guis
 Github desktop: https://desktop.github.com/
 Branching model
 http://nvie.com/posts/a-successful-git-branching-model/
<demo>
<Subversion>
Available at
https://drive.google.com/file/d/0B3nCmF_p
yhpQVC1ZYXFnTlVfa1k/view
(download for optimal viewing)
<demo>
<GitHub>
Available at
https://drive.google.com/open?id=0B3nCmF_
pyhpQakN3dTYyNmhuZ1E
(download for optimal viewing)
Demo still
Demo still
Demo still
Demo still
Demo still
Demo still
Demo still
Demo still
Demo still
Demo still
Demo still
Demo still
Demo still
Demo still
Demo still
Demo still
Advanced topics – Github with CI / CD
 Continuous Integration (CI)
 Integrate early, integrate often
 Tight feedback loop
 Continuous Deployment / Delivery (CD) ~ DevOps
 Repeatable process
 End-to-end automation
 Systems thinking
 Amplify feedback loops
 Culture of continual
experimentation and learning
Issue tracking
Issue tracking
 What is it ?
 Incident management = project management (ITIL) discipline with an ISO standard
 A TODO list you keep on your device
 A mental list you (may) remember before dev complete
 A shared list (e.g spreadsheet) of description and metadata that is collaboratively
maintained
 A release notes document that follows the software
 A tracking system that maintains a database of incidents / issues / bugs, relevant
metadata, history information and secondary data (forensic data, resolution files)
 A definitions game: what constitues an issue, who fixes it, who’s responsible ?
Issue tracking >= bug tracking
 Defects may be in implementation (bugs) or elsewhere – requirements,
design, documentation – as defects
 Why issue tracking ?
 Capture
 Record
 Ensure accountability
 Store resolution
 Facilitate review
Incident management (ITIL)
Incident management (ITIL) [14]
 ” An 'Incident' is any event which is not part of the standard operation of the
service and which causes, or may cause, an interruption or a reduction of the
quality of the service.”
 “The objective of Incident Management is to restore normal operations as
quickly as possible with the least possible impact on either the business or the
user, at a cost-effective price.”
 An ISO standard (ISO 20000)
 An exam (ITIL certification)
 A process
The TODO list
 Simple
 Easy to use and share
 Can be version-controlled
 Ships easily with the product as a release notes
 However...
 No workflow support
 No history
 No concurrency
Issue tracking systems [15]
 Open source (Bugzilla, Mantis, Redmine)
 Commercial (JIRA, ClearQuest, Trac)
 Integrated (Eclipse, TFS / Visual Studio, NetBeans)
 Auxiliary uses [18]
 Knowledge repository
 Communication and coordination hub
 Communication channel
 Context repository
Issue tracking system – Bugzilla
Defect Triage Meeting / Bug Council
 What is triage ?
 Assemble stakeholders: development leads, managers, product owners,
test leads, etc
 Ensure correct severity and priority for bug backlog
 Rinse and repeat until all is triaged
Communication
Small group communication theory [24][25]
 Systems theory
 “…groups are open systems, which are influenced by such independent variables as;
openness to environment, interdependence, input variables, process variables, and
output variables”
 Social exchange theory
 “…[people] base the likeliness of developing a relationship with someone on the
perceived possible outcomes. When these outcomes are perceived to be greater, we
disclose more and develop a closer relationship with that person.”
 Symbolic convergence theory
 “In small groups, members develop private code words and signals that only those inside
the group understand. When groups achieve symbolic convergence, they have a sense of
community based on common experiences and understandings.”
 Structuration theory
 “[ST] views small groups as systems that both produce structures and are produced by
structures. This means that group members follow particular rules in their interactions
that produce some sort of outcome. That outcome eventually influences the group's
future interactions.”
 Functional theory
 “Functional Perspective claims that there are four functions for effective decision
making which include an analysis of the problem, goal setting, identification of
alternatives, and an evaluation of positive and negative characteristics, all of which are
equally important.”
Group development [26]
 Life cycle models:
 Describe the process of change as the unfolding of a prescribed and linear sequence of
stages following a program that is prefigured at the beginning of the cycle (decided
within the group or imposed on it).
 Teleological models:
 Describe change as a purposeful movement toward one or more goals, with adjustments
based on feedback from the environment.
 Dialectical models:
 Describe change as emerging from conflict between opposing entities and eventual
synthesis leading to the next cycle of conflict
 Evolutionary models:
 Describe change as emerging from a repeated cycle of variation, selection and retention
and generally apply to change in a population rather than change within an entity over
time.
Tuckman’s model of group development
 Most popular team development model in agile
 Tuckman identifies four stages (and one additional stage in later versions)
 Forming
 “Groups initially concern themselves with orientation accomplished primarily through testing. Such testing
serves to identify the boundaries of both interpersonal and task behaviors. Coincident with testing in the
interpersonal realm is the establishment of dependency relationships with leaders, other group members, or
pre-existing standards.”
 Storming
 The second point in the sequence is characterized by conflict
and polarization around interpersonal issues, with concomitant emotional responding in the task sphere. These
behaviors serve as resistance to group influence and task requirements”
 Norming
 “Resistance is overcome in the third stage in which in-group feeling and cohesiveness develop, new standards
evolve, and new roles are adopted. In the task realm, intimate, personal opinions are expressed”
 Performing
 “Finally, the group attains the fourth and final stage in which interpersonal structure becomes the tool of task
activities. Roles become flexible and functional, and group energy is channeled into the task. Structural issues
have been resolved, and structure can now become supportive of task performance”
Tuckman visualized
Agile practices and communication
Structure: traditional vs agile
Barriers to communication
 Lack of unplanned contact [22]
 Knowing who to contact about what,
 Cost of initiating contact,
 Ability to communicate effectively, and
 Lack of trust, or willingness to communicate openly.
Organisation and technology as communication matrix
 Conway’s law [21]
 “organizations which design systems ... are
constrained to produce designs which are copies of
the communication structures of these organizations”
 Brook’s law [22]
 “if a project is late then adding
more people to the development will
slow the work down further”
 “the addition of more people creates
communications overhead”
Communication tool support [19]
 A distributed VCS aids in meeting communication needs[5]
 Improve cooperation, communicate feeling / sentiment, measure progress
 Reduce uncertainty, act as a knowledge hub
 Flow communication at the horizontal level of an organisation
 Groupware / CSCW applications
 Document sharing (non-VCS’ed) : Quip, Dropbox, Screen Hero
 Communications : Skype, Mail clients, Slack, Glip, HipChat, MatterMost
 Project managerial : Trello, shared calendars, wikis, group sites, spread-sheets
Slack
Screen Hero
Trello
Skype
Quip
References
1) Distributed vs centralized
 http://www.drdobbs.com/architecture-and-design/distributed-vcs-understanding-the-paradi/240159530
2) Communication Tools for Distributed Software Development Teams
 https://www.rti.org/pubs/rti_cpr07_virtualteam.pdf
3) Communication patterns and practices in software development networks
 http://www.soberit.hut.fi/veto/english/Julkaisut/ComPatterns.pdf
4) Making sense of revision-control systems
 http://cacm.acm.org/magazines/2009/9/38901-making-sense-of-revision-control-systems/fulltext
5) The role of Distributed Version Control Systems in team communication and learning
 https://gupea.ub.gu.se/bitstream/2077/36326/1/gupea_2077_36326_1.pdf
6) Eclipse community survey 2014
 http://www.slideshare.net/IanSkerrett/eclipse-community-survey-2014
7) Revision Control System (documentation)
 https://www.gnu.org/software/rcs/manual/rcs.html
8) SVN ”Red book” manual
 http://svnbook.red-bean.com/en/1.7/svn-book.pdf
9) Git ”Pro git” manual
 https://progit2.s3.amazonaws.com/en/2016-01-21-82fa5/progit-en.998.pdf
References
10) Version control terminology
 https://en.wikipedia.org/wiki/Version_control
11) Version control by example
 http://ericsink.com/vcbe/vcbe_a4_lo.pdf
12) A visual guide to version control
 http://betterexplained.com/articles/a-visual-guide-to-version-control/
13) Continuous integration
 http://martinfowler.com/articles/continuousIntegration.html
14) Incident management (ITIL)
 http://itlibrary.org/index.php?page=Incident_Management
15) Comparison of issue tracking systems
 https://en.wikipedia.org/wiki/Comparison_of_issue-tracking_systems
16) ITSM best practices
 http://www.itsm.info/ITSM%20Problem%20and%20Incident%20Best%20Practices.pdf
17) Issue Tracking Systems
 http://is.muni.cz/th/60778/fi_m/thesis.pdf
References
18) The Social Nature of Issue Tracking in Software Engineering
 http://lsmr.org/docs/bertram_msc_2009.pdf
19) Communication Tools for Distributed Software Development Teams
 https://www.rti.org/pubs/rti_cpr07_virtualteam.pdf
20) Communication in Agile Teams
 https://7bsp1018.wikispaces.com/Communication+in+Agile+Teams
21) Conway’s law
 https://en.wikipedia.org/wiki/Conway%27s_law
22) Splitting the Organization and Integrating the Code: Conway's Law Revisited
 https://www.cs.cmu.edu/afs/cs.cmu.edu/Web/People/jdh/collaboratory/research_papers/ICSE99.pdf
23) A Theory of Shared Understanding for Software Organizations
 https://tspace.library.utoronto.ca/bitstream/1807/26150/6/ArandaGarcia_Jorge_201011_PhD_thesis.pdf
24) Small group communication theory
 https://en.wikipedia.org/wiki/Communication_in_small_groups
25) Small group communication context
 http://www.uky.edu/~drlane/capstone/group/
26) Group development
 https://en.wikipedia.org/wiki/Group_development

More Related Content

What's hot

Test Plan for online auction system
Test Plan for online auction systemTest Plan for online auction system
Test Plan for online auction systemKomalah Nair
 
Firebase Auth Tutorial
Firebase Auth TutorialFirebase Auth Tutorial
Firebase Auth TutorialBukhori Aqid
 
Azure Container Apps
Azure Container AppsAzure Container Apps
Azure Container AppsKen Sykora
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...Amazon Web Services
 
Introduction to Swagger
Introduction to SwaggerIntroduction to Swagger
Introduction to SwaggerKnoldus Inc.
 
Accelerate Quality with Postman - Basics
Accelerate Quality with Postman - BasicsAccelerate Quality with Postman - Basics
Accelerate Quality with Postman - BasicsKnoldus Inc.
 
Websphere Application Server V8.5
Websphere Application Server V8.5Websphere Application Server V8.5
Websphere Application Server V8.5IBM WebSphereIndia
 
Automação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCAutomação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCMayara Fernandes
 
OVERVIEW OF FACEBOOK SCALABLE ARCHITECTURE.
OVERVIEW  OF FACEBOOK SCALABLE ARCHITECTURE.OVERVIEW  OF FACEBOOK SCALABLE ARCHITECTURE.
OVERVIEW OF FACEBOOK SCALABLE ARCHITECTURE.Rishikese MR
 
Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Mindfire Solutions
 
INTRODUCTION TO IIS
INTRODUCTION TO IISINTRODUCTION TO IIS
INTRODUCTION TO IISsanya6900
 
WCF tutorial
WCF tutorialWCF tutorial
WCF tutorialAbhi Arya
 

What's hot (20)

Test Plan for online auction system
Test Plan for online auction systemTest Plan for online auction system
Test Plan for online auction system
 
Firebase Auth Tutorial
Firebase Auth TutorialFirebase Auth Tutorial
Firebase Auth Tutorial
 
Azure Container Apps
Azure Container AppsAzure Container Apps
Azure Container Apps
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
 
Introduction to Swagger
Introduction to SwaggerIntroduction to Swagger
Introduction to Swagger
 
Accelerate Quality with Postman - Basics
Accelerate Quality with Postman - BasicsAccelerate Quality with Postman - Basics
Accelerate Quality with Postman - Basics
 
Websphere Application Server V8.5
Websphere Application Server V8.5Websphere Application Server V8.5
Websphere Application Server V8.5
 
AWS Amplify
AWS AmplifyAWS Amplify
AWS Amplify
 
Automação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCAutomação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SC
 
How Flipkart scales PHP
How Flipkart scales PHPHow Flipkart scales PHP
How Flipkart scales PHP
 
What is an API?
What is an API?What is an API?
What is an API?
 
Soap Vs Rest
Soap Vs RestSoap Vs Rest
Soap Vs Rest
 
REST API
REST APIREST API
REST API
 
Web api
Web apiWeb api
Web api
 
Firebase Overview
Firebase OverviewFirebase Overview
Firebase Overview
 
OVERVIEW OF FACEBOOK SCALABLE ARCHITECTURE.
OVERVIEW  OF FACEBOOK SCALABLE ARCHITECTURE.OVERVIEW  OF FACEBOOK SCALABLE ARCHITECTURE.
OVERVIEW OF FACEBOOK SCALABLE ARCHITECTURE.
 
Introduction to Serverless
Introduction to ServerlessIntroduction to Serverless
Introduction to Serverless
 
Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)
 
INTRODUCTION TO IIS
INTRODUCTION TO IISINTRODUCTION TO IIS
INTRODUCTION TO IIS
 
WCF tutorial
WCF tutorialWCF tutorial
WCF tutorial
 

Viewers also liked

Business Rules Management: Geldigheidsbeheer
Business Rules Management: GeldigheidsbeheerBusiness Rules Management: Geldigheidsbeheer
Business Rules Management: GeldigheidsbeheerKoen Smit
 
Business Rules Management: Traceerbaarheid
Business Rules Management: TraceerbaarheidBusiness Rules Management: Traceerbaarheid
Business Rules Management: TraceerbaarheidKoen Smit
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)Er. Shiva K. Shrestha
 
Ten ways to successfully fail your agility
Ten ways to successfully fail your agilityTen ways to successfully fail your agility
Ten ways to successfully fail your agilityIlan Kirschenbaum
 
התוכניות שלי כל כך מושקעות - אז למה אני שוב מופתע?
התוכניות שלי כל כך מושקעות - אז למה אני שוב מופתע?התוכניות שלי כל כך מושקעות - אז למה אני שוב מופתע?
התוכניות שלי כל כך מושקעות - אז למה אני שוב מופתע?Ilan Kirschenbaum
 
אם אג׳ייל כזה כיף אז למה התור במשרד למשאבי אנוש?
אם אג׳ייל כזה כיף אז למה התור במשרד למשאבי אנוש?אם אג׳ייל כזה כיף אז למה התור במשרד למשאבי אנוש?
אם אג׳ייל כזה כיף אז למה התור במשרד למשאבי אנוש?Ilan Kirschenbaum
 
Remove before flight #APIL17
Remove before flight #APIL17Remove before flight #APIL17
Remove before flight #APIL17Ilan Kirschenbaum
 
Practical Scrum course day 2
Practical Scrum course day 2Practical Scrum course day 2
Practical Scrum course day 2Ilan Kirschenbaum
 
Practical Scrum course day 1
Practical Scrum course day 1Practical Scrum course day 1
Practical Scrum course day 1Ilan Kirschenbaum
 
Advanced Po workshop November 2015
Advanced Po workshop November 2015Advanced Po workshop November 2015
Advanced Po workshop November 2015Ilan Kirschenbaum
 
Scrum Master Role and Responsibilities in Agile Environment - AMECSE 2014
Scrum Master Role and Responsibilities in Agile Environment  - AMECSE 2014 Scrum Master Role and Responsibilities in Agile Environment  - AMECSE 2014
Scrum Master Role and Responsibilities in Agile Environment - AMECSE 2014 Ahmed Hammad
 
Teams and responsibilities
Teams and responsibilitiesTeams and responsibilities
Teams and responsibilitiesAmir Barylko
 
Scrum Master Role - Authority, Power and Leadership
Scrum Master Role - Authority, Power and LeadershipScrum Master Role - Authority, Power and Leadership
Scrum Master Role - Authority, Power and LeadershipIlan Kirschenbaum
 
The Roles and Responsibilities in an Agile Project and Organization
The Roles and Responsibilities in an Agile Project and OrganizationThe Roles and Responsibilities in an Agile Project and Organization
The Roles and Responsibilities in an Agile Project and OrganizationToivo Vaje
 
Leading agile teams - Advanced Scrum Master
Leading agile teams - Advanced Scrum MasterLeading agile teams - Advanced Scrum Master
Leading agile teams - Advanced Scrum MasterIlan Kirschenbaum
 

Viewers also liked (20)

Business Rules Management: Geldigheidsbeheer
Business Rules Management: GeldigheidsbeheerBusiness Rules Management: Geldigheidsbeheer
Business Rules Management: Geldigheidsbeheer
 
Business Rules Management: Traceerbaarheid
Business Rules Management: TraceerbaarheidBusiness Rules Management: Traceerbaarheid
Business Rules Management: Traceerbaarheid
 
5. scm
5. scm5. scm
5. scm
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)
 
Testers in an agile world
Testers in an agile worldTesters in an agile world
Testers in an agile world
 
Ten ways to successfully fail your agility
Ten ways to successfully fail your agilityTen ways to successfully fail your agility
Ten ways to successfully fail your agility
 
התוכניות שלי כל כך מושקעות - אז למה אני שוב מופתע?
התוכניות שלי כל כך מושקעות - אז למה אני שוב מופתע?התוכניות שלי כל כך מושקעות - אז למה אני שוב מופתע?
התוכניות שלי כל כך מושקעות - אז למה אני שוב מופתע?
 
Enterprise agility
Enterprise agilityEnterprise agility
Enterprise agility
 
Leading agile teams
Leading agile teamsLeading agile teams
Leading agile teams
 
אם אג׳ייל כזה כיף אז למה התור במשרד למשאבי אנוש?
אם אג׳ייל כזה כיף אז למה התור במשרד למשאבי אנוש?אם אג׳ייל כזה כיף אז למה התור במשרד למשאבי אנוש?
אם אג׳ייל כזה כיף אז למה התור במשרד למשאבי אנוש?
 
Agile and the evolution
Agile and the evolutionAgile and the evolution
Agile and the evolution
 
Remove before flight #APIL17
Remove before flight #APIL17Remove before flight #APIL17
Remove before flight #APIL17
 
Practical Scrum course day 2
Practical Scrum course day 2Practical Scrum course day 2
Practical Scrum course day 2
 
Practical Scrum course day 1
Practical Scrum course day 1Practical Scrum course day 1
Practical Scrum course day 1
 
Advanced Po workshop November 2015
Advanced Po workshop November 2015Advanced Po workshop November 2015
Advanced Po workshop November 2015
 
Scrum Master Role and Responsibilities in Agile Environment - AMECSE 2014
Scrum Master Role and Responsibilities in Agile Environment  - AMECSE 2014 Scrum Master Role and Responsibilities in Agile Environment  - AMECSE 2014
Scrum Master Role and Responsibilities in Agile Environment - AMECSE 2014
 
Teams and responsibilities
Teams and responsibilitiesTeams and responsibilities
Teams and responsibilities
 
Scrum Master Role - Authority, Power and Leadership
Scrum Master Role - Authority, Power and LeadershipScrum Master Role - Authority, Power and Leadership
Scrum Master Role - Authority, Power and Leadership
 
The Roles and Responsibilities in an Agile Project and Organization
The Roles and Responsibilities in an Agile Project and OrganizationThe Roles and Responsibilities in an Agile Project and Organization
The Roles and Responsibilities in an Agile Project and Organization
 
Leading agile teams - Advanced Scrum Master
Leading agile teams - Advanced Scrum MasterLeading agile teams - Advanced Scrum Master
Leading agile teams - Advanced Scrum Master
 

Similar to Version control, issue tracking and communication

Sustainability Training Workshop - Managing Sustainability into Software
Sustainability Training Workshop - Managing Sustainability into SoftwareSustainability Training Workshop - Managing Sustainability into Software
Sustainability Training Workshop - Managing Sustainability into SoftwareSoftware Sustainability Institute
 
07 software design
07   software design07   software design
07 software designkebsterz
 
07 software design
07   software design07   software design
07 software designkebsterz
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Managementelliando dias
 
Lombardi Wikis - collaborative information development, with DITA XML in the mix
Lombardi Wikis - collaborative information development, with DITA XML in the mixLombardi Wikis - collaborative information development, with DITA XML in the mix
Lombardi Wikis - collaborative information development, with DITA XML in the mixguest47c1f1
 
Lombardi Wikis - a CenTex DITA UG panel presentation
Lombardi Wikis - a CenTex DITA UG panel presentationLombardi Wikis - a CenTex DITA UG panel presentation
Lombardi Wikis - a CenTex DITA UG panel presentationLisa Dyer
 
Unit-1_Notes(OOAD).pdf
Unit-1_Notes(OOAD).pdfUnit-1_Notes(OOAD).pdf
Unit-1_Notes(OOAD).pdfganeshkarthy
 
Systems analysis and design
Systems analysis and designSystems analysis and design
Systems analysis and designPrisky Octian
 
Systems Analysis and Design
Systems Analysis and DesignSystems Analysis and Design
Systems Analysis and DesignPRISKY OCTIAN
 
Enterprise DevOps: Scaling Build, Deploy, Test, Release
Enterprise DevOps: Scaling Build, Deploy, Test, ReleaseEnterprise DevOps: Scaling Build, Deploy, Test, Release
Enterprise DevOps: Scaling Build, Deploy, Test, ReleaseIBM UrbanCode Products
 
PresentationTest
PresentationTestPresentationTest
PresentationTestbolu804
 
Configuration Management
Configuration ManagementConfiguration Management
Configuration Managementelliando dias
 
Software Development The Agile Way
Software Development The Agile WaySoftware Development The Agile Way
Software Development The Agile WayShahzad
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0Jasmine Conseil
 
Modular Documentation Joe Gelb Techshoret 2009
Modular Documentation Joe Gelb Techshoret 2009Modular Documentation Joe Gelb Techshoret 2009
Modular Documentation Joe Gelb Techshoret 2009Suite Solutions
 
Software process life cycles
Software process life cyclesSoftware process life cycles
Software process life cycles sathish sak
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Liran Levy
 

Similar to Version control, issue tracking and communication (20)

Sustainability Training Workshop - Managing Sustainability into Software
Sustainability Training Workshop - Managing Sustainability into SoftwareSustainability Training Workshop - Managing Sustainability into Software
Sustainability Training Workshop - Managing Sustainability into Software
 
07 software design
07   software design07   software design
07 software design
 
07 software design
07   software design07   software design
07 software design
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
LUXproject Description
LUXproject DescriptionLUXproject Description
LUXproject Description
 
Cvs To Clear Case
Cvs To Clear CaseCvs To Clear Case
Cvs To Clear Case
 
Lombardi Wikis - collaborative information development, with DITA XML in the mix
Lombardi Wikis - collaborative information development, with DITA XML in the mixLombardi Wikis - collaborative information development, with DITA XML in the mix
Lombardi Wikis - collaborative information development, with DITA XML in the mix
 
Lombardi Wikis - a CenTex DITA UG panel presentation
Lombardi Wikis - a CenTex DITA UG panel presentationLombardi Wikis - a CenTex DITA UG panel presentation
Lombardi Wikis - a CenTex DITA UG panel presentation
 
Unit-1_Notes(OOAD).pdf
Unit-1_Notes(OOAD).pdfUnit-1_Notes(OOAD).pdf
Unit-1_Notes(OOAD).pdf
 
Systems analysis and design
Systems analysis and designSystems analysis and design
Systems analysis and design
 
Systems Analysis and Design
Systems Analysis and DesignSystems Analysis and Design
Systems Analysis and Design
 
Enterprise DevOps: Scaling Build, Deploy, Test, Release
Enterprise DevOps: Scaling Build, Deploy, Test, ReleaseEnterprise DevOps: Scaling Build, Deploy, Test, Release
Enterprise DevOps: Scaling Build, Deploy, Test, Release
 
01lifecycles
01lifecycles01lifecycles
01lifecycles
 
PresentationTest
PresentationTestPresentationTest
PresentationTest
 
Configuration Management
Configuration ManagementConfiguration Management
Configuration Management
 
Software Development The Agile Way
Software Development The Agile WaySoftware Development The Agile Way
Software Development The Agile Way
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
Modular Documentation Joe Gelb Techshoret 2009
Modular Documentation Joe Gelb Techshoret 2009Modular Documentation Joe Gelb Techshoret 2009
Modular Documentation Joe Gelb Techshoret 2009
 
Software process life cycles
Software process life cyclesSoftware process life cycles
Software process life cycles
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates
 

Recently uploaded

Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 

Recently uploaded (20)

Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

Version control, issue tracking and communication

  • 1. Version control, issue tracking, and communication Software Development, DIKU spring semester 2016 Presenter: Lars Yde, M.Sc.,Engineering Manager, Milestone Systems
  • 2. Contact  Academic collaboration: thesis, B.Sc. project, dissertation, internship  Lars Yde, Engineering Manager : lay@milestone.dk (or larsyde@gmail.com)  John Madsen, Software Architect : jm@milestone.dk  Milestone Systems, company website and information  www.milestonesys.com
  • 4. Version Control  Purpose  Manage change in time (history) and space (branches)  Benefits  Ease collaboration  Allow branching and continuous integration  Track ownership and change history  Types  Local  SCCS  Centralized  E.g. Subversion  Distributed  E.g. Git
  • 5. Version control - definitions  ”Manage change”  Put files in a data store (file system, database, etc)  Optionally associate with metadata  Maintain deltas  Rinse & repeat  Achieves  Traceability  Concurrency  Reversability
  • 6. Terminology 101 [10]  Branch : A set of files under version control may be branched or forked at a point in time so that, from that time forward, two copies of those files may develop at different speeds or in different ways independently of each other.  Change : A change (or diff, or delta) represents a specific modification to a document under version control.  Checkout : To check out (or co) is to create a local working copy from the repository.  Clone : Cloning means creating a repository containing the revisions from another repository.  Commit : To commit (check in, ci or, more rarely, install, submit or record) is to write or merge the changes made in the working copy back to the repository.  Conflict : A conflict occurs when different parties make changes to the same document, and the system is unable to reconcile the changes  Head : Also sometimes called tip, this refers to the most recent commit, either to the trunk or to a branch  Merge : A merge or integration is an operation in which two sets of changes are applied to a file or set of files  Pull, push : Copy revisions from one repository into another  Repository : The repository is where files' current and historical data are stored, often on a server  Tag ; A tag or label refers to an important snapshot in time, consistent across many files  Trunk : The unique line of development that is not a branch (sometimes also called Baseline, Mainline or Master)  Working copy : The working copy is the local copy of files from a repository, at a specific time or revision
  • 7. Version control – visual summary [12]
  • 8. Version control system popularity – Google Trends
  • 9. Version control system popularity – Eclipse Foundation Community Survey 2014 [6]
  • 10. Why is git leading ?  SVN is conceptually simpler and easier to learn, and has some good UI add-ons + it automatically backs up remotely  But, git has some unique selling points  Faster  Works decentralized  Isolation (less FUD factor)  Why is “the other DVCS” – Mercurial – lagging so far behind  Git’s a bit faster (written in C)  GitHub  Instant community because of Git origins in Linux world
  • 11. Basic use scenarios  ”Save-as” version control  ”MyCode.txt” => ”MyCodeA.txt” => ”MyCodeAA.txt” => ...you get the point  Use OS permissioning to ”manage” concurrent access  Local version control systems (RCS) a refinement of this scheme [7]  Central repository model (e.g. SVN) [8]  Basic cycle  SVN update => SVN add / delete / copy / move => SVN status / diff => SVN update / resolve => SVN commit => (goto start)  Distributed repositories model (e.g. Git)  Git init => git add => git commit => git push => (git pull)
  • 12. GitHub  What is it ?  Git  Git with a web interface  Git hosting  Issue and request tracking system  Documentation system  A social media platform (feeds, followers, wikis, newsletter, social graph) ?
  • 13. GitHub  12M users, 31M repositories  Why ?  Free(mium)  Natural fit to open source / non-colocated collaboration  Popular! (network effects, winner takes all)  Web interface / accessibility  Why not ?  Arguably a steep learning curve  Maybe overkill / bad fit for certain scenarios = don’t make a sheeple decision
  • 14. GitHub  Tooling and interfaces  https://git.wiki.kernel.org/index.php/InterfacesFrontendsAndTools  GUI clients (fat clients, various platforms)  http://git-scm.com/downloads/guis  Github desktop: https://desktop.github.com/  Branching model  http://nvie.com/posts/a-successful-git-branching-model/
  • 33. Advanced topics – Github with CI / CD  Continuous Integration (CI)  Integrate early, integrate often  Tight feedback loop  Continuous Deployment / Delivery (CD) ~ DevOps  Repeatable process  End-to-end automation  Systems thinking  Amplify feedback loops  Culture of continual experimentation and learning
  • 34.
  • 36. Issue tracking  What is it ?  Incident management = project management (ITIL) discipline with an ISO standard  A TODO list you keep on your device  A mental list you (may) remember before dev complete  A shared list (e.g spreadsheet) of description and metadata that is collaboratively maintained  A release notes document that follows the software  A tracking system that maintains a database of incidents / issues / bugs, relevant metadata, history information and secondary data (forensic data, resolution files)  A definitions game: what constitues an issue, who fixes it, who’s responsible ?
  • 37. Issue tracking >= bug tracking  Defects may be in implementation (bugs) or elsewhere – requirements, design, documentation – as defects  Why issue tracking ?  Capture  Record  Ensure accountability  Store resolution  Facilitate review
  • 39. Incident management (ITIL) [14]  ” An 'Incident' is any event which is not part of the standard operation of the service and which causes, or may cause, an interruption or a reduction of the quality of the service.”  “The objective of Incident Management is to restore normal operations as quickly as possible with the least possible impact on either the business or the user, at a cost-effective price.”  An ISO standard (ISO 20000)  An exam (ITIL certification)  A process
  • 40. The TODO list  Simple  Easy to use and share  Can be version-controlled  Ships easily with the product as a release notes  However...  No workflow support  No history  No concurrency
  • 41. Issue tracking systems [15]  Open source (Bugzilla, Mantis, Redmine)  Commercial (JIRA, ClearQuest, Trac)  Integrated (Eclipse, TFS / Visual Studio, NetBeans)  Auxiliary uses [18]  Knowledge repository  Communication and coordination hub  Communication channel  Context repository
  • 42. Issue tracking system – Bugzilla
  • 43. Defect Triage Meeting / Bug Council  What is triage ?  Assemble stakeholders: development leads, managers, product owners, test leads, etc  Ensure correct severity and priority for bug backlog  Rinse and repeat until all is triaged
  • 45. Small group communication theory [24][25]  Systems theory  “…groups are open systems, which are influenced by such independent variables as; openness to environment, interdependence, input variables, process variables, and output variables”  Social exchange theory  “…[people] base the likeliness of developing a relationship with someone on the perceived possible outcomes. When these outcomes are perceived to be greater, we disclose more and develop a closer relationship with that person.”  Symbolic convergence theory  “In small groups, members develop private code words and signals that only those inside the group understand. When groups achieve symbolic convergence, they have a sense of community based on common experiences and understandings.”  Structuration theory  “[ST] views small groups as systems that both produce structures and are produced by structures. This means that group members follow particular rules in their interactions that produce some sort of outcome. That outcome eventually influences the group's future interactions.”  Functional theory  “Functional Perspective claims that there are four functions for effective decision making which include an analysis of the problem, goal setting, identification of alternatives, and an evaluation of positive and negative characteristics, all of which are equally important.”
  • 46. Group development [26]  Life cycle models:  Describe the process of change as the unfolding of a prescribed and linear sequence of stages following a program that is prefigured at the beginning of the cycle (decided within the group or imposed on it).  Teleological models:  Describe change as a purposeful movement toward one or more goals, with adjustments based on feedback from the environment.  Dialectical models:  Describe change as emerging from conflict between opposing entities and eventual synthesis leading to the next cycle of conflict  Evolutionary models:  Describe change as emerging from a repeated cycle of variation, selection and retention and generally apply to change in a population rather than change within an entity over time.
  • 47. Tuckman’s model of group development  Most popular team development model in agile  Tuckman identifies four stages (and one additional stage in later versions)  Forming  “Groups initially concern themselves with orientation accomplished primarily through testing. Such testing serves to identify the boundaries of both interpersonal and task behaviors. Coincident with testing in the interpersonal realm is the establishment of dependency relationships with leaders, other group members, or pre-existing standards.”  Storming  The second point in the sequence is characterized by conflict and polarization around interpersonal issues, with concomitant emotional responding in the task sphere. These behaviors serve as resistance to group influence and task requirements”  Norming  “Resistance is overcome in the third stage in which in-group feeling and cohesiveness develop, new standards evolve, and new roles are adopted. In the task realm, intimate, personal opinions are expressed”  Performing  “Finally, the group attains the fourth and final stage in which interpersonal structure becomes the tool of task activities. Roles become flexible and functional, and group energy is channeled into the task. Structural issues have been resolved, and structure can now become supportive of task performance”
  • 49. Agile practices and communication
  • 51. Barriers to communication  Lack of unplanned contact [22]  Knowing who to contact about what,  Cost of initiating contact,  Ability to communicate effectively, and  Lack of trust, or willingness to communicate openly.
  • 52. Organisation and technology as communication matrix  Conway’s law [21]  “organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations”  Brook’s law [22]  “if a project is late then adding more people to the development will slow the work down further”  “the addition of more people creates communications overhead”
  • 53. Communication tool support [19]  A distributed VCS aids in meeting communication needs[5]  Improve cooperation, communicate feeling / sentiment, measure progress  Reduce uncertainty, act as a knowledge hub  Flow communication at the horizontal level of an organisation  Groupware / CSCW applications  Document sharing (non-VCS’ed) : Quip, Dropbox, Screen Hero  Communications : Skype, Mail clients, Slack, Glip, HipChat, MatterMost  Project managerial : Trello, shared calendars, wikis, group sites, spread-sheets
  • 54. Slack
  • 57. Skype
  • 58. Quip
  • 59.
  • 60. References 1) Distributed vs centralized  http://www.drdobbs.com/architecture-and-design/distributed-vcs-understanding-the-paradi/240159530 2) Communication Tools for Distributed Software Development Teams  https://www.rti.org/pubs/rti_cpr07_virtualteam.pdf 3) Communication patterns and practices in software development networks  http://www.soberit.hut.fi/veto/english/Julkaisut/ComPatterns.pdf 4) Making sense of revision-control systems  http://cacm.acm.org/magazines/2009/9/38901-making-sense-of-revision-control-systems/fulltext 5) The role of Distributed Version Control Systems in team communication and learning  https://gupea.ub.gu.se/bitstream/2077/36326/1/gupea_2077_36326_1.pdf 6) Eclipse community survey 2014  http://www.slideshare.net/IanSkerrett/eclipse-community-survey-2014 7) Revision Control System (documentation)  https://www.gnu.org/software/rcs/manual/rcs.html 8) SVN ”Red book” manual  http://svnbook.red-bean.com/en/1.7/svn-book.pdf 9) Git ”Pro git” manual  https://progit2.s3.amazonaws.com/en/2016-01-21-82fa5/progit-en.998.pdf
  • 61. References 10) Version control terminology  https://en.wikipedia.org/wiki/Version_control 11) Version control by example  http://ericsink.com/vcbe/vcbe_a4_lo.pdf 12) A visual guide to version control  http://betterexplained.com/articles/a-visual-guide-to-version-control/ 13) Continuous integration  http://martinfowler.com/articles/continuousIntegration.html 14) Incident management (ITIL)  http://itlibrary.org/index.php?page=Incident_Management 15) Comparison of issue tracking systems  https://en.wikipedia.org/wiki/Comparison_of_issue-tracking_systems 16) ITSM best practices  http://www.itsm.info/ITSM%20Problem%20and%20Incident%20Best%20Practices.pdf 17) Issue Tracking Systems  http://is.muni.cz/th/60778/fi_m/thesis.pdf
  • 62. References 18) The Social Nature of Issue Tracking in Software Engineering  http://lsmr.org/docs/bertram_msc_2009.pdf 19) Communication Tools for Distributed Software Development Teams  https://www.rti.org/pubs/rti_cpr07_virtualteam.pdf 20) Communication in Agile Teams  https://7bsp1018.wikispaces.com/Communication+in+Agile+Teams 21) Conway’s law  https://en.wikipedia.org/wiki/Conway%27s_law 22) Splitting the Organization and Integrating the Code: Conway's Law Revisited  https://www.cs.cmu.edu/afs/cs.cmu.edu/Web/People/jdh/collaboratory/research_papers/ICSE99.pdf 23) A Theory of Shared Understanding for Software Organizations  https://tspace.library.utoronto.ca/bitstream/1807/26150/6/ArandaGarcia_Jorge_201011_PhD_thesis.pdf 24) Small group communication theory  https://en.wikipedia.org/wiki/Communication_in_small_groups 25) Small group communication context  http://www.uky.edu/~drlane/capstone/group/ 26) Group development  https://en.wikipedia.org/wiki/Group_development

Editor's Notes

  1. Maintain deltas can be copying wholesale
  2. Baseline An approved revision of a document or source file from which subsequent changes can be made. See baselines, labels and tags. Branch A set of files under version control may be branched or forked at a point in time so that, from that time forward, two copies of those files may develop at different speeds or in different ways independently of each other. Change A change (or diff, or delta) represents a specific modification to a document under version control. The granularity of the modification considered a change varies between version control systems. Change list On many version control systems with atomic multi-change commits, a change list, change set, update, or patch identifies the set of changes made in a single commit. This can also represent a sequential view of the source code, allowing the examination of source "as of" any particular changelist ID. Checkout To check out (or co) is to create a local working copy from the repository. A user may specify a specific revision or obtain the latest. The term 'checkout' can also be used as a noun to describe the working copy. Clone Cloning means creating a repository containing the revisions from another repository. This is equivalent to pushing or pulling into an empty (newly initialized) repository. As a noun, two repositories can be said to be clones if they are kept synchronized, and contain the same revisions. Commit To commit (check in, ci or, more rarely, install, submit or record) is to write or merge the changes made in the working copy back to the repository. The terms 'commit' and 'checkin' can also be used as nouns to describe the new revision that is created as a result of committing. Conflict A conflict occurs when different parties make changes to the same document, and the system is unable to reconcile the changes. A user must resolve the conflict by combining the changes, or by selecting one change in favour of the other. Delta compression Most revision control software uses delta compression, which retains only the differences between successive versions of files. This allows for more efficient storage of many different versions of files. Dynamic stream A stream in which some or all file versions are mirrors of the parent stream's versions. Export exporting is the act of obtaining the files from the repository. It is similar to checking out except that it creates a clean directory tree without the version-control metadata used in a working copy. This is often used prior to publishing the contents, for example. Forward integration The process of merging changes made in the main trunk into a development (feature or team) branch. Head Also sometimes called tip, this refers to the most recent commit, either to the trunk or to a branch. The trunk and each branch have their own head, though HEAD is sometimes loosely used to refer to the trunk.[8] Import importing is the act of copying a local directory tree (that is not currently a working copy) into the repository for the first time. Initialize to create a new, empty repository. Interleaved deltas some revision control software uses Interleaved deltas, a method that allows to store the history of text based files in a more efficient way than by using Delta compression. Label See tag. Mainline Similar to trunk, but there can be a mainline for each branch. Merge A merge or integration is an operation in which two sets of changes are applied to a file or set of files. Some sample scenarios are as follows: A user, working on a set of files, updates or syncs their working copy with changes made, and checked into the repository, by other users.[9] A user tries to check in files that have been updated by others since the files were checked out, and the revision control software automatically merges the files (typically, after prompting the user if it should proceed with the automatic merge, and in some cases only doing so if the merge can be clearly and reasonably resolved). A branch is created, the code in the files is independently edited, and the updated branch is later incorporated into a single, unified trunk. A set of files is branched, a problem that existed before the branching is fixed in one branch, and the fix is then merged into the other branch. (This type of selective merge is sometimes known as a cherry pick to distinguish it from the complete merge in the previous case.) Promote The act of copying file content from a less controlled location into a more controlled location. For example, from a user's workspace into a repository, or from a stream to its parent.[10] Pull, push Copy revisions from one repository into another. Pull is initiated by the receiving repository, while push is initiated by the source. Fetch is sometimes used as a synonym for pull, or to mean a pull followed by an update. Repository The repository is where files' current and historical data are stored, often on a server. Sometimes also called a depot (for example, by SVK, AccuRev and Perforce). Resolve The act of user intervention to address a conflict between different changes to the same document. Reverse integration The process of merging different team branches into the main trunk of the versioning system. Revision Also version: A version is any change in form. In SVK, a Revision is the state at a point in time of the entire tree in the repository. Share The act of making one file or folder available in multiple branches at the same time. When a shared file is changed in one branch, it is changed in other branches. Stream A container for branched files that has a known relationship to other such containers. Streams form a hierarchy; each stream can inherit various properties (like versions, namespace, workflow rules, subscribers, etc.) from its parent stream. Tag A tag or label refers to an important snapshot in time, consistent across many files. These files at that point may all be tagged with a user-friendly, meaningful name or revision number. See baselines, labels and tags. Trunk The unique line of development that is not a branch (sometimes also called Baseline, Mainline or Master) Update An update (or sync, but sync can also mean a combined push and pull) merges changes made in the repository (by other people, for example) into the local working copy.[9] Update is also the term used by some CM tools (CM+, PLS, SMS) for the change package concept (see changelist). Synonymous with checkout in revision control systems that require each repository to have exactly one working copy (common in distributed systems) Working copy The working copy is the local copy of files from a repository, at a specific time or revision. All work done to the files in a repository is initially done on a working copy, hence the name. Conceptually, it is a sandbox.
  3. FUD = fear, uncertainty, doubt / despair / desparation
  4. 1.2.4 Fundamental operations (RCS) The checkin operation records the contents of the working file in the RCS file, assigning it a new (normally the next higher) revision number and recording the username, timestamp, state (a short symbol), and user-supplied log message (a textual description of the changes leading to that revision). It uses diff to find the differences between the tip of the default branch and the working file, thereby writing the minimal amount of information needed to be able to recreate the contents of the previous tip. The checkout operation identifies a specific revision from the RCS file and either displays the content to standard output or instantiates a working file, overwriting any current instantiation with the selected revision. In either case, the content may undergo keyword expansion, which replaces text of the form ‘$Keyword$’ with (possibly) different text comprising the keyword and its value, depending on the current keyword expansion mode (see Substitution mode option). Git git init --bare /path/to/repo.git git clone ssh://user@host/path/to/repo.git git status # View the state of the repo git add <some-file> # Stage a file git commit # Commit a file</some-file> git push origin master git pull --rebase origin master
  5. The definitions game also ties into the legal aspects: who has culpability and bears commercial and legal responsibility, what is the ambition / contractual stipulation for the software / system: perfection, some flaws allowed, ship it when it builds ?
  6. “Groups initially concern themselves with orientation accomplished primarily through testing. Such testing serves to identify the boundaries of both interpersonal and task behaviors. Coincident with testing in the interpersonal realm is the establishment of dependency relationships with leaders, other group members, or pre-existing standards. It may be said that orientation, testing, and dependence constitute the group process of forming. The second point in the sequence is characterized by conflict and polarization around interpersonal issues, with concomitant emotional responding in the task sphere. These behaviors serve as resistance to group influence and task requirements and may be labeled as storming. Resistance is overcome in the third stage in which in-group feeling and cohesiveness develop, new standards evolve, and new roles are adopted. In the task realm, intimate, personal opinions are expressed. Thus, we have the stage of norming. Finally, the group attains the fourth and final stage in which interpersonal structure becomes the tool of task activities. Roles become flexible and functional, and group energy is channeled into the task. Structural issues have been resolved, and structure can now become supportive of task performance. This stage can be labeled as performing.
  7. 4.2 Barriers to informal communication It was clear from the interviews that splitting the organization across sites presented barriers to informal communication during the project, causing serious problems. The primary barriers which led to coordination breakdowns were • Lack of unplanned contact, • Knowing who to contact about what, • Cost of initiating contact, • Ability to communicate effectively, and • Lack of trust, or willingness to communicate openly. Our findings in each of these areas are discussed in the following sections. 4.2.1 Lack of unplanned contact In a typical co-located development effort, project members run into each other in the hallway, at the coffee machine, in the cafeteria, and elsewhere, on a frequent basis. They discuss many things, including many that have nothing to do with project work. But they also bring up the project as a topic of discussion, especially things that are currently on their minds, or are causing them some concern. This is not necessarily explicitly to get help, or to formally notify others of specific events, but rather just the usual sort of friendly exchange, common in the workplace. These sorts of unplanned contacts seem to be surprisingly important in keeping projects coordinated. For example, one interviewee told us of an incident in which, during the course of such an unplanned discussion, it came to light that he and a co-worker were making contradictory assumptions about what board would have a particular digital signal processing chip. They were able to resolve the issue in a matter of a few minutes. But had they not discovered this 7 difference in assumptions as early as they did, this minor problem could have become extremely costly. What makes this and similar incidents significant is that the participants were not aware of any need to communicate. There was absolutely no reason either one knew of, even if communication could be initiated very easily, to contact the other person to discuss the project. Many conflicts in assumptions follow this pattern, because project members are often unaware of the assumptions they are making, or that others might be making conflicting assumptions. This form of coordination is predicated on relatively frequent unplanned communication, during the course of which relevant information and important issues may come to light. In our interviews, there were a number of problems that seem to be the result of a general lack of information. Developers at one site, for example, had developed a very handy step tracing tool that providing information on memory usage, CPU usage, and so on. While developers at the same site used the tool extensively, those at the other site did not know of the tool’s existence for months. It often took weeks to deal with problems that could have been solved very quickly with the tool. The fact that developers at one site were aware of the tool and those at the other site were not, makes it seem quite likely that unplanned contacts played a significant role in disseminating awareness of the tool. Overall, several consequences seemed to flow from the relative lack of unplanned contact. One was to make it much less likely for conflicts and issues to be recognized. If a developer is aware that an issue exists, it is possible to take action to correct it. But since unplanned contact seems to be one of the primary mechanisms for bringing issues to light, many more conflicts went unrecognized until later in the development. Another consequence was just the general lack of background information across sites, i.e., how they work, what issues are most pressing to them, how they typically communicate with each other, site-specific vocabulary, and the responsibilities, expertise, and relationships among those at the other site. 4.2.2 Knowing who to contact about what Developers often reported great difficulty in determining the appropriate person to contact at the other site. If there was a need to coordinate on an interface specification, for example, there was no straightforward way to find out who was responsible for the component on the other site. Developers found several workarounds for this problem, although none was entirely satisfactory. One was to look for clues buried in the documentation, such as names at the bottom of web pages containing specifications. Often those whose names were listed as authors were the correct person, or could point to the correct person. Another frequently used workaround was to contact a system architect at the other site. Architects were known to have a very broad knowledge of the system and who was doing what. Once some of the developers had spent a significant amount of time at the other site, these individuals became “contact people” or “liaisons.” A visitor from the UK, for example, would often be used by those at Germany to help them to figure out who they should get hold of. When these people returned to their own sites, they also often acted as the first point of contact to people at the other site. In addition, people at their own site regarded them as something of an expert on the other location, and would often come to them with questions about who was doing what, and about how things worked at the other site. This, of course, imposed a significant cost on the liaisons, particularly in the earlier days when there were very few people with cross-site experience. 4.2.3 Cost of initiating contact. When developers are co-located, contact can generally be initiated quite easily. There are many cues about who is around, how available they are (e.g., is the door open?), and so on. If someone’s office is only a few feet away, one need expend little effort to stroll down the hall for a chat. Perhaps more significantly, it is socially comfortable to do so, since you know them well, know how to approach them, and have a good sense of how important your question is relative to what they seem to be doing at the moment. For developers at different locations, the cost of initiating contact was often much higher. Who is available. One difficulty is simply determining if someone is available. If they do not, e.g., answer the phone, they could be momentarily tied up, or in the midst of a crisis, or it could be a holiday, or they could be on a vacation (of many weeks). Unlike the same-site case, it is not easy to determine if the person being called is likely to be available. Our interviewees reported it often took many attempts, over many days and often involving several people, to contact someone at the remote site. In the mean time, progress was often held up. Time difference. There is only one hour time difference between the two sites, so one would not think that would make much difference. But this can be very deceptive. There is an hour lost at the beginning (or end) of each day, but since typical lunch time was displaced by an hour, that meant that another hour for each site was unavailable. Add to that the fact that developers at the German site tended to start earlier and finish earlier in the day, and an additional hour or two of potential time overlap was lost. These time differences meant that something that could be handled in a matter of minutes for a same-site development would often have to wait at least until the next business day. Reduced responsiveness. People who know each other relatively well, and know that they will be dealing with each other frequently in the future tend to be more responsive to each other’s needs and requests. Individuals at different 8 sites often seemed relatively unresponsive, e.g., not answering e-mail or voice mail promptly. This again makes it much more costly to initiate contact, since a single message is less likely to be effective. Several of our interviewees believed that it was difficult to accurately gage the importance of a message from another site. Often, they did not understand the context well enough to determine why the question was being asked, or to see why it was an important request and not merely arbitrary or irrelevant. Consequences: Three consequences of the high cost of initiating contact were mentioned. First, developers did not try to communicate as frequently as they would have had they been co-located. They were more inclined to take the risk that significant coordination issues would not arise if they did not check assumptions, etc. People also reported that they were not consulted on decisions made at the other site that affected them. Second, cycle time was increased. Even when messages were answered promptly, developers believed that resolution was far more likely to stretch into the next day. Worse, it often took several days, rather than minutes or hours, to make the right contact. Finally, issues had to be escalated more often, if an adequate and timely response was not forthcoming. 4.2.4 Ability to communicate effectively Once the right person has been identified and communication is initiated, information must be conveyed in a relatively complete and undistorted way for communication to effectively support coordination. What can’t be seen. The most obvious obstacle to communication is simply not being able to see the same things, have access to everything in the environment. This problem took a variety of forms. For example, one lengthy problem involved a hardware and software component from an internal contractor. It was not behaving properly, and the supplier could not duplicate the problem, even though they had identical hardware and could access the software remotely to ensure it was correct. However, they could not “see” a faulty firmware chip, and the problem was very difficult to solve. Another example illustrates a very different form of this problem, in a developer at one site could not see what a tester at another site was doing. As the developer explained it, the documentation essentially said, “leave blank if you want to get all the faults on the system and this tester was typing in ‘b-l-a-n-k,’ the actual word ‘blank’ into the system and that’s it, a lot of problems occurred on that end.” The developer could not duplicate error, naturally, and finally, after several weeks of trying to straighten it out, went to the other site, where the problem was spotted immediately. Communication technologies. Face-to-face meeti