@article{Yurkovich2017,
  author = {Yurkovich, James T. and Yurkovich Benjamin J. and Dr\"ager, Andreas
    and Palsson, Bernhard O. and King, Zachary A.},
  title = {{A Padawan Programmer's Guide to Developing Software Libraries}},
  journal = {Cell Systems},
  year = {2017},
  volume = {5},
  pages = {P431--437},
  number = {5},
  month = oct,
  abstract = {With the rapid adoption of computational tools in the life sciences,
    scientists are taking on the challenge of developing their own software
    libraries and releasing them for public use. This trend is being accelerated by
    popular technologies and platforms, such as GitHub, Jupyter, R/Shiny, that make
    it easier to develop scientific software and by open-source licenses that make
    it easier to release software. But how do you build a software library that
    people will use? And what characteristics do the best libraries have that make
    them enduringly popular? Here, we provide a reference guide, based on our own
    experiences, for developing software libraries along with real-world examples
    to help provide context for scientists who are learning about these concepts
    for the first time. While we can only scratch the surface of these topics, we
    hope that this article will act as a guide for scientists who want to write great
    software that is built to last.},
  doi = {10.1016/j.cels.2017.08.003},
  pdf = {https://www.cell.com/action/showPdf?pii=S2405-4712%2817%2930336-8},
  url = {https://doi.org/10.1016/j.cels.2017.08.003}
}

