ptc-catalog

Rate Your Project Survey

Brought you by the IDEAS-ECP project and the PSIP Development Team.

Why are Software Team Practices Important?

Software engineering is a systematic approach to the design, development, and maintenance of a software system. Building reliable and maintainable software is difficult and expensive. By adopting a systematic approach to software development, it is possible to maximize the cost effectiveness of the software system.

Key Objectives of Software Engineering

Objective Description
Maintainability Should be able to evolve to meet changing requirements
Correctness Correctly implements the user requirements
Adaptability Can be changed to adapt to new system or user constraints
Reusability Modules can be readily reused to develop new software products
Testability Should be testable with minimal effort
Portability Can be cost effectively transferred from one computer system to another
Reliability Should be able to perform its desired function over an arbitrary time period

How Does Your Team Score?

Use the following survey to rate your team practices.

Score Description
0 Oh oh. Now is a good time to take a look at PSIP (see below) for identifying and tracking practices that could be used or improved.
<10 Good start! A process improvement strategy such as PSIP (see below) could be a good way to get you to the next level.
10-100 Cool! Adopting advanced practices can be challenging without a process improvement strategy such as PSIP (see below.).
100-400 Impressive! Seems like you have really good practices already in place. Have you thought about how you could improve from here?
>400 Wow, you rock! Would you be interested in writing a blog article on your software engineering practices?

Where To Go Next?

Regardless of your score, there is always room for improvement. One way to improve your project’s practices is to look at a software improvement strategy, such as the Productivity and Sustainability Improvement Planning (PSIP). PSIP is a lightweight process that uses Progress Tracking Cards (PTCs) to track the improvements you are making. Some PTCs related to the survey items can be found on the Survey PTC Index Page.

For more information, see https://bssw.io/psip.

If you and your team would like assistance from a PSIP IDEAS-ECP facilitator in rating your project, starting PSIP, and creating a project tracking card (PTC), contact us.

Project Self-Survey

The form below shows a range of practices that increase in maturity. Check the practices that your project already uses, score each basic practice as 1 point, intermediate as 10 points and advanced as 100 points. Write the score in the box below.

If you and your team would like assistance from a PSIP IDEAS-ECP facilitator in rating your project, starting PSIP, and creating a project tracking card (PTC), contact us at https://bssw.io/psip.

Better Development

  1. Revision Control

    • Uses revision control system such as Git [1 point]
    • Uses a basic development workflow (e.g., basic Git workflow) [10 points]
    • Uses an advanced development workflow (e.g., Gitflow) [100 points]
  2. Code Reviews

    • Ad-hoc code reviews [1 point]
    • Regular code reviews (e.g., weekly meetings) [10 points]
    • Code reviews automated in workflow (e.g., via pull requests) [100 points]
  3. Issue Tracking

    • Manual issue tracking via email or other medium [1 point]
    • Dedicated issue tracking system being used [10 points]
    • Integrated issue tracking (e.g., pull requests) [100 points]
  4. Deployment

    • Manual deployment using a script [1 point]
    • Deployment as part of development workflow with manual intervention [10 points]
    • Continuous deployment [100 points]
  5. Documentation

    • Ad-hoc text files [1 point]
    • Code and documentation are cross referenced and updated when committed to repository [10 points]
    • Integrated with the package release workflow [100 points]

Better Planning

  1. Development Process

    • Has development process but it is based on ad-hoc rules [1 point]
    • Employs an iterative development process [10 points]
    • Uses an agile development methodology [100 points]
  2. Due Diligence

    • Formal guidelines for accepting contributions [1 point]
    • Clearly defined standards for coding and documentation [10 points]
    • Provenance and license checking for contributions [100 points]
  3. Software Design

    • Development guidelines include design in the process [1 point]
    • A modeling language is employed for key aspects of the project [10 points]
    • Visual modeling using a graphical representation to capture design [100 points]
  4. Onboarding

    • Initial onboarding process is documented [1 point]
    • Used for supervisors for new hires [10 points]
    • Used for all personnel changes [100 points]
  5. Requirements Analysis

    • Development guidelines include requirements gathering [1 point]
    • Formal requirements gathering is undertaken as part of the project [10 points]
    • Requirements management process is employed [100 points]

Better Reliability

  1. Testing

    • Comparison used to create system-level no-change tests [1 point]
    • Unit testing for refactored and new code [10 points]
    • Continuous integration [100 points]
  2. Reproducibility

    • Publication of code [1 point]
    • Inclusion of data when code is published [10 points]
    • Automatic provenance capture system is employed [100 points]

Score 0

Be sure to print this page out for your records! We do not save your data in any way.