Date post: | 13-Dec-2015 |
Category: |
Documents |
Upload: | alicia-mclaughlin |
View: | 213 times |
Download: | 0 times |
What Makes Open Source Projects Work
Andrew Stellman
Stellman & Greene Consulting
http://www.stellman-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
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.
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
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
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?
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?
How They Do It
Successful open source projects use practices that improve:
1. Documentation2. Quality and Software Process3. Code and Architecture
1. Documentation
Tools, techniques and practices for writing down the things that you need to run your project
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
KDE Wiki: kHello Tutorial
Source: http://developer.kde.org/documentation/tutorials/khello/khello.htm
KDE Wiki: kHello Tutorial
Source: http://developer.kde.org/documentation/tutorials/khello/khello1.htm
Documentation
• Well-managed software projects require well-maintained documentation:– Scope documentation– Code and API documentation – Build documentation and release notes– User documentation– Screencasts
Coding Convetions Example: Eclipse
Source: http://wiki.eclipse.org/index.php/Development_Conventions_and_Guidelines
Build Documentation Example: Mozilla
Source: http://developer.mozilla.org/en/docs/Build_Documentation
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.
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?
Firefox: Unit Testing Policy
Source: http://developer.mozilla.org/devnews/index.php/2006/11/06/toolkit-unit-testing/
Firefox: Community Test Day
Source: http://wiki.mozilla.org/Mozilla_QA_Community:Firefox_2.0b1_Community_Test_Day
Code and Architecture Practices
• Module-based architecture
• Continuous integration
• Code library distribution
• Automated unit testing
• Test-driven development
So what now?
How you can use the tools, techniques and practices that make successful open source
projects work
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
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
“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!