Productivity and Sustainability Improvement Planning Tools
This project is maintained by betterscientificsoftware
Project, PI:
Meeting host:
Interviewer(s):
Notetaker(s):
Interviewee(s):
Interview date:
Use this series of questions to obtain a sketch of how the software team does its work. Interviewer should state at the beginning of interview, “At any time you can stop the interview and/or not have to answer a question you don’t want to.”
Team Profile
How many people are on your team; what and how do they contribute?
What level of software development expertise do team members have?
What is your team’s history with evaluating and adopting new software practices, processes and tools?
What do you consider unique about your team?
Project Profile
Library or application or both?
Approximate lines of code?
Number of repositories used?
Languages used?
Number of users?
Release frequency, process and modality (source/binary)?
Compilers and OS(s) supported?
Modes/styles of parallelism?
Other development logisitcs that may be unique to this project?
Development Topics
How does your team get an idea for working on a piece of software?
How does a new idea get prioritized with other ideas and ongoing work?
Once an idea is selected, talk through how the idea is completed as new software?
Will the new software have tests and documentation right away? If not, when?
Do you test your software so that the new software does not break the old software?
If the new software requires teaching other how to use it, how does that happen?
Tools
How do you store, manage and share your source code, including tools you use?
How are bugs usually discovered?
How are they recorded and resolved?
What tools do you use to automatically test your software?
How do users get access to your software?
External software use
Other than standard programming tools and environments, do you use software developed by other people, for example, scientific libraries?
Is this software actively developed by someone else?
Do you have tests to confirm that this software is behaving the way you expect?
If the software you are using were suddenly unavailable, do you have a backup plan?
Specifically, what if the software is not available on a new platform that you want to use?
Training
How does a new team member get trained to do their job?
What do you do to prepare for the departure of a team member?
Improvement strategies
How does your team try to improve how they do their work from year to year?
Do team members get recognition for finding a better way to do their work? Please answer only Yes or No. Note to interviewer: This question MAY be sensitive to the participants. Do not seek elaboration if the answer is “no.”