Skip to content

DagstuhlEAS/rse-handbook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

Research Software Engineering Handbook

Licence

This work is licensed under a Creative Commons Attribution 4.0 International License.

Creative Commons Licence

What is this handbook?

This handbook is for when something is different. So you know the basics of programming! This handbook is for RSE, PI, grad students who write research software.

What size project?

  • Just you - see chapter X
  • You and your PI - these
  • You and your group - more
  • 5-Person team - more

Project stage:

  • joining project
  • starting project
  • fixing project

A typology of software teams/projects as an index:

  • If you are a beginner, do this stuff
  • If you are a PI, read this stuff
  • If you are…..etc
  • Different kinds of software that suggest different levels of formalization

Table of Contents

Note: claimed chapter are denoted with @USERNAME/#ISSUE_NUMBER. Please add yourself to claim some of these:)

Getting started: DON'T PANIC!

  • Version Control (@mikecrouher/#11)
  • Licenses (@mikecrouher/#20)
  • Request for citation (@mikecrouher/#12)
  • Getting feedback (@mikecrouher/#13)
    • Show your code to someone else
    • Find your local support people
    • Get used to developing in public
  • Don't Reinvent the Wheel (@mikecrouher/#14)
  • Finding and evaluating upstream projects
  • Documentation (@mikecroucher/#16)
  • Requirements gathering 101 (@katerena/#17)

"I want to code better."

  • Testing Verification and Validation
    • Unit / integration (Jeff Carver)
    • Test Driven Development (@hainesr/#5)
    • Behaviour Driven Development
  • Code Quality
    • Metrics (@hainesr/#8)
    • Code review (Jeff Carver)
    • Pair Programming?
  • Continuous integration (@dedal18/#3)
  • Issue tracking and bug reports (@katerena/#18)
  • Release management
  • Documentation ++ (@RvanNieuwpoort/#6)

"I want better code"

  • Modularity / code design (@JeffCarver/#19)
  • Performance, Parallelizing (@mikecroucher/#1)
  • Coding conventions (@JeffCarver/#22)
  • Writing reusable code
  • Writing testable code (@JeffCarver/#23)
  • Design Patters? (Andrei Chis)
  • Technologies/environments/libraries (@mikecroucher/#2)
    • Technologies/environments/libraries
    • Python (Mike Croucher)
    • R (Mike Croucher)
    • OpenMP (Mike Croucher)
    • Fortran (Mike Croucher)
    • CUDA (Mike Croucher)
    • MATLAB (Mike Croucher)
    • Mathematica (Mike Croucher)

"You have a team of developers now, how to cope with the new challenges?"

  • Formal requirements gathering (@JeffCarver/#24)
  • Version control ++ (@hainesr/#7)
  • Management process (???)
    • Group maintenance / morale / interpersonal interaction
    • Maintaining momentum
    • Hiring developers
    • Onboarding
  • Communications processes and tools (@katerena/#21)
  • Team based development
    • Collective ownership of the code (@hainesr/#9)
    • Technical debt (@hainesr/#10)
  • Project Management (@JeffCarver/#25)

"You have your first pull request, and a beginning of a community. What now?"

  • Lifecycle
  • Sustainability
  • Community management
  • Release management
  • Governance, code of conduct
  • Rethinking Licensing, Contributor Licensing Agreements

Contribute!

  • Outline for each of the technical chapters: "Here is what it is," followed by "Here is why it matters"
  • Every chapter is in a section organized by an audience with a need. Consider this audience and need during writing.
  • Default choice if you don't care and just want to do something Other choices with positives/negatives and questions you should ask to make a decision
  • No tutorials! Find existing materials and link to them. This is a more meta reference for navigating those existing resources.
  • Create an issue for working on your chapter and link it from the TOC; also link from the TOC to the work-in-progress .md file for your chapter
  • Copyright your writing! Write "copyright your_name year" at the top of your files, please!

Other good books

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •