Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Software Sustainability? Lessons from IPython

Software Sustainability? Lessons from IPython

Short, discussion-oriented slides for the WSSPE 1.1 workshop held at the SciPy 2014 conference:

http://wssspe.researchcomputing.org.uk/wssspe1-1/

95198572b00e5fbcd97fb5315215bf7a?s=128

Fernando Perez

July 10, 2014
Tweet

Transcript

  1. Software Sustainability? Lessons from IPython Fernando Perez (@fperez_org) UC Berkeley

  2. Facets of Sustainability • Trust • Value • Scope •

    Resources • Need
  3. First, briefly, who am I? • Physics PhD, 2002. –

    Lattice QCD (numerical particle physics) – IPython: Procrastinate on dissertation writing. • Applied Mathematics Postdoc – New class of Numerical algorithms for PDEs – targeting quantum chemistry – All Python outsides, Fortran/C/C++/Cython core. • Research Scientist “in neuroscience” • “Member” of the SciPy community since 2001.
  4. Second, some quick stats/history • IPython 0.0.1: https://gist.github.com/fperez/1579699 – 259

    lines (including whitespace/comments) • Truly an “afternoon hack”. • My very first Python program. – It will likely be my last... But it solved a problem I had
  5. In a Nutshell, IPython... • has had 16,569 commits made

    by 368 contributors – representing 87,837 lines of code • is mostly written in Python, – with a well-commented source code • has a well established, mature codebase, – maintained by a very large development team – with increasing Y-O-Y commits • took an estimated 22 years of effort (COCOMO model) Stats: http://www.ohloh.net/p/ipython
  6. None
  7. None
  8. Trust

  9. Trust • Clarity vs Transparency. • Clarity of Governance. •

    Private things in IPython: – Security list. Anyone who wants is invited. – Fiscal oversight for Numfocus. Needed for IRS compliance. – Rare private discussions, like Jupyter renaming. – Deliberately no private list: make secrecy hard by design.
  10. Trust Learn to let go! (The project is more important

    than you)
  11. Review, but give others the benefit of the doubt... (avoid

    death by a thousand nitpicks)
  12. Small mistakes are better than scoring points

  13. Disagreement, conflict, confrontation.

  14. Occam's razor of communities: Assume malice only when all other

    alternatives have been disproved.
  15. Value

  16. Value • Always solve someone's problem. • “Don't break userspace”

    - Linus Torvalds.
  17. Scope

  18. Scope • Defining scope is a compass. • Helps you

    know what to do. Helps you know what NOT TO DO.
  19. Resources

  20. Resources • People – Volunteers – Permanent – Not just

    coders! • Institutional – Universities/institutes/companies – Numfocus, PSF, etc • $$$ – Government – Private foundations – Industry
  21. Need

  22. Does your project need to be sustainable?