### Managing Research Software Projects # Introduction
It's still magic even if you know how it's done.
--- Terry Pratchett --- # What is a research software project? - Software is created and run to answer a question - Papers, theses, and other reports are the product - The software is "just" a tool - Shades into projects that produce software for other researchers to use --- # Who are you? - Degree(s) in some research domain - Little or no formal training in software development - Which is OK: many professional programmers don't have computer science degrees - In a team of 1–12 people - Timelines of weeks or months --- # Where we've been, where we're going | Then | Now | Next | | ---- | ---- | ---- | | Mail attachment | Git repository | Branching workflow | | "Just do it" | Slack / mailing list | Martha's Rules | | Interactive analysis | A big pile of scripts | Build tools / CI | | Word/Google Docs | Notebooks | Site builder | | "It doesn't crash" | "Are there any NAs?" | Assertions/unit tests | | "Um, hi?" | README + LICENSE | CONTRIBUTING + CoC | --- # How we're going to get there - The best ideas in the world won't matter if you can't implement them - The best tools in the world won't save your project if you're arguing with each other all the time - Contents - [Introduction](./introduction.html) - [Governance](./governance.html) - [Workflow](./workflow.html) - [Automation](./automation.html) - [Quality](./quality.html) - [Structure](./structure.html) - [Sharing](./sharing.html) - [Leadership](./leadership.html) - [Conclusion](./conclusion.html) --- # Acknowledgments - Original workshop: Daniel Standage and Greg Wilson - [Merely Useful](https://merely-useful.github.io/py-rse/): Kate Hertweck, Damien Irving, Luke Johnston, Joel Ostblom, Charlotte Wickham, and Greg Wilson ---
Create a value proposition
For **description of target audience** who **want statement of their needs**, **project name** provides statement of **key benefits**. Unlike **name of alternative solution(s)** our project **key differentiator**. ---
Describe how your project is currently run
1. Who uses your software? 1. How do they find it? 1. Who decides what will happen next? 1. How is that communicated? 1. Who can make what kinds of changes? 1. What happens automatically? 1. How are newcomers brought on board?