diff options
| author | Hui Lan <lanhui@zjnu.edu.cn> | 2020-05-21 22:19:37 +0800 | 
|---|---|---|
| committer | Hui Lan <lanhui@zjnu.edu.cn> | 2020-05-21 22:19:37 +0800 | 
| commit | 6a4c25510ff90b46475cbf1a7a22237311c54fdd (patch) | |
| tree | e29e4e89264796bf4fe0557128ee63c3a522293b | |
| parent | 76db9caa243f797f873d430aca81fae55304f934 (diff) | |
| -rw-r--r-- | spm-slides.tex | 107 | 
1 files changed, 96 insertions, 11 deletions
| diff --git a/spm-slides.tex b/spm-slides.tex index 5c1bec9..f6010bb 100644 --- a/spm-slides.tex +++ b/spm-slides.tex @@ -2581,7 +2581,7 @@ Identify key issues.  Approval voting (each voter can vote for as many of the choices on the ballot). -{\bf Arrow's Impossibility Theorem} - no voting system is perfect. +No voting system is perfect (\href{https://www.investopedia.com/terms/a/arrows-impossibility-theorem.asp}{Arrow's Impossibility Theorem}).  Consensus simply means an agreement that everyone is willing to live with. @@ -2599,7 +2599,17 @@ Voters do not have to be coders (committers).  People who did valuable contribut  The decision to add a new voter should be made secretly. -Implicit consensus. Silence means consent. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\foilhead{Lazy Consensus} + +Implicit consensus. + +Silence means consent. + +Silence means no objection. +  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  \foilhead{Polls} @@ -3490,6 +3500,8 @@ TBD.  Software developers must be paid. +Many free software developers are paid.  They can be representatives of companies. +  Office space and network bandwidth.  Proprietary software: monopoly-controlled royalty streams based on per-copy sales. @@ -3501,14 +3513,16 @@ For example, a company needs a web server, but it does not want to make money fr  - Paid developers: informal subsidy, salaries. -- Unpaid developers +- Unpaid developers. -In-group and out-group developers. +Attract funding from credible organizations.  In-group and out-group developers. -Unpaid labor for someone else's benefit. +%Unpaid labor for someone else's benefit.  - Funding sources +Money can buy things that {\em lead to} influence. +  Money -- hire good programmers -- influence -- voting power -- voting block.  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3520,7 +3534,9 @@ A key developer suddenly loses interest.  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  \foilhead{Corporate Involvement} -Sharing the burden.  Reduce cost of development incurred on individual companies without sacrificing the benefits. +Sharing the burden.  (Divide cost and get all benefits). + +%Reducing cost of development incurred on individual companies without sacrificing the benefits.  Ensuring maintenance of infrastructure.  Companies sell services dependent on open source software. @@ -3528,17 +3544,86 @@ Establishing a standard.  Include the standard into open source software to make  Creating an ecosystem. -Supporting hardware sales.  Hardware is useless without good software, vice versa. +Supporting hardware sales.  Hardware is useless without good software.  Undermining a competitor. -Marketing. Brand marketing. +Marketing. Good brand management. + +Proprietary relicensing.  Resell open source software by integrating it to proprietary software. Not a ``pure open source play''.  ``Open source is just a way of software development'' to ``open source is a way of life'' spectrum.  Free software has proprietary versions, e.g., MySQL. + +Funder's business model.  Start the project or join in the project? Leadship or just one voice? + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\foilhead{Hire for the Long Term} + +A really experience programmer + +- has stayed at least a couple of years in the project. + +- has a good reputation. + +- has an influence. + +- knows the code well. + +- knows old discussions on a design decision. + +- has commit access. + +How to train a newcommer? + +Start with bugfixes and cleanup tasks, so he can learn the codebase and get himself known to the community. + +An exprienced programmer should read everything the newcomer posts (e.g., bugfix patches) and be available to answer his questions. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\foilhead{Be Open About Your Motivations} + +Why you want what you want. + +Provide concrete examples of why. + +Real-world usage data. + +Focus on the problem, not your solution.  Provide a number of solutions and analyze each. + +Honest broker. + +Quiz: you want to convince other people to add a feature and use a particular solution, how? + +Quiz: What is a committer.  What is commit access? + +Commit-access standards.  ``Other people have to earn their commit access — CollabNet just buys it.'' + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\foilhead{Evaluating Open Source Projects} + +Social health and project maturity. + +How large and diverse are their developer communities? + +Do they get new contributors on a regular basis? + +Do they handle incoming bug reports in a reasonable way? + +Do they make stable releases frequently enough for your needs? + +Tips: + +Look at bug tracker activity first. + +Measure commit diversity, not commit rate. + +Evaluate organizational diversity. -Proprietary relicensing.  Resell open source software by integrating it to proprietary software. Not a "pure open source play".  "Open source is just a way of software development" to "open source is a way of life" spectrum. +Discussion forums. -Start the project or join in the project? +News, announcements, and releases. -Leadship or just one voice?  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
