si2-urssi / plan

Implementation plan for the US Research Software Sustainability Institute
http://plan.urssi.us/
Creative Commons Zero v1.0 Universal
2 stars 4 forks source link

Discussion on topics in Education chapter #27

Closed kyleniemeyer closed 4 years ago

kyleniemeyer commented 4 years ago

I'd like to discuss some of the topics mentioned in Chapter 6, for the summer school and Research Project Carpentry. The topics in the current report differ somewhat from the things that were most emphasized and discussed in the winter school.

The topics for the proposed summer school given in Chapter 6 are:

(1) human factors in the software development process, (2) peer code review, (3) modern version control (i.e., git), (4) software design, (5) software testing, (6) open science principles, and (7) software citation.

I think this is missing the packaging / distribution elements that were covered in the winter school. Both there, and with my experiences with graduate students in engineering who are developing research software, the biggest issues are in software design (including modularity), testing, packaging/distribution, and version control/collaborative development issues. (Peer code review and open science practices are also very important! They just don't struggle with these things as much.)

But, I'm not totally sure how big an issue human factors is for research software—certainly plays a role in some cases, but I'm not sure if it applies widely enough to be called out in this small list of core topics. (Certainly not the first topic...)

Also, as currently written, "(3) modern version control (i.e., git)" makes it sound like the summer school would teach Git, which would overlap with Software Carpentry. Instead, this is probably more accurately something like "collaborative development with modern version control (i.e., git/GitHub)".

The Research Project Carpentry section also doesn't mention packaging and distribution, which I think is something important to include. I'm also less sure about some of the other topics, like "Agility", "metrics", and "estimating developer time"—these seem less relevant to the primary audience of the lessons, which (I think) are generally going to be domain researchers working on developing software to support their research, rather than full-time software developers (keeping in mind that this is intended to support the research otherwise supported by NSF). The current topic list reads a bit more like a traditional CS software engineering program than one specific to the research audience of the URSSI.

kyleniemeyer commented 4 years ago

(sorry, made a few updates—I submitted before it was totally done)

JeffCarver commented 4 years ago

@kyleniemeyer I updated the text based on your comment above. Note that I left some of the text that you suggested that we remove because it came from the surveys and workshop discussion. I do agree with you that some of the items in Research Project Carpentry are less critical, so I moved those to the end of the list.

kyleniemeyer commented 4 years ago

OK, I think the changes address my concerns, thanks @JeffCarver