SlideShare a Scribd company logo
Community based software development: The GRASS GIS project Seminar at Department of Information and  Communication Technology University of Trento, 28 May 2008 M. Neteler neteler at cealp.it http://www.cealp.it  FEM-CEA (Trento), Italy
Seminar Outline Introduction to the GRASS project Communication structure Code development Structure of the development team:  be collaborative in the cyberspace Legal Issues
Objectives of GRASS project Continue to develop free software GIS (since 1982) Deliver high quality algorithms (often academia based) for spatial data analysis innovative visualization modeling and simulation Import of  3D DXF objects
Desktop GIS: GRASS GIS Brief Introduction – Development and System Requirements Developed since 1984,  always Open Source , since 1999 under  GNU General Public License Written in C programming language,  portable code  (32/64bit) International development team , since 2001 coordinated at ITC-irst,   since 2008 at OSGeo.org Distributed as source code, precompiled binaries for various platforms,  CDROM GNU/Linux MacOSX MS-Windows iPAQ
Spatial Data Types Supported Spatial Data Types 2D Raster data incl. image processing 3D Voxel data for volumetric data 2D/3D Vector data with topology Multidimensional points data http://grass.osgeo.org Orthophoto Distances Vector TIN 3D Vector buildings Voxel
GRASS GIS QGIS Geodata viewer with GRASS toolbox,  GPS support, Printing Editor ... http://qgis.org
http://grass.osgeo.org/wiki/WxPython-based_GUI_for_GRASS GRASS GIS: New GUI – Python based
GRASS new features Flood simulation Trento 1966 Courtesy:  www.questotrentino.it Piazza Duomo
GRASS: Person walking distance 10 minutes S. Fontanari - www.mpasol.it
GRASS: Person walking distance 30 minutes S. Fontanari - www.mpasol.it
WebGIS: Integration of data sources GRASS in the Web Real-time monitoring of Earthquakes (provided in Web by USGS) with GRASS/PHP:  http://grass.itc.it/spearfish/php_grass_earthquakes.php
GRASS GIS Interoperability Data models and sources
GRASS: more than 20 years of free GIS http://grass.itc.it 1989: civil Internet 1994: first WWW GRASS 1.0 GRASS 4.2.1/4.3 GRASS 5.0 GRASS 5.1/5.7 GPL'ed GRASS 4.2 Manual code management Automated code management (CVS) PD 1993 1998 1999 1997 University of Baylor 1998 University of Hannover 2001 ITC-irst GRASS 6.0 2001 2005 U.S. CERL (1984-1995) GRASS Development Team   (1997- today) 1984 GRASS 4.1 2000 GPL'ed GRASS Interagency Steering Commitee Open GIS  Open Geospatial   Consortium (OGC)  Consortium (OGC) 1990 1992 2004 Open GRASS   Foundation (OGF) 1994 1997
GRASS Source Code Statistics http://next.ohloh.net/projects/3666 GRASS 6 http://www.sitemeter.com/?a=stats&s=s24grassgis GRASS 6.2.0 release 31 Oct 2006 Visitors at  http://grass.itc.it
GRASS Mailing List Statistics: messages per day ( http://gmane.org  is a mailing list mirror) 600 per month
GRASS SLOC Analysis http://www.ohloh.net/projects/3666 Or do this analysis yourself - Download and run:  http://www.dwheeler.com/sloccount/ SLOC Totals grouped by progr. language: ( Status GRASS 16 April 2007) ansic: 473155 (84.30%) tcl: 44256 (7.88%) sh: 19821 (3.53%) python: 10517 (1.87%) cpp: 10142 (1.81%) perl: 1608 (0.29%) ... Total Physical Source Lines of Code (SLOC) = 561,286 Person-Years = 154.05 ... Total Estimated Cost to Develop = $ 20,810,621 (average salary = $56,286/year,   overhead = 2.40) Generated using David A. Wheeler's 'SLOCCount' Basic COCOMO model, but slightly different parameters http://en.wikipedia.org/wiki/COCOMO#Basic_COCOMO GRASS 6.3.cvs, 16 Apr 2007 GRASS 6.4.svn, 23 May 2008
GRASS Documentation Neteler/Mitasova  (2002/2004/2007) Kluwer/Springer  Boston, 420 S. www.grassbook.org GDF Hannover bR (2005) free document, GNU FDL www.gdf-hannover.de The Programmer's Manual is 'doxygen' based, i.e. it is auto-generated from the source code.
Outline Seminar Introduction to the GRASS project Communication structure Code development Structure of the development team: be collaborative in  the cyberspace Legal Issues
The actors Free Open Source Software (FOSS) Community
Communication tools: Project Portal
Job automatization: Let the computer do it! Cronjobs are a life saver! Web pages are maintained in SVN and updated via  cron  hourly Mirrors sites sync through  rsync Weekly  software snapshots  are generated from SVN source code tarballs binary builts HTML and PDF manual pages local search engine
Communication tools: Wiki and Bugtracker Wish- and Bugtracker
Outline Seminar Introduction to the GRASS project Communication structure Code development Structure of the development team: be collaborative in  the cyberspace Legal Issues
Changing source code: what happens? (1/2) tflag->description  = _( &quot;Print topology information only&quot; ); if (G_parser(argc,argv)) exit( EXIT_FAILURE ); /* open input vector */ if ((mapset = G_find_vector2 (in_opt->answer,  &quot;&quot; )) ==  NULL ) { G_fatal_error (_( &quot;Could not find input map <%s>&quot; ) , in_opt->answer); } Developer changes and enters:   cvs ci -m”i18N macro added” main.c SVN source code repository USA Code differences email is auto-generated and sent to “ grass-commit” mailing list USA Email notification triggers updated of GRASS Quality Assessment System Canada
Changing source code: what happens? (2/2) Clone detection is run as  well as other quality  measures, results sent out Email notification triggers updated of GRASS Quality Assessment System Canada USA Code quality email is sent  to “grass-qa” mailing list CIA open source monitor receives simplified QA message USA? CIA-IRC robot  feeds #grass  IRC channel  on freenode.net
GRASS Quality Assessment I GRASS Test Suite Project: Automated usage tests on  Linux and MS-Windows
Bug reports: Communication Flow (Percentages are estimated) 2. Developer    detects bug 60 % 20% 20% Other  developers New GRASS  release 3. New    feature SVN code Repository Release cycle 1. User sends bug report Bugtracker Mailing list 20% 80%
GRASS Quality Assessment II GRASS GIS Software Evolution Project: Software engineering
GRASS Quality Assessment II Improvement of source code base Ref.:  A feedback based quality assessment to support open source    software evolution: the GRASS case study    S. Bouktif, G. Antoniol, E. Merlo, and M. Neteler, ICSM 2006
Outline Seminar Introduction to the GRASS project Communication structure Code development Structure of the development team: be collaborative in  the cyberspace Legal Issues
FOSS Software development structures Organizational structures of development teams Developers Head Power users Linux Kernel GRASS Development Team/ GRASS Project Steering Committee Decision level + - SVN write access patch/docs contribution Developers GRASS: No BDFL (Benevolent  Dictator For Life) http://en.wikipedia.org/wiki/Benevolent_Dictator_for_Life http://producingoss.com/
GRASS Development Team: Structure & “Code habitats” Two main types of developers are observed: generalist specialist (majority) It appears that many developer assign themselves to  a “ code habitat ”, their area of expertise (in GRASS a selection of libraries or commands which are maintained) these “habitats” are often stable over years there are also partially abandoned code areas (~ 10% of the code) which are functional but aren't really getting improved A very few are experts for code portability (ANSI C etc standards) One “ garbage collector ” (generalist) fixes lots of  odds 'n ends
GRASS Development Team: “Code habitats” Specialist example Intermediate example Generalist example (grey: various code  areas) http://web.soccerlab.polymtl.ca/grass-evolution/cvs-stat/overall/module_sizes_glynn.png
Conflicts in the community Decision making the hard way (1/3) New feature added...
Conflicts in the community Decision making the hard way (2/3) First reactions, but...
Conflicts in the community Decision making the hard way (3/3) (later the day an explanation was posted) An important developer opposes (this code section is “his” habitat)
Decision making GRASS project:  rather clear expertises of the developers “ habitats” can be observed – developers only work on code families discussions (even lengthy) via “grass-dev” mailing list [ 1 ] New GRASS Project Steering Committee (PSC) formed in 2006 formal voting on “Requests For Comments” (RFCs) but only for SVN access granting and “political” decisions [1]  http://lists.osgeo.org/pipermail/grass-dev Other projects: similar to GRASS project, BUT: RFC voting also for technology changes
Outline Seminar Introduction to the GRASS project Communication structure Code development Structure of the development team: be collaborative in  the cyberspace Legal Issues
Code vetting Legal aspects License complicance (GRASS: GPL) Don't copy from books like “Numerical Receipes in C” Ensure that 3 rd  party contributions are clean Employers must agree that work time is spent Full transparency and peer review help to minimize the risk. Apache or OSGeo Foundation Incubation phase Graduation http://incubator.apache.org/ http://www.osgeo.org/incubator
OSGeo Foundation: Founding projects Founded 4 th  February 2006, Chicago http://www.osgeo.org http://www.osgeo.org/content/news/news_archive/open_source_geospatial_foundation_initial_press_release.html.html GRASS GIS
Why does a developer contribute to Free Software? I will help others  (because)  they will help me Everyone is expert of only a limited area... ...ask the expert if you don't know! The driving force behind FOSS development  is  meritocracy . EGOISM SIURTLA
License of this document This work is licensed under a Creative Commons License. http://creativecommons.org/licenses/by-sa/2.5/deed.en “ Community based software development: The GRASS GIS project ”,    ©  2006, 2007, 2008  Markus Neteler, Italy   http://www.grassbook.org/neteler/teaching.html   [ OpenDocument file available upon request: neteler at cealp it ] License details: Attribution-ShareAlike 2.5 You are free: - to copy, distribute, display, and perform the work, - to make derivative works, - to make commercial use of the work, under the following conditions:  Attribution. You must give the original author credit. Share Alike. If you alter, transform, or build upon this work, you may distribute the    resulting work only under a license identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above.
Free Software Proprietary Software Total Cost of Ownership (TCO) Time B. Reiter 2004 after Wheeler 2004 Software operating costs (customer) Overhead due to training and rewrite of missing software

More Related Content

ODP
OSGeo: projects, incubation and infrastructure
PDF
GRASS GIS 7: your reliable geospatial number cruncher
ODP
10 years of OSGeo - Happy Birthday
PPT
2011 NASA Open Source Summit - Patrick Hogan
PDF
ePOM - Fundamentals of Research Software Development - Code Version Control
PDF
CENGN - OpenStack MeetUp - March 2017
PPTX
Approach to the physical Assessment
PPT
Open Source GIS
OSGeo: projects, incubation and infrastructure
GRASS GIS 7: your reliable geospatial number cruncher
10 years of OSGeo - Happy Birthday
2011 NASA Open Source Summit - Patrick Hogan
ePOM - Fundamentals of Research Software Development - Code Version Control
CENGN - OpenStack MeetUp - March 2017
Approach to the physical Assessment
Open Source GIS

Similar to Community based software development: The GRASS GIS project (20)

ODP
OSGeo Live Lightening Overview
PPT
Free open source gis
PDF
Роман Родоманський, «Досвід побудови Contact Tracing рішення»
PDF
Bcs Talk Notes
ODP
Prasoon
PPSX
The path to an hybrid open source paradigm
PDF
SW_Documentation_GRASS
PDF
SW_Documentation_GRASS
PDF
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
DOCX
Kunal bhatia resume mass
PPT
Open Source Geospatial Tools: Enabling Decision Makers
PPTX
Geo moose project update brian fischer
PPTX
Autodesk and Open Source
PDF
Results of the FLOSSMetrics project
ODP
Scaling up globally: 30 years of FOSS4G development. Keynote at FOSS4G-CEE 20...
PPTX
Conversas 2.0@sapo.labs - "svn+code.ua"
PDF
The Development History of PVS-Studio for Linux
PDF
DSM software tools
 
PPTX
Github:fi Presentation
ODP
Multilevel Audio Descriptors @WWW09 develtrack
OSGeo Live Lightening Overview
Free open source gis
Роман Родоманський, «Досвід побудови Contact Tracing рішення»
Bcs Talk Notes
Prasoon
The path to an hybrid open source paradigm
SW_Documentation_GRASS
SW_Documentation_GRASS
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
Kunal bhatia resume mass
Open Source Geospatial Tools: Enabling Decision Makers
Geo moose project update brian fischer
Autodesk and Open Source
Results of the FLOSSMetrics project
Scaling up globally: 30 years of FOSS4G development. Keynote at FOSS4G-CEE 20...
Conversas 2.0@sapo.labs - "svn+code.ua"
The Development History of PVS-Studio for Linux
DSM software tools
 
Github:fi Presentation
Multilevel Audio Descriptors @WWW09 develtrack
Ad

More from Markus Neteler (14)

ODP
OSGeo ireland keynote 2017 by Markus Neteler
ODP
GRASS GIS 7 capabilities: a graphical overview
PDF
Tracking emerging diseases from space: Geoinformatics for human health
PDF
Deriving environmental indicators from massive spatial time series using open...
ODP
Vom Laptop zum Großrechner: Neues in GRASS GIS 7
ODP
News in GRASS GIS7. Plenary talk at FOSS4G-CEE 2013, Romania
PDF
GRASS GIS lightening talk at FOSS4G 2006
PDF
GRASS GIS e Sextante
ODP
25 Years of GRASS GIS
PDF
From a niche to a global user community: Open Source GIS and OSGeo
ODP
GRASS and OSGeo: a framework for archeology
ODP
The need of Interoperability in Office and GIS formats
ODP
The GRASS GIS software (with QGIS) - GIS Seminar
ODP
Free GIS Software meets zoonotic diseases: From raw data to ecological indica...
OSGeo ireland keynote 2017 by Markus Neteler
GRASS GIS 7 capabilities: a graphical overview
Tracking emerging diseases from space: Geoinformatics for human health
Deriving environmental indicators from massive spatial time series using open...
Vom Laptop zum Großrechner: Neues in GRASS GIS 7
News in GRASS GIS7. Plenary talk at FOSS4G-CEE 2013, Romania
GRASS GIS lightening talk at FOSS4G 2006
GRASS GIS e Sextante
25 Years of GRASS GIS
From a niche to a global user community: Open Source GIS and OSGeo
GRASS and OSGeo: a framework for archeology
The need of Interoperability in Office and GIS formats
The GRASS GIS software (with QGIS) - GIS Seminar
Free GIS Software meets zoonotic diseases: From raw data to ecological indica...
Ad

Recently uploaded (20)

PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Spectroscopy.pptx food analysis technology
PDF
Empathic Computing: Creating Shared Understanding
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Cloud computing and distributed systems.
PDF
Unlocking AI with Model Context Protocol (MCP)
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Big Data Technologies - Introduction.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Encapsulation_ Review paper, used for researhc scholars
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
MYSQL Presentation for SQL database connectivity
Advanced methodologies resolving dimensionality complications for autism neur...
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Spectral efficient network and resource selection model in 5G networks
Mobile App Security Testing_ A Comprehensive Guide.pdf
Spectroscopy.pptx food analysis technology
Empathic Computing: Creating Shared Understanding
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Cloud computing and distributed systems.
Unlocking AI with Model Context Protocol (MCP)
“AI and Expert System Decision Support & Business Intelligence Systems”
Programs and apps: productivity, graphics, security and other tools
Big Data Technologies - Introduction.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Reach Out and Touch Someone: Haptics and Empathic Computing
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Encapsulation_ Review paper, used for researhc scholars
The AUB Centre for AI in Media Proposal.docx
MYSQL Presentation for SQL database connectivity

Community based software development: The GRASS GIS project

  • 1. Community based software development: The GRASS GIS project Seminar at Department of Information and Communication Technology University of Trento, 28 May 2008 M. Neteler neteler at cealp.it http://www.cealp.it FEM-CEA (Trento), Italy
  • 2. Seminar Outline Introduction to the GRASS project Communication structure Code development Structure of the development team: be collaborative in the cyberspace Legal Issues
  • 3. Objectives of GRASS project Continue to develop free software GIS (since 1982) Deliver high quality algorithms (often academia based) for spatial data analysis innovative visualization modeling and simulation Import of 3D DXF objects
  • 4. Desktop GIS: GRASS GIS Brief Introduction – Development and System Requirements Developed since 1984, always Open Source , since 1999 under GNU General Public License Written in C programming language, portable code (32/64bit) International development team , since 2001 coordinated at ITC-irst, since 2008 at OSGeo.org Distributed as source code, precompiled binaries for various platforms, CDROM GNU/Linux MacOSX MS-Windows iPAQ
  • 5. Spatial Data Types Supported Spatial Data Types 2D Raster data incl. image processing 3D Voxel data for volumetric data 2D/3D Vector data with topology Multidimensional points data http://grass.osgeo.org Orthophoto Distances Vector TIN 3D Vector buildings Voxel
  • 6. GRASS GIS QGIS Geodata viewer with GRASS toolbox, GPS support, Printing Editor ... http://qgis.org
  • 8. GRASS new features Flood simulation Trento 1966 Courtesy: www.questotrentino.it Piazza Duomo
  • 9. GRASS: Person walking distance 10 minutes S. Fontanari - www.mpasol.it
  • 10. GRASS: Person walking distance 30 minutes S. Fontanari - www.mpasol.it
  • 11. WebGIS: Integration of data sources GRASS in the Web Real-time monitoring of Earthquakes (provided in Web by USGS) with GRASS/PHP: http://grass.itc.it/spearfish/php_grass_earthquakes.php
  • 12. GRASS GIS Interoperability Data models and sources
  • 13. GRASS: more than 20 years of free GIS http://grass.itc.it 1989: civil Internet 1994: first WWW GRASS 1.0 GRASS 4.2.1/4.3 GRASS 5.0 GRASS 5.1/5.7 GPL'ed GRASS 4.2 Manual code management Automated code management (CVS) PD 1993 1998 1999 1997 University of Baylor 1998 University of Hannover 2001 ITC-irst GRASS 6.0 2001 2005 U.S. CERL (1984-1995) GRASS Development Team (1997- today) 1984 GRASS 4.1 2000 GPL'ed GRASS Interagency Steering Commitee Open GIS Open Geospatial Consortium (OGC) Consortium (OGC) 1990 1992 2004 Open GRASS Foundation (OGF) 1994 1997
  • 14. GRASS Source Code Statistics http://next.ohloh.net/projects/3666 GRASS 6 http://www.sitemeter.com/?a=stats&s=s24grassgis GRASS 6.2.0 release 31 Oct 2006 Visitors at http://grass.itc.it
  • 15. GRASS Mailing List Statistics: messages per day ( http://gmane.org is a mailing list mirror) 600 per month
  • 16. GRASS SLOC Analysis http://www.ohloh.net/projects/3666 Or do this analysis yourself - Download and run: http://www.dwheeler.com/sloccount/ SLOC Totals grouped by progr. language: ( Status GRASS 16 April 2007) ansic: 473155 (84.30%) tcl: 44256 (7.88%) sh: 19821 (3.53%) python: 10517 (1.87%) cpp: 10142 (1.81%) perl: 1608 (0.29%) ... Total Physical Source Lines of Code (SLOC) = 561,286 Person-Years = 154.05 ... Total Estimated Cost to Develop = $ 20,810,621 (average salary = $56,286/year, overhead = 2.40) Generated using David A. Wheeler's 'SLOCCount' Basic COCOMO model, but slightly different parameters http://en.wikipedia.org/wiki/COCOMO#Basic_COCOMO GRASS 6.3.cvs, 16 Apr 2007 GRASS 6.4.svn, 23 May 2008
  • 17. GRASS Documentation Neteler/Mitasova (2002/2004/2007) Kluwer/Springer Boston, 420 S. www.grassbook.org GDF Hannover bR (2005) free document, GNU FDL www.gdf-hannover.de The Programmer's Manual is 'doxygen' based, i.e. it is auto-generated from the source code.
  • 18. Outline Seminar Introduction to the GRASS project Communication structure Code development Structure of the development team: be collaborative in the cyberspace Legal Issues
  • 19. The actors Free Open Source Software (FOSS) Community
  • 21. Job automatization: Let the computer do it! Cronjobs are a life saver! Web pages are maintained in SVN and updated via cron hourly Mirrors sites sync through rsync Weekly software snapshots are generated from SVN source code tarballs binary builts HTML and PDF manual pages local search engine
  • 22. Communication tools: Wiki and Bugtracker Wish- and Bugtracker
  • 23. Outline Seminar Introduction to the GRASS project Communication structure Code development Structure of the development team: be collaborative in the cyberspace Legal Issues
  • 24. Changing source code: what happens? (1/2) tflag->description = _( &quot;Print topology information only&quot; ); if (G_parser(argc,argv)) exit( EXIT_FAILURE ); /* open input vector */ if ((mapset = G_find_vector2 (in_opt->answer, &quot;&quot; )) == NULL ) { G_fatal_error (_( &quot;Could not find input map <%s>&quot; ) , in_opt->answer); } Developer changes and enters: cvs ci -m”i18N macro added” main.c SVN source code repository USA Code differences email is auto-generated and sent to “ grass-commit” mailing list USA Email notification triggers updated of GRASS Quality Assessment System Canada
  • 25. Changing source code: what happens? (2/2) Clone detection is run as well as other quality measures, results sent out Email notification triggers updated of GRASS Quality Assessment System Canada USA Code quality email is sent to “grass-qa” mailing list CIA open source monitor receives simplified QA message USA? CIA-IRC robot feeds #grass IRC channel on freenode.net
  • 26. GRASS Quality Assessment I GRASS Test Suite Project: Automated usage tests on Linux and MS-Windows
  • 27. Bug reports: Communication Flow (Percentages are estimated) 2. Developer detects bug 60 % 20% 20% Other developers New GRASS release 3. New feature SVN code Repository Release cycle 1. User sends bug report Bugtracker Mailing list 20% 80%
  • 28. GRASS Quality Assessment II GRASS GIS Software Evolution Project: Software engineering
  • 29. GRASS Quality Assessment II Improvement of source code base Ref.: A feedback based quality assessment to support open source software evolution: the GRASS case study S. Bouktif, G. Antoniol, E. Merlo, and M. Neteler, ICSM 2006
  • 30. Outline Seminar Introduction to the GRASS project Communication structure Code development Structure of the development team: be collaborative in the cyberspace Legal Issues
  • 31. FOSS Software development structures Organizational structures of development teams Developers Head Power users Linux Kernel GRASS Development Team/ GRASS Project Steering Committee Decision level + - SVN write access patch/docs contribution Developers GRASS: No BDFL (Benevolent Dictator For Life) http://en.wikipedia.org/wiki/Benevolent_Dictator_for_Life http://producingoss.com/
  • 32. GRASS Development Team: Structure & “Code habitats” Two main types of developers are observed: generalist specialist (majority) It appears that many developer assign themselves to a “ code habitat ”, their area of expertise (in GRASS a selection of libraries or commands which are maintained) these “habitats” are often stable over years there are also partially abandoned code areas (~ 10% of the code) which are functional but aren't really getting improved A very few are experts for code portability (ANSI C etc standards) One “ garbage collector ” (generalist) fixes lots of odds 'n ends
  • 33. GRASS Development Team: “Code habitats” Specialist example Intermediate example Generalist example (grey: various code areas) http://web.soccerlab.polymtl.ca/grass-evolution/cvs-stat/overall/module_sizes_glynn.png
  • 34. Conflicts in the community Decision making the hard way (1/3) New feature added...
  • 35. Conflicts in the community Decision making the hard way (2/3) First reactions, but...
  • 36. Conflicts in the community Decision making the hard way (3/3) (later the day an explanation was posted) An important developer opposes (this code section is “his” habitat)
  • 37. Decision making GRASS project: rather clear expertises of the developers “ habitats” can be observed – developers only work on code families discussions (even lengthy) via “grass-dev” mailing list [ 1 ] New GRASS Project Steering Committee (PSC) formed in 2006 formal voting on “Requests For Comments” (RFCs) but only for SVN access granting and “political” decisions [1] http://lists.osgeo.org/pipermail/grass-dev Other projects: similar to GRASS project, BUT: RFC voting also for technology changes
  • 38. Outline Seminar Introduction to the GRASS project Communication structure Code development Structure of the development team: be collaborative in the cyberspace Legal Issues
  • 39. Code vetting Legal aspects License complicance (GRASS: GPL) Don't copy from books like “Numerical Receipes in C” Ensure that 3 rd party contributions are clean Employers must agree that work time is spent Full transparency and peer review help to minimize the risk. Apache or OSGeo Foundation Incubation phase Graduation http://incubator.apache.org/ http://www.osgeo.org/incubator
  • 40. OSGeo Foundation: Founding projects Founded 4 th February 2006, Chicago http://www.osgeo.org http://www.osgeo.org/content/news/news_archive/open_source_geospatial_foundation_initial_press_release.html.html GRASS GIS
  • 41. Why does a developer contribute to Free Software? I will help others (because) they will help me Everyone is expert of only a limited area... ...ask the expert if you don't know! The driving force behind FOSS development is meritocracy . EGOISM SIURTLA
  • 42. License of this document This work is licensed under a Creative Commons License. http://creativecommons.org/licenses/by-sa/2.5/deed.en “ Community based software development: The GRASS GIS project ”, © 2006, 2007, 2008 Markus Neteler, Italy http://www.grassbook.org/neteler/teaching.html [ OpenDocument file available upon request: neteler at cealp it ] License details: Attribution-ShareAlike 2.5 You are free: - to copy, distribute, display, and perform the work, - to make derivative works, - to make commercial use of the work, under the following conditions: Attribution. You must give the original author credit. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above.
  • 43. Free Software Proprietary Software Total Cost of Ownership (TCO) Time B. Reiter 2004 after Wheeler 2004 Software operating costs (customer) Overhead due to training and rewrite of missing software