Top Banner
What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting http://www.stellman-greene.com/ opensource
50

What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting greene.com/opensource.

Dec 13, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

What Makes Open Source Projects Work

Andrew Stellman

Stellman & Greene Consulting

http://www.stellman-greene.com/opensource

Page 2: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Who I am…

I’m a:

• Software engineer

• Programmer

• Author of books and articles

• Process improvement specialist

• PMP-certified project manager

• Open source project maintainer

Page 3: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Author of…

Page 4: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

This presentation is open source

You can download the presentation here:http://stellman-greene.com/opensource

Released under the GNU Free Documentation Licensehttp://www.gnu.org/licenses/fdl.txt

Copyright © 2007 Stellman & Greene Consulting, LLC. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.

Page 5: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Why look to open source?

• Even now, there’s still a software crisis

• Less than a third of software projects are successful

• Many prominent open source projects succeed under conditions that would sink most corporate projects

Page 6: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

The story so far

• “What Corporate Projects Should Learn from Open Source” – 2/26/06

• Five basic principles:– Tell the truth all the time – Trust the team – Review everything, test everything – All developers are created equal – The fastest way through the project is to do it

right

Page 7: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

We want details!

• Great on principles, light on specifics!

• Successful open source projects:– Deliver high quality– Bring diverse, volunteer-heavy teams together

without ever holding a single meeting– Encourage wide participation– Keep their user base highly satisfied

• How do they do it?

Page 8: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Highly Motivated Developers

• Volunteers are naturally excited• Team members are doing work that they want to

do, rather than work they must be paid to do• There’s no schedule pressure, so they don’t cut

corners.• Everyone’s public reputation is on the line

The team wants the job done right! How does that change the way

they work?

Page 9: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

When developers know they need to

do the job right, they use better

practices!

Page 10: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

How They Do It

Successful open source projects use practices that improve:

1. Documentation2. Quality and Software Process3. Code and Architecture

Page 11: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

1. Documentation

Tools, techniques and practices for writing down the things that you need to run your project

Page 12: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Wikis and Mailing Lists

• Documentation is a communication tool• Open source projects use documentation tools

that are focused on communicating• Wikis are popular because they are optimal

distribution, collaboration and revision history• Mailing lists are useful for keeping track of all

communications, and serve as a record

Page 13: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Wiki example: KDE Developer’s Corner

Source: http://developer.kde.org/documentation/

Page 14: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

KDE Wiki: HOWTOs and FAQs

Source: http://developer.kde.org/documentation/other/index.html

Page 15: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

KDE Wiki: Project Management

Source: http://developer.kde.org/development-versions/

Page 16: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

KDW Wiki: Tutorials

Source: http://developer.kde.org/documentation/tutorials/

Page 17: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

KDE Wiki: kHello Tutorial

Source: http://developer.kde.org/documentation/tutorials/khello/khello.htm

Page 18: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

KDE Wiki: kHello Tutorial

Source: http://developer.kde.org/documentation/tutorials/khello/khello1.htm

Page 19: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Other Developer Wikis

Page 20: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Mailing List Example: GNU Emacs

Source: http://savannah.gnu.org/mail/?group_id=40

Page 21: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Documentation

• Well-managed software projects require well-maintained documentation:– Scope documentation– Code and API documentation – Build documentation and release notes– User documentation– Screencasts

Page 22: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Scope Documentation Example: Plone

Source: http://plone.org/products/plone/roadmap

Page 23: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Scope Documentation Example: Plone

Source: http://plone.org/products/plone/roadmap

Page 24: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Coding Convetions Example: Eclipse

Source: http://wiki.eclipse.org/index.php/Development_Conventions_and_Guidelines

Page 25: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Build Documentation Example: Mozilla

Source: http://developer.mozilla.org/en/docs/Build_Documentation

Page 26: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

User Documentation Example: GIMP

Source: http://www.gimp.org/docs/

Page 27: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

User Documentation Example: GIMP

Source: http://docs.gimp.org/en/

Page 28: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

User Documentation Example: GIMP

Source: http://docs.gimp.org/en/

Page 29: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Screencast Example: Ruby on Rails

Source: http://media.rubyonrails.org/video/rails_take2_with_sound.mov

QuickTime™ and a decompressor

are needed to see this picture.

Page 30: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

2. Quality

Unit testing, functional testing and acceptance testing

Page 31: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Software Process and Quality

• You can’t test quality in at the end• Successful open source projects plan quality into

the entire software lifecycle: – Code Review– Automated unit tests– Performance testing– Continuous integration– Software testing and test case management– Smoke tests– Organized user test events

Do open source teams really do this?

Page 32: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Yes, it’s true.

Source: http://hobocentral.net/blog/2006/12/28/wot-no-tests/

Page 33: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Quality Case Study: Mozilla Firefox

Source: http://wiki.mozilla.org/Firefox3/Goals

Page 34: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Firefox: Code Review

Source: http://www.mozilla.org/hacking/reviewers.html

Page 35: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Firefox: Unit Testing Policy

Source: http://developer.mozilla.org/devnews/index.php/2006/11/06/toolkit-unit-testing/

Page 36: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Firefox: Performance Testing

Source: http://wiki.mozilla.org/Performance:Tinderbox_Tests

Page 37: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Firefox: Continuous Integration

Source: http://tinderbox.mozilla.org/showbuilds.cgi?tree=Firefox

Page 38: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Firefox: Test Policy

Source: http://developer.mozilla.org/en/docs/QA

Page 39: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Firefox: Test Policy

Source: http://developer.mozilla.org/en/docs/Bug_writing_guidelines

Page 40: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Firefox: Test Case Management

Source: http://litmus.mozilla.org/index.cgi

Page 41: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Firefox: Defect Tracking

Source: https://bugzilla.mozilla.org/

Page 42: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Firefox: Smoke Tests

Source: http://www.mozilla.org/quality/smoketests/

Page 43: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Firefox: Community Test Day

Source: http://wiki.mozilla.org/Mozilla_QA_Community:Firefox_2.0b1_Community_Test_Day

Page 44: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

3. Code and Architecture

A few important techniques that help with teams

Page 45: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Code and Architecture Practices

• Module-based architecture

• Continuous integration

• Code library distribution

• Automated unit testing

• Test-driven development

Page 46: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

So what now?

How you can use the tools, techniques and practices that make successful open source

projects work

Page 47: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Contracting is like open source

• If you work at a contractor or vendor, your team is similar to an open source team:– Geographically distributed virtual team– Higher turnover of staff– Need to quickly ramp up new team members– Usually work with a strict process

Page 48: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

What about in-house teams?

• Of course they can benefit!– Practices developed for virtual teams work

BETTER for co-located ones– Quality improvement is easier in-house– Test-driven development, continuous

integration and other development practices are always a good idea

Page 49: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

“So where do I start?”

• Build a wiki and start populating it• Start building unit tests for the next new class to

be constructed• If product scope isn’t documented, write it down

immediately!• Set up automated build procedures and a

continuous integration system• Talk to your team members and get them fired

up about using open source practices!

Page 50: What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting  greene.com/opensource.

Q&A

Andrew Stellman

Stellman & Greene Consulting

http://www.stellman-greene.com/opensource