SlideShare a Scribd company logo
Anatomy of Open Source
Software
Greg Sheremeta
● Intended Audience
○ non-technical, entry level technical non-programmers, students
What is Open Source?
“refers to something that can be
modified because its design is publicly
accessible.”
http://opensource.com/resources/what-open-source
chocolate cookie recipe -- add walnuts (“fork” the recipe)
Open Source Software Development
is a process
when referring to open source software dev in particular,
I like to define it as a process model.
The scientific method is a process model that most people are familiar with
open source software development … is a process with tasks, inputs, tools, decisions,
and outputs.
What is it not?
● open source != free software
○ although there is huge overlap. Most open source software is free
● it is also not shareware, or try before you buy software
[next slide -- winrar image]
7-zip -- open source alternative to winzip and winrar
What is it not?x
Scope
● Software
● Hardware
● Media
● Government
● Cola!
https://opensource.com/about
hardware - arduino board -- i’ll show that in a minute
media -- icons, fonts, graphics
government - raleigh
cola -recipe public. some attempt to mimic coca cola
Do people prefer using open
source?
● Do people prefer using open source?
○ If so, why?
■ Linux users in the room?
○ If not, why not?
■ Macbook users. Your OS isn’t open source. Have you
purposely chosen a non-OSS OS? if so, why?
○ Note that I’m using Fedora (open source OS), but this very
presentation is done in Google Slides (not open source). I could have
used LibreOffice, but I prefer the cloud-based nature and ease of use
of Google Slides.
Red Hat’s founder used this analogy: "Would you buy a car with the hood welded
shut?" Most of us would answer no. And while most of us are not mechanics, it’s nice
to know we can get in there and poke around if we absolutely needed to. Or, that we
can have someone other than the manufacturer take a look if we choose.
This is a Viper V10 from the 2015 dodge viper. my favorite all time car. I wouldn’t
dream of touching this engine, right? But I just want to know that I could if I wanted to.
Image from http://www.topspeed.com/cars/dodge/2015-dodge-viper-srt-ar164193.
html Copyright Topspeed
“Permission to use materials from the Service (the "Materials") is granted
provided that: (a) The copyright notice appears in all copies; (b) Use of such
Materials is for informational and non-commercial or personal use only and will
not be copied or posted on any network computer or broadcast in any media;
and (c) No modifications of the Materials are made.”
Open source is now ubiquitous.
Almost all programmers use some open source code in their day jobs. (Doug
mentioned at 10 am session -- only 50% of their managers know it!)
Linux has replaced Unix in the datacenter
85% of phones shipped today are based on open source (Android) (http://www.
pcworld.com/article/2460020/android-grabs-record-85-percent-smartphone-share.
html)
Formal definition
“[O]pen source [software] refers to a computer
program in which the source code is available
to the general public for use and/or modification
from its original design.”
http://en.wikipedia.org/wiki/Open_source
I said earlier that I define “open source software development” as broadly as possible
by calling is a process model.
The only thing developers like to create more than code are processes for writing
code. Sometimes they're called “software development lifecycles.”
The most popular ones at the moment are called Kanban and Scrum -- have people
heard of those?
For those that haven’t, these are methods of developing software that borrow ideas
from Lean Manufacturing. Kanban is very simple. You track your work in some
columns -- To Do, Doing, and Done. You simply limit the amount of work in Doing
column. Very simple.. Scrum is very popular right now and is famous for having Stand
Up meetings, where everyone meets every morning, and everyone stands up to
hopefully help the meeting move along faster, because no one wants to stand up.
{next slide}
{pause}
Scrum and Kanban are somewhat complementary to open source development, and
I’d argue they’re the two most widely used complementary lifecycles when doing open
source development. I’d also argue that open source used Kanban long before the
term became as popular and well-known as it is today.
In just a minute we’ll start digging into what the actual components of open source
software development are.
But first, I wanted to show two more definitions, because I think these help a lot.
“[T]ypically a collaborative effort where
programmers improve upon the source code
and share the changes within the community so
that other members can help improve it further.”
also from the wikipedia page
upward spiral
{ next slide }
“Open source software is software whose
source code is available for modification or
enhancement by anyone. … Programmers who
have access to a computer program's source
code can improve that program by adding
features to it or fixing parts that don't always
work correctly.”
http://opensource.com/resources/what-open-source
Contributions
● Vast majority of people are users and don’t contribute.
○ and that’s absolutely fine!
○ but I’d love for YOU to contribute, and I’m going to show you how easy
it is to do
● Open source runs on contributions from a wide variety of people. Some are
volunteers, and others are paid by companies to work on open source (or what
I like to call, living the dream)
● Since we need contributions, we want to be as open and welcoming as
possible!
Inputs
● Programmers (Code)
● Graphic designers (layouts, images, etc.)
● Documentation authors (Documentation)
● more rarely -- analysts, user experience
designers, project managers, people
managers, etc.
so, let’s talk about the components of the open source process. Inputs.
○ more rarely -- analysts, user experience designers, project managers, people
managers, etc.
■ small projects never have these things. Large projects often don’t, but
they often do when project is sponsored or steered by a company
Patches
programmers submit code to an open source project in the form of a “patch”. This is
an easy way to send
code updates to others via email.
There are other tools that we can use to send patches. Email is the lowest common
denominator, but people also use tools such as github and gerrit.
Roles
● Contributors
● Maintainers
● Committers
● Owners / Project leads
(Usually meritocracy, held by programmers)
some more components -- here we have Roles
i’ll go into more depth on those in a minute
Contributors
● Simple. People who contribute.
● Filing a bug! Even pointing out a typo.
● Submitting a contribution
○ Caution: Sometimes your contribution is not
included!
● Helping others in a forum or an IRC channel
Maintainers and Committers
● Maintainers accept code from people
● Committers have permissions to write new
code into the version control repository
● On very large projects, these can be
different roles. Usually they are not.
Owner / Project Leader
Public leader, figurehead. Often the founder of a project. Voted in by committers or
maintainers.
Meritocracy means …
“The more you contribute the more
responsibility you will earn. Leadership roles ...
are also merit-based and earned by peer
acclaim.“
http://www.xenproject.org/governance.html
the more you contribute -- and assuming those contributions are good -- the more
responsibility you will earn.
so committers and maintainers must earn those responsibilities.
usually you earn then by writing lots of good patches that get accepted.
Tasks
● Releasing, versions
● Forks
● Licensing
● Handling requests (bugs, enhancements,
etc.)
some tasks that are common to open source
Releases -- actually releasing the software. Open source projects are usually
released very early in their lives.
The developers decide which features they want to bundle together in a release, they
give it a version number, and
send it out into the world.
Forks -- often developers will want to make their own special copies of a project, and
that’s called a fork. There
are many reason people want to create whole copies of a project and branch out on
their own. If you’re familiar with
Linux, there are numerous forks of Linux called “distros”. Fedora, Ubuntu, Debian,
and Mint are some of the more
popular ones today.
licensing i’ll talk more about in a minute
(there was a dedicated talk next about licencing this morning, given by a real lawyer.
IANAL so i’m not qualified to talk about licensing in any depth. but the talk this
morning was awesome -- i hope you got a chance to see it.)
Once your code is out there and people are using it, they’re going to find issues and
they’re going to have requests for additional features.
And so you need tools to help with that. {next slide}
Licensing
● Copyleft vs. permissive
● Copyleft -- all derivative works must retain
the license, and remain open source
○ GNU GPL
● Permissive -- open source, no or limited
restrictions
○ Apache Public License
http://en.wikipedia.org/wiki/Comparison_of_free_and_open-
source_software_licenses
(disclaimer: this is my [probably over-simplified] take)
● Huge topic -- can (and will) fill its own presentation
○ Lots of variables, but I see them as two main types -- copyleft and
permissive
○ Copyleft -- all derivative works (explain that term) must retain the
license, and remain open source
■ GNU GPL
○ Permissive -- open source, no or limited restrictions
■ Apache Public License
● http://en.wikipedia.org/wiki/Comparison_of_free_and_open-
source_software_licenses
Tools that support
● Programming editors
● Version control software
● Code review software
● Issue / request tracker
● Communication
● Programming editors
○ Notepad! vi, nano, emacs, Notepad++, and smarter ones that offer
coding suggestions
Tools that support
● Programming editors
● Version control software
● Code review software
● Issue / request tracker
● Communication
○ Version control software ( don’t explain yet ) {next slide - git blame}
git blame - version control
Tools that support
● Programming editors
● Version control software
● Code review software
● Issue / request tracker
● Communication
code review software -- these are relatively new tools that are really great. They allow
developers to visually see the changes,
and then they can make comments of suggestions right on a line by line basis { next
slide}
gerrit, showing line by line comments
Tools that support
● Programming editors
● Version control software
● Code review software
● Issue / request tracker
● Communication
Issue / request tracker
Red Hat’s Bugzilla
Tools that support
● Programming editors
● Version control software
● Code review software
● Issue / request tracker
● Communication
Issue / request tracker
Build automation
Communication (email, IRC, web forums, Slack)
(demos)
https://github.com/pithos/pithos/issues/67
Thanks!
greg@gregsheremeta.com

More Related Content

PDF
Understanding and implementation of open source ecosystems final
PDF
Understand Open Source ecosystems
ODP
Java Memory Consistency Model - concepts and context
PDF
From hello world to goodbye code
PDF
Open source for non contributors
PDF
Teaching Open Source In The University
PPTX
How to get started in Open Source!
PDF
Why do Companies Write Open Source Software
Understanding and implementation of open source ecosystems final
Understand Open Source ecosystems
Java Memory Consistency Model - concepts and context
From hello world to goodbye code
Open source for non contributors
Teaching Open Source In The University
How to get started in Open Source!
Why do Companies Write Open Source Software

Viewers also liked (6)

PDF
Open Hardware at CERN - a quick introduction by Javier Serrano
PDF
openBoM: Ten features you will value for 10$ / user / month
KEY
Making Money From Open Source Hardware
PDF
openBoM for BoltVC #hardware #startup meetup
PDF
Open platform design flow chart vs 0.2
PDF
Business Models for Open Source Hardware
Open Hardware at CERN - a quick introduction by Javier Serrano
openBoM: Ten features you will value for 10$ / user / month
Making Money From Open Source Hardware
openBoM for BoltVC #hardware #startup meetup
Open platform design flow chart vs 0.2
Business Models for Open Source Hardware
Ad

Similar to Contributing to an Open Source Project 101 (20)

PDF
Michael Widenius
PDF
Leading An Open Source Project As A Startup
PDF
Leading an open source project as a startup
PDF
Micheal Monty Widenius - Free Open Source Software Entrepreneurship
PPT
IDCEE 2013: How to do a successful company around open source - Michael Widen...
PPTX
Open source and then some: An Introduction
PDF
Ice dec05-04-wan leung
PDF
"Open Source and the Choice to Cooperate" by Brian Behlendorf @ eLiberatica 2007
DOC
Ethical Consideration of Open Source Software
PDF
Tiếng Anh công nghệ thông tin VHU Tuần 5
PDF
Succeeding with FOSS!
PDF
How Open Source / Open Technology Could Help On Your Project
PPT
Open source a presentation
PPTX
Open Source Product Management
PDF
LCA14: LCA14-110: FLOSS Training
PDF
Open Design @ Tec Guadalajara - Mexico - 23/08/2011
ODP
Resources For Floss Projects
KEY
What is open source?
PDF
Open agile is free and open source community agile-
PDF
Open Source Software[1]
Michael Widenius
Leading An Open Source Project As A Startup
Leading an open source project as a startup
Micheal Monty Widenius - Free Open Source Software Entrepreneurship
IDCEE 2013: How to do a successful company around open source - Michael Widen...
Open source and then some: An Introduction
Ice dec05-04-wan leung
"Open Source and the Choice to Cooperate" by Brian Behlendorf @ eLiberatica 2007
Ethical Consideration of Open Source Software
Tiếng Anh công nghệ thông tin VHU Tuần 5
Succeeding with FOSS!
How Open Source / Open Technology Could Help On Your Project
Open source a presentation
Open Source Product Management
LCA14: LCA14-110: FLOSS Training
Open Design @ Tec Guadalajara - Mexico - 23/08/2011
Resources For Floss Projects
What is open source?
Open agile is free and open source community agile-
Open Source Software[1]
Ad

More from POSSCON (20)

PDF
Why Meteor.JS?
PDF
Vagrant 101
PDF
Tools for Open Source Systems Administration
PPTX
Assembling an Open Source Toolchain to Manage Public, Private and Hybrid Clou...
PPTX
Accelerating Application Delivery with OpenShift
PDF
Openstack 101
ODP
Community Building: The Open Source Way
PPTX
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
PDF
Software Defined Networking (SDN) for the Datacenter
PDF
Application Security on a Dime: A Practical Guide to Using Functional Open So...
ODP
Why Your Open Source Story Matters
PDF
How YARN Enables Multiple Data Processing Engines in Hadoop
PPTX
Google Summer of Code
PDF
Introduction to Hadoop
PDF
How to Use Cryptography Properly: The Common Mistakes People Make When Using ...
PPTX
Cyber Security and Open Source
PDF
Intro to AngularJS
PDF
Docker 101: An Introduction
PDF
Graph the Planet!
PDF
Software Freedom Licensing: What You Must Know
Why Meteor.JS?
Vagrant 101
Tools for Open Source Systems Administration
Assembling an Open Source Toolchain to Manage Public, Private and Hybrid Clou...
Accelerating Application Delivery with OpenShift
Openstack 101
Community Building: The Open Source Way
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
Software Defined Networking (SDN) for the Datacenter
Application Security on a Dime: A Practical Guide to Using Functional Open So...
Why Your Open Source Story Matters
How YARN Enables Multiple Data Processing Engines in Hadoop
Google Summer of Code
Introduction to Hadoop
How to Use Cryptography Properly: The Common Mistakes People Make When Using ...
Cyber Security and Open Source
Intro to AngularJS
Docker 101: An Introduction
Graph the Planet!
Software Freedom Licensing: What You Must Know

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Electronic commerce courselecture one. Pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
KodekX | Application Modernization Development
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
cuic standard and advanced reporting.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Big Data Technologies - Introduction.pptx
PDF
Encapsulation theory and applications.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
MYSQL Presentation for SQL database connectivity
Digital-Transformation-Roadmap-for-Companies.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Electronic commerce courselecture one. Pdf
Machine learning based COVID-19 study performance prediction
KodekX | Application Modernization Development
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
CIFDAQ's Market Insight: SEC Turns Pro Crypto
20250228 LYD VKU AI Blended-Learning.pptx
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Network Security Unit 5.pdf for BCA BBA.
cuic standard and advanced reporting.pdf
Empathic Computing: Creating Shared Understanding
Big Data Technologies - Introduction.pptx
Encapsulation theory and applications.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Mobile App Security Testing_ A Comprehensive Guide.pdf

Contributing to an Open Source Project 101

  • 1. Anatomy of Open Source Software Greg Sheremeta
  • 2. ● Intended Audience ○ non-technical, entry level technical non-programmers, students
  • 3. What is Open Source? “refers to something that can be modified because its design is publicly accessible.” http://opensource.com/resources/what-open-source chocolate cookie recipe -- add walnuts (“fork” the recipe)
  • 4. Open Source Software Development is a process when referring to open source software dev in particular, I like to define it as a process model. The scientific method is a process model that most people are familiar with open source software development … is a process with tasks, inputs, tools, decisions, and outputs.
  • 5. What is it not? ● open source != free software ○ although there is huge overlap. Most open source software is free ● it is also not shareware, or try before you buy software [next slide -- winrar image]
  • 6. 7-zip -- open source alternative to winzip and winrar
  • 7. What is it not?x
  • 8. Scope ● Software ● Hardware ● Media ● Government ● Cola! https://opensource.com/about hardware - arduino board -- i’ll show that in a minute media -- icons, fonts, graphics government - raleigh cola -recipe public. some attempt to mimic coca cola
  • 9. Do people prefer using open source? ● Do people prefer using open source? ○ If so, why? ■ Linux users in the room? ○ If not, why not? ■ Macbook users. Your OS isn’t open source. Have you purposely chosen a non-OSS OS? if so, why? ○ Note that I’m using Fedora (open source OS), but this very presentation is done in Google Slides (not open source). I could have used LibreOffice, but I prefer the cloud-based nature and ease of use of Google Slides.
  • 10. Red Hat’s founder used this analogy: "Would you buy a car with the hood welded shut?" Most of us would answer no. And while most of us are not mechanics, it’s nice to know we can get in there and poke around if we absolutely needed to. Or, that we can have someone other than the manufacturer take a look if we choose. This is a Viper V10 from the 2015 dodge viper. my favorite all time car. I wouldn’t dream of touching this engine, right? But I just want to know that I could if I wanted to. Image from http://www.topspeed.com/cars/dodge/2015-dodge-viper-srt-ar164193. html Copyright Topspeed “Permission to use materials from the Service (the "Materials") is granted provided that: (a) The copyright notice appears in all copies; (b) Use of such Materials is for informational and non-commercial or personal use only and will not be copied or posted on any network computer or broadcast in any media; and (c) No modifications of the Materials are made.”
  • 11. Open source is now ubiquitous. Almost all programmers use some open source code in their day jobs. (Doug mentioned at 10 am session -- only 50% of their managers know it!) Linux has replaced Unix in the datacenter 85% of phones shipped today are based on open source (Android) (http://www. pcworld.com/article/2460020/android-grabs-record-85-percent-smartphone-share. html)
  • 12. Formal definition “[O]pen source [software] refers to a computer program in which the source code is available to the general public for use and/or modification from its original design.” http://en.wikipedia.org/wiki/Open_source I said earlier that I define “open source software development” as broadly as possible by calling is a process model. The only thing developers like to create more than code are processes for writing code. Sometimes they're called “software development lifecycles.” The most popular ones at the moment are called Kanban and Scrum -- have people heard of those? For those that haven’t, these are methods of developing software that borrow ideas from Lean Manufacturing. Kanban is very simple. You track your work in some columns -- To Do, Doing, and Done. You simply limit the amount of work in Doing column. Very simple.. Scrum is very popular right now and is famous for having Stand Up meetings, where everyone meets every morning, and everyone stands up to hopefully help the meeting move along faster, because no one wants to stand up. {next slide}
  • 13. {pause} Scrum and Kanban are somewhat complementary to open source development, and I’d argue they’re the two most widely used complementary lifecycles when doing open source development. I’d also argue that open source used Kanban long before the term became as popular and well-known as it is today. In just a minute we’ll start digging into what the actual components of open source software development are. But first, I wanted to show two more definitions, because I think these help a lot.
  • 14. “[T]ypically a collaborative effort where programmers improve upon the source code and share the changes within the community so that other members can help improve it further.” also from the wikipedia page upward spiral { next slide }
  • 15. “Open source software is software whose source code is available for modification or enhancement by anyone. … Programmers who have access to a computer program's source code can improve that program by adding features to it or fixing parts that don't always work correctly.” http://opensource.com/resources/what-open-source
  • 16. Contributions ● Vast majority of people are users and don’t contribute. ○ and that’s absolutely fine! ○ but I’d love for YOU to contribute, and I’m going to show you how easy it is to do ● Open source runs on contributions from a wide variety of people. Some are volunteers, and others are paid by companies to work on open source (or what I like to call, living the dream) ● Since we need contributions, we want to be as open and welcoming as possible!
  • 17. Inputs ● Programmers (Code) ● Graphic designers (layouts, images, etc.) ● Documentation authors (Documentation) ● more rarely -- analysts, user experience designers, project managers, people managers, etc. so, let’s talk about the components of the open source process. Inputs. ○ more rarely -- analysts, user experience designers, project managers, people managers, etc. ■ small projects never have these things. Large projects often don’t, but they often do when project is sponsored or steered by a company
  • 18. Patches programmers submit code to an open source project in the form of a “patch”. This is an easy way to send code updates to others via email. There are other tools that we can use to send patches. Email is the lowest common denominator, but people also use tools such as github and gerrit.
  • 19. Roles ● Contributors ● Maintainers ● Committers ● Owners / Project leads (Usually meritocracy, held by programmers) some more components -- here we have Roles i’ll go into more depth on those in a minute
  • 20. Contributors ● Simple. People who contribute. ● Filing a bug! Even pointing out a typo. ● Submitting a contribution ○ Caution: Sometimes your contribution is not included! ● Helping others in a forum or an IRC channel
  • 21. Maintainers and Committers ● Maintainers accept code from people ● Committers have permissions to write new code into the version control repository ● On very large projects, these can be different roles. Usually they are not.
  • 22. Owner / Project Leader Public leader, figurehead. Often the founder of a project. Voted in by committers or maintainers.
  • 23. Meritocracy means … “The more you contribute the more responsibility you will earn. Leadership roles ... are also merit-based and earned by peer acclaim.“ http://www.xenproject.org/governance.html the more you contribute -- and assuming those contributions are good -- the more responsibility you will earn. so committers and maintainers must earn those responsibilities. usually you earn then by writing lots of good patches that get accepted.
  • 24. Tasks ● Releasing, versions ● Forks ● Licensing ● Handling requests (bugs, enhancements, etc.) some tasks that are common to open source Releases -- actually releasing the software. Open source projects are usually released very early in their lives. The developers decide which features they want to bundle together in a release, they give it a version number, and send it out into the world. Forks -- often developers will want to make their own special copies of a project, and that’s called a fork. There are many reason people want to create whole copies of a project and branch out on their own. If you’re familiar with Linux, there are numerous forks of Linux called “distros”. Fedora, Ubuntu, Debian, and Mint are some of the more popular ones today. licensing i’ll talk more about in a minute (there was a dedicated talk next about licencing this morning, given by a real lawyer. IANAL so i’m not qualified to talk about licensing in any depth. but the talk this morning was awesome -- i hope you got a chance to see it.) Once your code is out there and people are using it, they’re going to find issues and they’re going to have requests for additional features.
  • 25. And so you need tools to help with that. {next slide}
  • 26. Licensing ● Copyleft vs. permissive ● Copyleft -- all derivative works must retain the license, and remain open source ○ GNU GPL ● Permissive -- open source, no or limited restrictions ○ Apache Public License http://en.wikipedia.org/wiki/Comparison_of_free_and_open- source_software_licenses (disclaimer: this is my [probably over-simplified] take) ● Huge topic -- can (and will) fill its own presentation ○ Lots of variables, but I see them as two main types -- copyleft and permissive ○ Copyleft -- all derivative works (explain that term) must retain the license, and remain open source ■ GNU GPL ○ Permissive -- open source, no or limited restrictions ■ Apache Public License ● http://en.wikipedia.org/wiki/Comparison_of_free_and_open- source_software_licenses
  • 27. Tools that support ● Programming editors ● Version control software ● Code review software ● Issue / request tracker ● Communication ● Programming editors ○ Notepad! vi, nano, emacs, Notepad++, and smarter ones that offer coding suggestions
  • 28. Tools that support ● Programming editors ● Version control software ● Code review software ● Issue / request tracker ● Communication ○ Version control software ( don’t explain yet ) {next slide - git blame}
  • 29. git blame - version control
  • 30. Tools that support ● Programming editors ● Version control software ● Code review software ● Issue / request tracker ● Communication code review software -- these are relatively new tools that are really great. They allow developers to visually see the changes, and then they can make comments of suggestions right on a line by line basis { next slide}
  • 31. gerrit, showing line by line comments
  • 32. Tools that support ● Programming editors ● Version control software ● Code review software ● Issue / request tracker ● Communication Issue / request tracker
  • 34. Tools that support ● Programming editors ● Version control software ● Code review software ● Issue / request tracker ● Communication Issue / request tracker Build automation Communication (email, IRC, web forums, Slack)