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 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
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.
- 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
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
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.
- Introducing comprehensive software documentation, including maintenance guides and end user tutorials.
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.