Emerging FFree/OOpen SSource SSoftware Practices: Implications for Business and Education
Sulayman K. Sowe (Ph.D)Department of Informatics, Aristotle University (ΑΠΘ)
Thessaloniki
Σεμινάρια ανοικτού λογισμικού στις 20 - 21/3/08 . Πανεπιστήμιο Μακεδονία, Thessaloniki, GreeceΣεμινάρια ανοικτού λογισμικού στις 20 - 21/3/08 . Πανεπιστήμιο Μακεδονία, Thessaloniki, Greece
Promoting Information & Communication Technology in Small & Medium Enterprises and Public Bodies.
ARCHIMED Zone through Open Source & Free Software OpenITOpenIT
In this Presentation:1. Free/Libre/Open Source Software Development: Bazaars and Agoras
• What is FLOSS?• The FLOSS development process
ProjectsCommunities
• Some FLOSS facts3. The FLOSS Business model
• FLOSS and the Software Industry• Making money in FLOSS• Economic Impact of FLOSS
4. FLOSS and Education• Software Engineering Education Now and Challenges• Learning and FLOSS• Educational model• Lessons from Auth Pilot Studies
5. How and What you can contribute6. Emerging Practices
Free/Libre/Open Source Software Development: Bazaars and Agoras
What is FLOSS Many Meanings:
- Free Software (FS) – Free Software GNU Foundation- Open Source Software (OSS) – Open Source Initiative- Free and Open Source Software – Sweng, ΑΠΘ- Libre Software – Spain (URJC)- Free/Libre/Open Source Software (FLOSS) – Flosscom.net Project
Concept:- No copyright but copyleft licenses (GPL and many more)- Source code is 'free' and accessible to all. Community code- Download, Use software, binaries, executables from Internet- Freedom to use, modify, distribute, sell software
Bazaar Model Not Cathedral- Anyone can participate (Volunteerism)- No contracts, flexible work schedules- Position must be earned through sustained contribution- Knowledge generated and shared and NOT for competitive advantage
The FLOSS Development Process Geographically distributed community of volunteers Coordination & Collaboration FLOSS development
- Online Tools: CVS, SVN, Mailing lists, Forums, IRC, Wikis, etc- Offline: Sprint development most popular.
Projects and Communities Projects: Unsuccessful and Successful of the type:
- Single 1 man project- Community (Linux, PostgreSQL): peoples project- Corporate (MySQL, Fedora): Company code open to community- Foundation (Apache, Mozilla): Board of directors decide
Community Structure:
Roles and Transition in FLOSS communities
Active Users
Transition
Developers
Transition
Core team/developersCo-developers
Transition
Report bugs Suggest new features Review codeSubmit code
Modify code
Answer to posts in Lists/Forums Fix bugs Implement
new features
Integrate code
Manage releases
Mundane project
activitiesEssential project
activities
Core project coordination & management activities
ModuleOwner
Facts of FLOSS: Motivation
Facts of FLOSS: Young people
Period / Year joining the FLOSS community
Age when joining the FLOSS community 1950 - 1985 1986 - 1990 1991 - 1995 1996 1997 1998 1999 2000 2001 2002 Total
10 - 15 years 16,1 12,2 10,2 5,7 4,6 5,6 5,2 6,6 0,8 6,6
16 - 18 years 27,4 17,6 15,7 24,2 22,0 20,1 13,6 16,5 10,1 8,1 17,1
19 - 21 years 19,4 25,2 24,9 22,2 32,6 26,2 27,3 19,1 28,0 16,2 25,1
22 - 25 years 11,3 24,4 25,7 26,3 22,5 26,9 25,8 30,5 28,8 32,4 26,3
Total: 10-25 years 74,2 79,4 76,5 78,4 81,7 78,7 71,8 72,6 67,7 56,8 75,1
26 - 30 years 21,0 12,2 12,4 13,4 14,2 12,3 17,6 18,2 17,9 27,0 15,2
Older than 30 years 4,8 8,4 11,0 8,2 4,1 9,0 10,6 9,1 14,4 16,2 9,7
Total: 26 years and older 25,8 20,6 23,5 21,6 18,3 21,3 28,2 27,4 32,3 43,2 24,9
Total 100 100 100 100 100 100 100 100 100 100 100
n = 2402 p < 0.01; Contingency coefficient: .225 Source: FLOSS Survey (Ghosh et al. 2002)
Facts of FLOSS: Profession
0,0
0,0
0,1
0,2
0,3
0,6
2,7
3,2
3,2
4,3
5,0
5,1
5,2
9,8
11,2
15,8
36,3
Marketing (other sectors)
Product sales (other sectors)
Product sales (IT)
Marketing (IT)
Executive (other sectors)
Consultant (other sectors)
Other (other sectors)
Other engineer
Executive (IT)
University staff (other areas)
University staff (IT)
Student (other areas)
Other (IT)
Consultant (IT)
Programmer
Student (IT)
Software engineer
Expertise cohorts (age, sojourn time in FLOSS community in years)
In how many FLOSS projects are you involved
at present?
In how many FLOSS projects did you
participate since you joined the community?
And how many FLOSS projects did you lead since you joined the
community?
With how many Free / Libre / Open Source
Software developers do you have regular
contact?
young novices (15-25, 0-3) 2,0 8,7 0,8 10,3
young semi-experienced (15-25, 4-5) 2,5 6,6 1,5 8,3
young experienced (15-25, 6-7) 3,0 9,4 1,2 12,6
young experts (15-25, >7) 3,9 15,9 2,2 17,1
middle-aged novices (26-32, 0-3) 3,3 16,9 0,7 5,6
middle-aged semi-experienced (26-32, 4-5) 2,7 4,8 1,3 9,5
middle-aged experienced (26-32, 6-7) 3,3 8,1 1,5 11,0
middle-aged experts (26-32, >7) 3,4 9,5 1,8 12,8
old novices (33-66, 0-3) 2,0 3,2 0,6 13,6
old semi-experienced (33-66, 4-5) 2,4 6,0 0,6 8,3
old experienced (33-66, 6-7) 2,3 6,2 1,1 15,6
old experts (33-66, >7) 3,4 10,1 1,7 11,8
Total (average) 3,0 9,1 1,4 11,7
Numbers in cells are mean values Source: FLOSSPOLS Developers Survey
Facts of FLOSS: Experience
The FLOSS Business Model
Paradigm shift:- Services and customization- Why re-invent the wheel when you can reuse components?-Dual license (MYSQL database);• Sell and support Enterprise/Customized Edition
Acceleration of the FLOSS market:- Availability of high-quality software, - Low cost and low barrier to entry, -Total cost of ownership- Save money on licenses Vista Ultimate =$400; Office Professional 2007/Upgrade=$499.95/$329.95, OpenOffice=$0.00- Vendor independence (no lock-ins) and flexibility.
Community Model driven: Industry (IBM, Oracle, Philips, Nokia and SAP) devoted to development and support of specific products.
service-oriented business models where the core profit centre is not pure software development.
Integration: Many GUI tools, applications, servers are provided by more than one company or project. The (Linux/Apache/Mysql/PHP or Perl) LAMP stack!
- eg Eclipse project, JBoss (in most IDEs).
FLOSS and the Software Industry
Economic Impact of FLOSS
Category Killer Applications in Europe
Mainly Application (Apache, EU 84%, USA 66%) and mail
Servers (Sendmai, CMail)
Making money in FLOSS
Some possibilities? Providing value-added services Producing products that are copyright and has no copyleft Providing warranty coverage for the products Provide on-site support, consulting and troubleshooting Provide documentation (neglected) for a nominal fee. Build, package, and distribute your own Linux
(Mark Shuttleworth of Canonical Ltd; the company sponsoring Ubuntu, a Debian GNU/Linux).
FLOSS and Education:Pedagogies
SE Now:- Inspired by closed-source software development- lecture formats, timetables, schedules- Teaching specific SE skills in semesters.- Project-based coursework. - Students work in industry to gain practical experience.- Static content, books! books! books!
SE Challenges:- make learning meaningful, relevant- expose students to realistic and meaningful projects/learning- deal with the Ne(x)t generation: infotainers!
Q3: Will industry scarify their software (code) to students?
FLOSS: Software Engineering (SE) Education
What do FLOSS goers learn?Skills learned in FLOSS I learned a lot
To understand the differences between copyrights, patents, and licences 51,7
To re-use code written by others 48,0
Basic / introductory programming skills 47,7
To run and maintain complex software systems 47,1
To understand licences 47,0
To write code in a way that it can be re-used 46,0
To understand copyright law issues 44,7
To become familiar with different programming languages 44,3
To get an overview of developments in software technology 44,3
To understand patent law issues 40,0
To look for and fix bugs 38,7
To better understand English, especially technical discussion 37,0
To design modular code 35,5
To get an overview of the skills you need in the software professions 33,2
To clearly articulate an argument 27,3
To express personal opinions 27,2
To accept and to respond to criticism from others 27,0
To improve your understanding of liability issues 23,5
To coordinate own work with the work of others 23,4
To understand and work with people from different cultures 22,9
To document code 22,4
To interact with other people 18,6
To evaluate the work of others 18,5
To lead a project or a group of people 17,4
To keep a community going 15,8
To clearly define and achieve targets 14,3
To motivate people 13,0
To create new algorithms 12,4
To settle conflicts within a group 12,4
To plan work and stick to a work schedule 7,1
n = 1453
Ways to learnPercentage saying this is a very useful way to
learn
Fix bugs 59,1
Other self-study 58,4
Reading source code of programs and patches 55,8
Reading other developers' feedback to my patches / bug-reports / bug-fixes 51,8
Checking programs' for errors and their causes 48,3
Reading books or articles on programming 46,0
Participate in the discussions within the FLOSS community 45,2
Reading bug reports 18,7
Participate in workshops or congresses 16,8
Learning by participating in training courses 11,7
n = 1453
Many routes to learn in FLOSS says Flosscom.net report
FLOSS Educational ModelMore on the model at: http://sweng.csd.auth.gr/~sksowe/SE%20Education%20FLOSS%20Model/
Lessons from Pilot Studies 2005-date- Run pilot studies in FLOSS mode - Introduction to software engineering course (Τεχνολογία Λογισμικού)- Students as volunteers in FLOSS projects.- Areas of SE/Τεχνολογία Λογισμικού
Software TestingRequirement AnalysisCoding
Roles- Students:
find and report bugs.Write requirements for FLOSS projectsTake part in coding, download and inspect code
- Mentors: provide useful guidance and support.Email exchanges, face-to-face meetings, group discussions
Students Activities: Testing example Details on students guides, sample presentations, work
schedules, templates are available at:http://sweng.csd.auth.gr/eclass/claroline/document/document.php?openDir=%2FFOSS
Some results 2005: Only software Testing
11 studentsbug hunting in 16 different FLOSS projects68 bugs reported (mean=5.23, Std. Dev.= 2.74)43 replies (mean=3.31, Std. Dev.=2.175)
2006-2007: Only Testing21 students in 24 different FLOSS projects105 bugs reported218 replies
2007-2008:39 students spread in 3 different SE activities:
Testing= 13Requirements= 23Coding= 3
Students Thoughts Students said:
- Very interesting experience- Realistic conditions- Found something new, projects, software, communities, etc.- Experiencing dual-boot (Linux-Windows), using different Operating Systems- Self-esteem: Know the people behind their software and talk to them- Freedom, work when and wherever they want- Select their own choice of learning, project- Communicate and met some new people- See their contribution appreciated and online in projects- Encouragement from people they don't know
For some student:- Finding project was hard- No interesting project or software- Software was not running as expected- Community was not responsive. Community size Not equal to # of responses- Anxiety syndrome: Some not sure if they will do well and get good grades- Extra effort (reading, browsing, learning about project) needed before start
How and What you can contribute
Contribute quality:- Submit bug reports.- Suggest new features and options.- Submit some artwork (icons, backgrounds, logos).
Contribute documentation:- Help write and make corrections in project documents.- Translate documents, program text, Website, etc into Greek.
Contribute support:- Answer questions on forums, mailing lists or IRC channels.- Help other people learn how to use FLOSS program.- Write HOWTOs or your experience in using the software- Post whatever you know to a related forum. - Communicate; you will be surprised how valuable you could be.
Contribute publicity: - Write reviews and publications about FLOSS- Attend seminars and workshops-Subscribe and get free Ubuntu CDs and distribute to your friends:
http://www.ubuntu.com/getubuntu
How many can you do?
Emerging F/OSS SSource SSoftware Practices
FLOSS Research & Implications for Industry SQO-OSS:http://www.sqo-oss.eu/
- Study, analyze, benchmark, improving the quality of FLOSS code- Remove barriers to FLOSS entry- Proof of FLOSS quality based on existing and new metrics- Target SMEs software development sector
FLOSSMetrics:http://flossmetrics.org/ - Build, maintain, and updated database of FLOSS projects, etc - Provide for exploitation of the result
- Beneficiaries: FLOSS community and SMEs
FLOSScom: http://flosscom.net/ - How learning takes place in FLOSS- Bridge the gap between Formal and informal learning environments- OER initiatives and - Internet as open and participatory learning ecosystem (OPLE)
Thanks!
Questions?
Comments?