What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting

Slides:



Advertisements
Similar presentations
MGD Services, Inc. The IT Quality Assurance Specialists
Advertisements

Copyright © 2007 Knowbility, Inc. Accessibility Testing 1 Code Validators – XHTML & CSS Accessibility Validators – Page by Page Listening to Your Pages.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Why Software.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Ulrich Frank, Stefan Strecker Information Systems and Enterprise Modelling research group ICB Institute for Computer Science and Business Information Systems.
Europa Simultaneous Release | © 2007 by Borland Software Corporation, made available under the EPL v1.0 1 GMF 2.0 Europa Simultaneous Release June 06,
© 2007 by Raghu Srinivasan; made available under the EPL v1.0 | Presenter Raghu Srinivasan Project Lead Oracle Inc. The JSF Tools Project –
AJDT and AspectJ Release Review | © 2007 by SpringSource, made available under the EPL v1.0 1 Release Review: AJDT and AspectJ
© 2007 by Neil Hauge; made available under the EPL v1.0 | Neil Hauge Project Lead Oracle Dali JPA Tools Project – Graduation Review Draft.
HINARI Introductory Overview (DOs and DONTs of HINARI)
EVERY CONNECTION has a starting point. EVERY CONNECTION has a starting point. WorldCat Navigator - Authentication Library Hosted Navigator EZproxy and.
Code Review as a Great Tool in the Agile Toolbox Matthias Sohn, Stefan Lay (SAP)
© 3GPP 2009 Mobile World Congress, Barcelona, 19 th February 2009© 3GPP GPP The Training Course / Module 4 1 All you always wanted to know about.
Centre Bounce Teams SCA's Methodology for Growing Our Network of Chaplains to Sport in Australia Sports Chaplaincy Australia.
EPD-EN-01© Crown copyright 2009 Going for gold Literacy Plus unit R1 Resources R1.1 and R1.2 Image of Gold Medal © IOC/Olympic Museums Collections.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
The Free Software Desktop Project By: Joshua Anglero
OWASP Secure Coding Practices Quick Reference Guide
Presentation by Priyanka Sawarkar
Chapter 10 Software Testing
Acceptance Testing.
Empowering Your Organization Lori Bowen Ayre KohaCon 2009 Plano, Texas.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Introduction.
Improving Process for Better Software. Who We Are An experiential learning program that provides technology solutions for our partners, and real- world.
IS 214 Needs Assessment and Evaluation of Information Systems Managing Usability © Copyright 2001 Kevin McBride.
Extreme Programming Team Members Gowri Devi Yalamanchi Sandhya Ravi.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Software Engineering Process and Tools in the Mozilla Project How open-source CM tools made Firefox the fastest and safest web browser.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Effective Methods for Software and Systems Integration
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
© Paradigm Publishing, Inc. 5-1 Chapter 5 Application Software Chapter 5 Application Software.
Software Quality Assurance QA Engineering, Testing, Bug Tracking, Test Automation Software University Technical Trainers SoftUni Team.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Background The Encyclopedio of Life (EOL) is an ROR open source project to create a free, online reference source and database for every one of the 1.8.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
..OR SOMETHING THAT LOOKS LIKE IT SCOTT TURNBULL SOFTWARE ENGINEERING MANAGER EMORY UNIVERSITY LIBRARIES Agile Development.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
Operating Systems AOIT Principles of Information Technology.
PUBLISHING ONLINE Chapter 2. Overview Blogs and wikis are two Web 2.0 tools that allow users to publish content online Blogs function as online journals.
Open Source Software Bangladesh University of Business and Technology Nizar Saadi Dahir M.Sc. Computer Engineering Computer Center- Kufa University
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Open Source The Future of Software What’s Open Source Open-source software is computer software whose source code is available under a copyright license.
Amber Pryor Emerging Technology: Open Source. A Definition Open source literally means that the source code is “open,” or that it can be seen or accessed.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
How to Publish Your Code on COIN-OR Bob Fourer Industrial Engineering & Management Sciences Northwestern University COIN Strategic Leadership Board.
DevelopersCommitters Users I’m getting the following exception…. Anybody have any clue why??? +1, I like that idea… Source & Binary Code Repository Bug.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
COLLABORATIVE WEB 2.0 TOOLS IN EDUCATION USING WIKIS & BLOGS IN THE CLASSROOM.
Google Apps and Tools for the Classroom
1 Multimedia Development Team. 2 To discuss phases of MM production team members Multimedia I.
School Library Management Sunil MV SDM Institute for Management Development
PowerTalk automatically speaks the text in presentations while you operate PowerPoint as usual. It uses computer speech that comes with Windows XP and.
Copyright ©, Tony Wasserman, FOSS and Software Engineering Tony Wasserman Open Source Class SummerA 2010.
Introduction to Project Management
Presentation transcript:

What Makes Open Source Projects Work Andrew Stellman Stellman & Greene Consulting

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

Author of…

This presentation is open source You can download the presentation here: Released under the GNU Free Documentation License 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?

When developers know they need to do the job right, they use better practices!

How They Do It Successful open source projects use practices that improve: 1.Documentation 2.Quality and Software Process 3.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

Wiki example: KDE Developer’s Corner Source:

KDE Wiki: HOWTOs and FAQs Source:

KDE Wiki: Project Management Source:

KDE Wiki: Tutorials Source:

KDE Wiki: kHello Tutorial Source:

KDE Wiki: kHello Tutorial Source:

Other Developer Wikis

Mailing List Example: GNU Emacs Source:

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

Scope Documentation Example: Plone Source:

Scope Documentation Example: Plone Source:

Coding Convetions Example: Eclipse Source:

Build Documentation Example: Mozilla Source:

User Documentation Example: GIMP Source:

User Documentation Example: GIMP Source:

User Documentation Example: GIMP Source:

Screencast Example: Ruby on Rails Source:

2. Quality Unit testing, functional testing and acceptance testing

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?

Yes, it’s true. Source:

Quality Case Study: Mozilla Firefox Source:

Firefox: Code Review Source:

Firefox: Unit Testing Policy Source:

Firefox: Performance Testing Source:

Firefox: Continuous Integration Source:

Firefox: Test Policy Source:

Firefox: Test Policy Source:

Firefox: Test Case Management Source:

Firefox: Defect Tracking Source:

Firefox: Smoke Tests Source:

Firefox: Community Test Day Source:

3. Code and Architecture A few important techniques that help with teams

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!

Q&A Andrew Stellman Stellman & Greene Consulting