en flag +1 214 306 68 37

ScienceSoft's Practices for High-Quality Software Development

Quality is deeply rooted in our culture. 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

Quality is Only Real When Measured: KPIs We Use

For each client, we devise a tailored set of quantitative KPIs, ranked according to their weight for project health and impact on customer goals. We use the KPIs to assess and continuously improve the success of cooperation and the quality of the software we deliver.

Development process quality KPIs

Here are some of the metrics we employ in our projects. The actual set depends on the specifics of the development approach and is defined individually for each client.

Time

  • Actual time spent vs. planned time (total and across particular tasks).
  • Lead time and cycle time, team velocity, deployment frequency, throughput — show trends behind the speed and amount of work an Agile development team completes per iteration.

Cost

  • Budget vs. actual costs — a general KPI for project health measurement.
  • Discovery cost estimates vs. refined budget.
  • Cost variance dynamics.

Scope

  • Components and features implemented vs. specified requirements.
  • Release burndown — reflects the tasks completed during an Agile iteration (measured in user stories, epics, or the entire project scope).
  • Features waiting in the backlog longer than the deadline — a control point that, ideally, should always equal zero.

QA efficiency

  • Test coverage and actuality.
  • Deliverables accepted in the first UAT phase.
  • Defects count per project/iteration/functional module (grouped by severity).
  • Testing effectiveness per project/iteration.
  • Rejected defects ratio — reflects the quality of defect localization and reporting procedures.
  • Reopened defects rate — shows the efficiency of the quality stabilization procedures.

Software quality KPIs

Usability

Indicates how easy it is for the software user to accomplish a desired task and the kind of user support the system provides.

  1. User adoption rate.
  2. Training duration.
  3. Task performing duration.
  1. The number of completed tasks per time period.
  2. Completion rate (successfully completed to total tasks).
  3. The number of errors.

Availability

Measures the probability that a system performs correctly at specific time.

  1. Mean Time Between Failures.

  2. Mean Time To Detection​.

  3. Mean Time To Recovery.

  4. Mean Time To Failure​.

  1. POFOD​ (Probability of Failure on Demand) - the number of failures/requests over the observed period.
  2. ROCOF​ (Rate of Occurrence of Fault) - total number of failures.

Performance

Showcases the solution’s ability to meet action timing requirements.

  1. Latency.
  2. Throughput.

  3. Capacity and spare capacity.

  1. Schedulable utilization.

  2. Screen refresh time.

  3. Adaptability to accomodate additional resources.

Security

Measures the system’s ability to protect data and information from internal and external cyber threats.

  1. Data encryption efficiency.
  2. Security incidents.
  3. Known vulnerabilities left open by the end of the month.
  1. Vulnerabilities found by regular penetration testing.
  2. Vulnerabilities found by independent penetration testing.

Code quality

Shows the overall level of excellence and reliability of a software program's source code.

  1. Maintainability index (MI).

  2. Cyclomatic Complexity (CC).

  3. Depth of Inheritance.

  1. Class Coupling.

  2. Lines of code.

  3. Halstead Volume.

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

Here is how we manage quality throughout all stages of our typical Agile software development project.

1. 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.

  • Describing the project scope and preparing high-level estimates, ensuring they correspond to the client's needs and expectations regarding the deliverables, time frames, and budget.
  • Devising a quality strategy for our services and software.
  • (optional) Signing a quality agreement as an appendix to the contract or work order.
  • 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 strategy.
  • Introducing a tailored collaboration strategy and plan aimed to meet project goals with maximum efficiency.

Check our RACI-based collaboration model for Agile software development

Collaboration model for an Agile software development project - ScienceSoft

HIDE

  • Assembling a project team of pre-vetted specialists best corresponding to a client's needs and approved by a client.

2. Shrewd planning

At this stage, we elaborate on the project plan and determine tangible success measures.

  • Creating a detailed project plan, defining milestones, and describing the tasks to complete.
  • Defining KPIs that will allow stakeholders to track the project's progress and us – to optimize and improve our efforts continuously.
  • Creating detailed technical requirements specifications (can be presented as user stories, mockup-based behavior descriptions, etc.).
  • Composing a requirements traceability matrix.
  • Eliciting all possible risks related to the software development project and preparing a risk mitigation plan.
  • Creating a high-level test plan that specifies the testing scope, manual and automated testing ratio, testing team composition, test schedule, general test entry and test exit criteria, QA toolkit, and test KPIs.

3. Solution building

Architecture, UX and UI Design

At this stage, we ensure top-notch software and service quality via:

  • Cross-reviewing functional and non-functional software requirements to improve their consistency and completeness for the development process and testing.
  • Designing a high-performing, secure, and flexible architecture.

See an example of software architectures we create

Smart contracts utilizing a third-party blockchain network - ScienceSoft

HIDE

  • Studying the target users' needs and behavior and creating convenient user experiences.
  • Designing a stylish app look for high user engagement, retention, and ease of use.
  • Creating a feature DoR and handing over the feature to developers.
  • Transparent communication between the technical design, development, and QA teams.

Coding

We deliver software front and back end, APIs, and integrations in 2–4 week Scrum iterations.

  • Following unified code rules and specific rules for particular programming technologies.
  • Performing regular unit testing and code reviews (ad hoc reviews, pair programming, walkthrough, etc.).
  • Controlling quality metrics specific to the software type (involves security and compliance assessments for in-progress software with high requirements for data protection).
  • Introducing Infrastructure as a Code and running relevant unit tests.
  • Implementing IT automation: establishing CI/CD pipelines, automating application monitoring, configuring automated development, testing, and production environments.

Rigorous testing

We handle over user stories to both developers and testers simultaneously to create and execute test cases in parallel with development. Our major quality management processes and activities at this stage:

  • Taking a shift-left approach to testing and moving testing activities closer to the beginning of the software development process.
  • Designing test scenarios and test cases, writing test scripts for automated testing.
  • Setting up test environment and preparing test data.
  • Incorporating automated tests into CI/CD pipeline to speed up the testing process.
  • Executing manual and automated tests.
  • Analyzing test results, evaluating testing success, and performing additional testing if necessary.
  • Documenting all necessary testing aspects in compliance with ISO/IEC/IEEE 29119-3:2021.

4. Delivery

At this stage, ScienceSoft delivers a build or ready software to the customer.

  • Providing a test result report describing the testing progress, defects validation results, and invested efforts.

5. Maintenance

After the ready-to-use software is set live, we support and evolve the solution according to our client's needs. With ScienceSoft, one can be sure that the developed software always remains of excellent quality and brings high user satisfaction.

  • Recommending and implementing improvements and new functionality via CI/CD pipelines.
  • Quality assurance of new and changed features (covers full-scale regression testing).
  • Optimizing cloud resources for cloud-hosted applications.
  • Following the ITSM-based approach and applying the ITIL best practices.
  • Monitoring and reporting service KPIs, continuously improving the performance of support teams.

Check What Clients Appreciate in Cooperating with ScienceSoft

View all customer reviews

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.