ScienceSoft's Practices for High-Quality Software Development

Quality is deeply rooted in our culture. Our NPS being ~60%, we guarantee high customer satisfaction with project outcomes due to:

- ISO 9001-certified quality management system comprising policies, processes, and teams.

- True seniority of our specialists, which means proven tech proficiency, proactivity, and self-management.

- Result-driven KPI-based project management.

Quality Management at ScienceSoft - ScienceSoft
Quality Management at ScienceSoft - ScienceSoft

How We Take Care of Quality at Every Step of Software Development

Here is how we manage quality throughout all steps of our typical Scrum-based software development project.

A steady start

To substantially reduce quality-related risks, we introduce quality measures as early as the project's inception stage – when we explore the client's needs.

Our key quality management processes and activities at this stage:

  • Preparing a business case to give a clear understanding of the project costs, investments and ROI.
  • Describing a detailed project plan, ensuring it corresponds to the client's needs and expectations regarding projected deliverables, time frames, and budget.
  • Devising a quality plan.
  • (optional) Signing a quality agreement as an appendix to the contract or work order.
  • Establishing effective, tailored communication with a client's stakeholders. See an example of our collaboration process
  • Conducting initial risk assessments (including ones related to regulatory compliance, cybersecurity, and unplanned efforts) and openly discussing them with a client. Drawing up a high-level risk mitigation plan.
  • Assembling a project team consisting of pre-vetted specialists best corresponding to a client's needs and approved by a client. See a sample profile of our JavaScript developer
  • Drawing up a collaboration plan aimed at meeting project goals with maximum efficiency.
ScienceSoft

ScienceSoft

Shrewd planning

At this stage, we devise the solution, elaborate on the project plan, and agree on how we will measure the project's success.

Our key quality management processes and activities at this stage:

  • Creating a detailed project roadmap, defining milestones and describing processes to ensure the successful completion of milestones.
  • Defining KPIs that will allow stakeholders to track the project's progress and us – to optimize and improve our efforts continuously.
  • Creating detailed requirements specifications.
  • Reviewing functional and non-functional software requirements to improve their consistency and completeness for the development process and testability. Creating requirements traceability matrix.
  • Eliciting all possible risks related to the software development project and preparing a comprehensive risk mitigation plan.
  • Creating a high-level test plan with the defined QA and testing activities.
ScienceSoft

ScienceSoft

Solution building

3.1. Architecture, UX and UI Design

At this stage, ScienceSoft's experienced architects design high-performing, reliable, and scalable architecture for future software. See an example of software architectures we build

The UX researchers study the target audience, its needs, and behavior, while the UI designers create UI kits and prototypes aimed at high user engagement, retention, and ease of use.

Our key quality management processes and activities at this stage:

  • Performing requirement cross-review by senior people.
  • Handing over a feature to developers only when the feature DoR is created.
  • Regular feature grooming.
  • Close collaboration of architects, UX and UI designers with the testing team.

3.2. Coding

At this stage, we deliver software front and back end, APIs, and integrations in 2-4 week Scrum iterations.

Our key QM processes and activities at this stage:

  • Following unified code rules and specific rules for certain programming technologies.
  • Performing regular unit testing and code reviews (ad hoc reviews, pair programming, walkthrough, etc.).
  • Controlling code quality metrics: Maintainability index (MI), Cyclomatic Complexity (CC), Depth of Inheritance, Class Coupling, Lines of code, Halstead Volume, and other metrics specific for the software types developed with a particular technology. See examples of the code we write
  • Introducing Infrastructure as a Code and performing relevant unit tests, establishing CI/CD pipelines, automating application monitoring, automating development, test, and production environment configuration.

3.3. Rigorous testing

This stage runs in parallel with development. User stories are handed over both to developers and testers, and test cases are created while the development runs. When the development is over, test cases are validated by the QA manager. After test cases are executed, automated regression testing is executed.

We adhere to the shift-left approach, starting testing activities closer to the beginning of a sprint or iteration. We believe most tests should be unit tests, while the fewest tests are functional UI tests. As a rule, unit tests are quick and inexpensive to produce and maintain but provide a high return on investment by ensuring that key functions work. While there are fewer functional UI tests than unit tests, they are critical for verifying that software works correctly and delivers business value.

Our key quality management processes and activities at this stage:

  • Drawing up a test strategy, plan, and documenting all test cases and scenarios for automated tests, test scope, acceptance criteria, and all test findings based on ISO/IEC/IEEE 29119-3:2021. This makes the process manageable, thus allowing for timely process improvements, as well as helping the development team quickly act on the testing findings.
  • Following the IMAAT (Integrated Manual and Automated Testing) approach. It implies using the most feasible degree of automation to ensure the highest quality while minimizing costs in the long run. We define the degree of automation based on the specifics of each project. For example, we advise automating effort-consuming regression and end-to-end testing. API, stress and load, capacity, and security tests are automated. We integrate auto-tests into the deployment pipeline, which makes software delivery predictable and safe.
  • Testing every feature manually during acceptance and ad-hoc exploratory testing.
  • Analyzing test results, evaluating testing, and performing additional testing if necessary. See an example of our test summary report
ScienceSoft

ScienceSoft

Transition

This is the stage where ScienceSoft provides a build or ready software to the customer.

Our key quality management activities at this stage:

  • Providing clear project documentation.
  • Providing KPI-based quality summary reports that describe the overall build quality,
  • Providing a test result report describing the testing progress, defects validation results, and invested efforts.
ScienceSoft

ScienceSoft

Production

This is the stage where we maintain, support, and evolve the solution according to the changing business needs. With ScienceSoft, the customer can be sure that the developed software remains of high quality over time, evolves according to the changing business needs, and brings high user satisfaction.

Our key quality management processes and activities at this stage:

  • Maintaining effective communication with a client's business and technical stakeholders.
  • Recommending and implementing adjustments, changes, and new functionality via CI/CD pipelines.
  • Testing new or changed functionality and running comprehensive regression testing.
  • Following the ITSM-based approach and applying the ITIL best practices.
  • Ensuring the high performance of support teams (KPI-based approach)
  • Optimizing cloud resources (for cloud applications).
ScienceSoft

ScienceSoft

Quality is Only Real When Measured: KPIs We Use

We assess our projects’ health and drive improvements based on tailored sets of KPIs we track and analyze.

Quality

Check metrics

Basic quality KPIs:

  • Test coverage and actuality.
  • Total number of change requests.
  • Percentage of deliverables accepted in the first UAT phase.

Additionally:

  • Cyclomatic Complexity (CC), Depth of Inheritance, Class Coupling, Lines of Code, Halstead Volume – detect particular issues of code complexity.
  • Maintainability index (MI) – helps estimate how easy it is to change the source code.
  • Defects count per project/iteration/functional module (grouped by severity) - the ratio of critical defects to total defects count shows the current product quality state. If the ratio decreases, then product quality improves.
  • Defects count per project/iteration/functional module (grouped by priority) - allows analyzing total defects impact on business value.
  • Testing effectiveness per project/iteration - (Defects count found by the test team / Total defects count)*100%. Can be measured after the final release or after a single iteration.
  • Defects found in UAT - number of defects by severity: critical, major, minor, etc.
  • Rejected defects ratio (per project) - the ratio of rejected defects to reported defects shows the quality of defect localization and the reporting procedure.
  • Executed test cases count grouped by status vs. actual test cases count (per project, last result) - overview of product tests' intensity and volume.
  • Requirements covered with test cases vs. the total number of requirements - overview of test coverage.
  • Reopened defects rate - the ratio of reopened defects to resolved defects shows the quality of the project stabilization procedure.
  • Defects "need info" rate - the quantity of defects, set by the development team in "need info" status - shows the defects description quality.

Project health

Check metrics
  • Project health score - an aggregated metric based on the weighted score of all related KPIs.

Costs

Check metrics
  • Actual vs budget costs - general KPI for project health measurement.

  • Cost estimates vs budget - re-estimated costs versus the initial budget.

Subcontractors involvement

Check metrics
  • Percentage of outsourcing personnel costs to total costs.
  • Percentage of outsourcing personnel hours to total time budget.

With consideration to a project, lesser external involvement tends to decrease associated risks. Nevertheless, comparing external costs with external hours lets us set the base for comparison with internal resources and increase control over outsourcing personnel.

Team performance and productivity

Check metrics
  • Actual effort in hours to budget - general KPI for project health measurement.
  • Project management effort in hours to budget - overall project management efforts.
  • Features waiting in the backlog longer than the deadline - a control point that, ideally, should always equal zero.
  • Lead time and cycle time, team velocity, deployment frequency – shows trend behind the speed and amount of work a team completes per iteration to plan workload efficiently.

Timelines

Check metrics
  • Timeline shift to plan - general KPI for Project Health measurement.

Customer

Check metrics

KPIs that shows the client's involvement and related outcomes:

  • Customer engagement score.
  • Delays with requirements elicitation sessions.
  • Delays with UAT.

Additionally:

  • Successful project score - score that shows the customer satisfaction with project performance and quality.
  • The team's proactivity (problem-solving skills, ability to give advice) and the team's responsiveness (including availability) – a set of KPIs that shows customer satisfaction with the project team and its competencies.

Security

Check metrics
  • Vulnerabilities found by regular penetration testing.
  • Vulnerabilities found by independent penetration testing.
  • Known vulnerabilities left open by the end of the month.
  • Security incidents.

Security KPIs could be applied to specific projects with special requirements for security as a part of quality control.

Check What Clients Appreciate in Cooperating with ScienceSoft

Looking for a Quality-Dedicated IT Service Provider?

Focus on what is important. Leave the rest to the vendor who cares about quality as much as you do.