Fixed #10, adding OSS failure.

This commit is contained in:
Amy J. Ko 2020-08-14 09:59:29 -07:00
parent 7db8fb2c34
commit 195f00889f

View file

@ -61,7 +61,15 @@
<p>Every decision made in a software team is under uncertainty, and so another important concept in organizations is <strong>risk</strong> <a href="#boehm">(Boehm 1991)</a>. It's rarely possible to predict the future, and so organizations must take risks. Much of an organization's function is to mitigate the consequences of risks. Data scientists and researchers mitigate risk by increasing confidence in an organization's understanding of the market and its consumers. Engineers manage risk by trying to avoid defects. Of course, as many popular outlets on software engineering have begun to discover, when software fails, it usually "did exactly what it was told to do. The reason it failed is that it was told to do the wrong thing." (<a href="https://www.theatlantic.com/technology/archive/2017/09/saving-the-world-from-code/540393/">Somers 2017</a>).</p> <p>Every decision made in a software team is under uncertainty, and so another important concept in organizations is <strong>risk</strong> <a href="#boehm">(Boehm 1991)</a>. It's rarely possible to predict the future, and so organizations must take risks. Much of an organization's function is to mitigate the consequences of risks. Data scientists and researchers mitigate risk by increasing confidence in an organization's understanding of the market and its consumers. Engineers manage risk by trying to avoid defects. Of course, as many popular outlets on software engineering have begun to discover, when software fails, it usually "did exactly what it was told to do. The reason it failed is that it was told to do the wrong thing." (<a href="https://www.theatlantic.com/technology/archive/2017/09/saving-the-world-from-code/540393/">Somers 2017</a>).</p>
<p>Open source communities are organizations too. The core activities of design, engineering, and support still exist in these, but how much a community is engaged in marketing and sales depends entirely on the purpose of the community. Big, established open source projects like <a href="https://mozilla.org" target="_blank">Mozilla</a> have revenue, buildings, and a CEO, and while they don't sell anything, they do market. Others like Linux <a href="#lee">(Lee & Cole 2013)</a> rely heavily on contributions both from volunteers <a href="#ye">(Ye & Kishida 2003)</a>, but also paid employees from companies that depend on Linux, like IBM, Google, and others. In these settings, there are still all of the challenges that come with software engineering, but fewer of the constraints that come from a for-profit or non-profit motive.</p> <p>
Open source communities are organizations too.
The core activities of design, engineering, and support still exist in these, but how much a community is engaged in marketing and sales depends entirely on the purpose of the community.
Big, established open source projects like <a href="https://mozilla.org" target="_blank">Mozilla</a> have revenue, buildings, and a CEO, and while they don't sell anything, they do market.
Others like Linux <a href="#lee">(Lee & Cole 2013)</a> rely heavily on contributions both from volunteers <a href="#ye">(Ye & Kishida 2003)</a>, but also paid employees from companies that depend on Linux, like IBM, Google, and others.
In these settings, there are still all of the challenges that come with software engineering, but fewer of the constraints that come from a for-profit or non-profit motive.
In fact, recent work empirically uncovered 9 reasons why modern open source projects fail: 1) lost to competition, 2) made obsolete by technology advances, 3) lack of time to volunteer, 4) lack of interest by contributors, 5) outdated technologies, 6) poor maintainability, 7) interpersonal conflicts amongst developers, 8) legal challenges, 9) and acquisition (<a href="#coelho">Coelho and Valente 2017</a>).
Those aren't too different from traditional software organizations, aside from the added challenges of sustaining a volunteer workforce.
</p>
<p>All of the above has some important implications for what it means to be a software engineer:</p> <p>All of the above has some important implications for what it means to be a software engineer:</p>
@ -81,6 +89,9 @@
<p id="boehm">Boehm, B. W. (1991). <a href="http://ieeexplore.ieee.org/abstract/document/62930" target="_blank">Software risk management: principles and practices</a>. IEEE software, 8(1), 32-41.</p> <p id="boehm">Boehm, B. W. (1991). <a href="http://ieeexplore.ieee.org/abstract/document/62930" target="_blank">Software risk management: principles and practices</a>. IEEE software, 8(1), 32-41.</p>
<p id="coelho">Jailton Coelho and Marco Tulio Valente. 2017. <a href="https://doi.org/10.1145/3106237.3106246">Why modern open source projects fail</a>. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2017). Association for Computing Machinery, New York, NY, USA, 186196.</p>
<p id="chilana">Chilana, P. K., Ko, A. J., Wobbrock, J. O., Grossman, T., & Fitzmaurice, G. (2011, May). <a href="http://dl.acm.org/citation.cfm?id=1979270" target="_blank">Post-deployment usability: a survey of current practices</a>. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (pp. 2243-2246). ACM. <p id="chilana">Chilana, P. K., Ko, A. J., Wobbrock, J. O., Grossman, T., & Fitzmaurice, G. (2011, May). <a href="http://dl.acm.org/citation.cfm?id=1979270" target="_blank">Post-deployment usability: a survey of current practices</a>. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (pp. 2243-2246). ACM.
<p>Clegg, S. and Bailey, J.R. (2008). <a href="https://books.google.com/books?id=Uac5DQAAQBAJ" target="_blank">International Encyclopedia of Organization Studies</a>. Sage Publications.</p> <p>Clegg, S. and Bailey, J.R. (2008). <a href="https://books.google.com/books?id=Uac5DQAAQBAJ" target="_blank">International Encyclopedia of Organization Studies</a>. Sage Publications.</p>