{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,5,14]],"date-time":"2025-05-14T04:12:19Z","timestamp":1747195939784,"version":"3.40.5"},"reference-count":36,"publisher":"Public Library of Science (PLoS)","issue":"2","license":[{"start":{"date-parts":[[2022,2,24]],"date-time":"2022-02-24T00:00:00Z","timestamp":1645660800000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["www.ploscompbiol.org"],"crossmark-restriction":false},"short-container-title":["PLoS Comput Biol"],"DOI":"10.1371\/journal.pcbi.1009809","type":"journal-article","created":{"date-parts":[[2022,2,24]],"date-time":"2022-02-24T18:29:16Z","timestamp":1645727356000},"page":"e1009809","update-policy":"https:\/\/doi.org\/10.1371\/journal.pcbi.corrections_policy","source":"Crossref","is-referenced-by-count":2,"title":["Twelve quick tips for software design"],"prefix":"10.1371","volume":"18","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-8659-8979","authenticated-orcid":true,"given":"Greg","family":"Wilson","sequence":"first","affiliation":[]}],"member":"340","published-online":{"date-parts":[[2022,2,24]]},"reference":[{"volume-title":"The Practice of Programming","year":"1999","author":"BW Kernighan","key":"pcbi.1009809.ref001"},{"key":"pcbi.1009809.ref002","doi-asserted-by":"crossref","DOI":"10.1201\/b21883","volume-title":"Software Design","author":"D. Budgen","year":"2020","edition":"3"},{"issue":"2","key":"pcbi.1009809.ref003","doi-asserted-by":"crossref","first-page":"251","DOI":"10.1109\/TSE.1986.6312940","article-title":"A Rational Design Process: How and Why to Fake It","volume":"SE-12","author":"DL Parnas","year":"1986","journal-title":"IEEE Trans Softw Eng"},{"key":"pcbi.1009809.ref004","volume-title":"Refactoring: Improving the Design of Existing Code","author":"M. Fowler","year":"2018","edition":"2"},{"volume-title":"R for Data Science: Import, Tidy, Transform, Visualize, and Model Data","year":"2017","author":"H Wickham","key":"pcbi.1009809.ref005"},{"key":"pcbi.1009809.ref006","doi-asserted-by":"crossref","DOI":"10.1007\/978-3-540-27777-4_54","volume-title":"Refactoring to Patterns","author":"J. Kerievsky","year":"2004"},{"volume-title":"The Architecture of Open Source Applications: Elegance, Evolution, and a Few Fearless Hacks","year":"2011","author":"A Brown","key":"pcbi.1009809.ref007"},{"volume-title":"The Architecture of Open Source Applications: Structure, Scale, and a Few More Fearless Hacks","year":"2012","author":"A Brown","key":"pcbi.1009809.ref008"},{"key":"pcbi.1009809.ref009","article-title":"The Programmer\u2019s Brain: What every programmer needs to know about cognition","author":"F. Hermans","year":"2021","journal-title":"Man Ther"},{"issue":"2","key":"pcbi.1009809.ref010","doi-asserted-by":"crossref","first-page":"81","DOI":"10.1037\/h0043158","article-title":"The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information","volume":"63","author":"GA Miller","year":"1956","journal-title":"Psychol Rev"},{"volume-title":"UNIX: A History and a Memoir","year":"2019","author":"BW Kernighan","key":"pcbi.1009809.ref011"},{"volume-title":"The Reflective Practitioner: How Professionals Think In Action","year":"1984","author":"DA Sch\u00f6n","key":"pcbi.1009809.ref012"},{"volume-title":"Object-Oriented Software Construction","year":"1994","author":"B. Meyer","key":"pcbi.1009809.ref013"},{"issue":"1","key":"pcbi.1009809.ref014","doi-asserted-by":"crossref","first-page":"37","DOI":"10.1037\/xlm0000578","article-title":"How does chunking help working memory?","volume":"45","author":"M Thalmann","year":"2019","journal-title":"J Exp Psychol Learn Mem Cogn"},{"volume-title":"Making Software","year":"2010","author":"W. Tichy","key":"pcbi.1009809.ref015"},{"volume-title":"How Buildings Learn: What Happens after They\u2019re Built","year":"1995","author":"S. Brand","key":"pcbi.1009809.ref016"},{"key":"pcbi.1009809.ref017","doi-asserted-by":"crossref","unstructured":"Byckling P, Gerdt P, Sajaniemi J. Roles of Variables in Object-Oriented Programming. OOPSLA \u201805: Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications; October 2005. p. 350\u201355. doi: 10.1145\/1094855.1094972","DOI":"10.1145\/1094855.1094972"},{"volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","year":"1994","author":"E Gamma","key":"pcbi.1009809.ref018"},{"key":"pcbi.1009809.ref019","volume-title":"Head First Design Patterns: Building Extensible and Maintainable Object-Oriented Software","author":"E Freeman","year":"2020","edition":"2"},{"volume-title":"The DevOps Handbook","year":"2016","author":"G Kim","key":"pcbi.1009809.ref020"},{"volume-title":"Accelerate: The Science of DevOps","year":"2017","author":"N Forsgren","key":"pcbi.1009809.ref021"},{"issue":"4","key":"pcbi.1009809.ref022","doi-asserted-by":"crossref","DOI":"10.1371\/journal.pcbi.1005412","article-title":"Ten Simple Rules for Making Research Software More Robust","volume":"13","author":"M Taschuk","year":"2017","journal-title":"PLoS Comput Biol"},{"key":"pcbi.1009809.ref023","article-title":"Testing for trustworthiness in scientific software. 2009","author":"D Hook","year":"2009","journal-title":"ICSE Workshop on Software Engineering for Computational Science and Engineering. IEEE"},{"issue":"10","key":"pcbi.1009809.ref024","doi-asserted-by":"crossref","first-page":"1219","DOI":"10.1016\/j.infsof.2014.05.006","article-title":"Testing scientific software: A systematic literature review","volume":"56","author":"U Kanewala","year":"2014","journal-title":"Inf Softw Technol"},{"key":"pcbi.1009809.ref025","doi-asserted-by":"crossref","DOI":"10.1007\/978-3-540-27777-4_42","volume-title":"Working Effectively with Legacy Code","author":"MC Feathers","year":"2004"},{"key":"pcbi.1009809.ref026","doi-asserted-by":"crossref","unstructured":"Petre M. UML in practice. ICSE \u201813: Proceedings of the 2013 International Conference on Software Engineering; 2013. p. 722\u201331.","DOI":"10.1109\/ICSE.2013.6606618"},{"key":"pcbi.1009809.ref027","doi-asserted-by":"crossref","unstructured":"Cherubini M, Venolia G, DeLine R, Ko AJ. Let\u2019s go to the whiteboard: how and why software developers use drawings. CHI \u201807: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems; April 2007. p. 557\u201366. doi: 10.1145\/1240624.1240714","DOI":"10.1145\/1240624.1240714"},{"key":"pcbi.1009809.ref028","doi-asserted-by":"crossref","DOI":"10.7551\/mitpress\/10612.001.0001","volume-title":"Software Design Decoded: 66 Ways Experts Think","author":"M Petre","year":"2016"},{"issue":"5","key":"pcbi.1009809.ref029","doi-asserted-by":"crossref","first-page":"28","DOI":"10.1109\/52.35587","article-title":"Structured Flowcharts Outperform Pseudocode: An Experimental Comparison","volume":"6","author":"DA Scanlan","year":"1989","journal-title":"IEEE Softw"},{"volume-title":"A Software Architecture Primer","year":"2006","author":"J Reekie","key":"pcbi.1009809.ref030"},{"issue":"3","key":"pcbi.1009809.ref031","doi-asserted-by":"crossref","first-page":"e1008563","DOI":"10.1371\/journal.pcbi.1008563","article-title":"Ten quick tips for staying safe online","volume":"17","author":"D Smalls","year":"2021","journal-title":"PLoS Comput Biol"},{"key":"pcbi.1009809.ref032","article-title":"Designing User Interfaces for an Aging Population: Towards Universal Design","author":"J Johnson","year":"2017","journal-title":"Morgan Kaufmann"},{"key":"pcbi.1009809.ref033","unstructured":"UK Home Office. Designing for accessibility; viewed August 2021. Available from: https:\/\/ukhomeoffice.github.io\/accessibility-posters\/posters\/accessibility-posters.pdf."},{"issue":"4","key":"pcbi.1009809.ref034","first-page":"72","article-title":"The Other Diversity Dividend","volume":"96","author":"P Gompers","year":"2018","journal-title":"Harv Bus Rev"},{"issue":"4","key":"pcbi.1009809.ref035","first-page":"383","article-title":"Diversity improves performance and outcomes","volume":"111","author":"LE Gomez","year":"2019","journal-title":"J Natl Med Assoc"},{"issue":"9","key":"pcbi.1009809.ref036","doi-asserted-by":"crossref","first-page":"e1007296","DOI":"10.1371\/journal.pcbi.1007296","article-title":"Ten simple rules for helping newcomers become contributors to open projects","volume":"15","author":"D Sholler","year":"2019","journal-title":"PLoS Comput Biol"}],"container-title":["PLOS Computational Biology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dx.plos.org\/10.1371\/journal.pcbi.1009809","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,2,24]],"date-time":"2022-02-24T18:30:00Z","timestamp":1645727400000},"score":1,"resource":{"primary":{"URL":"https:\/\/dx.plos.org\/10.1371\/journal.pcbi.1009809"}},"subtitle":[],"editor":[{"given":"Francis","family":"Ouellette","sequence":"first","affiliation":[]}],"short-title":[],"issued":{"date-parts":[[2022,2,24]]},"references-count":36,"journal-issue":{"issue":"2","published-online":{"date-parts":[[2022,2,24]]}},"URL":"https:\/\/doi.org\/10.1371\/journal.pcbi.1009809","relation":{},"ISSN":["1553-7358"],"issn-type":[{"type":"electronic","value":"1553-7358"}],"subject":[],"published":{"date-parts":[[2022,2,24]]}}}