Masha'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 Masha - Masha
Quality Management at Masha - Masha

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 service quality KPIs

Time

  • Actual time spent vs. planned time (total and across particular tasks).
  • Lead time and cycle time, team velocity, deployment frequency, throughput — shows 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 Solid Foundation

    To substantially minimize risks associated with quality, we implement quality measures right from the initial phase of the project, which is when we delve into understanding the client's requirements.

    • Defining project scope and preparing high-level estimates aligned with client expectations.
    • Crafting a quality strategy for our services and software.
    • Optionally, Signing a quality agreement as an appendix to the contract or work order.
    • Conducting initial risk assessments, addressing areas like compliance and cybersecurity and openly discussing them with a client. Drawing up a high-level risk mitigation strategy.
    • Establishing a tailored collaboration strategy and plan for efficient project execution.
    • Assembling a project team of pre-vetted specialists best corresponding to a client's needs and approved by a client.

    2. Thoughtful Planning

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

    • Creating a comprehensive 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.
    • Specifying detailed technical requirements specifications in detail, presented as user stories or mockup-based behavior descriptions.
    • Identifying all possible risks related to the software development project and devising a risk mitigation plan.
    • Developing a high-level test plan covering testing scope, teams, schedule, and more.

    3. Building Solutions

    Architecture, UX and UI Design

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

    • Cross-reviewing and refining functional and non-functional requirements.
    • Designing a high-performing, secure, and flexible architecture.
    • Studying the target users' needs and behavior and creating convenient user experiences.
    • Designing a engaging and user-friendlyapp interfaces.
    • Creating a feature DoR and handing over the feature to developers.
    • Transparent communication between the technical design, development, and QA teams.

    Coding

    When it comes to coding, we adhere to the following principles:

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

    Rigorous testing

    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 , test cases,and automated test scripts
    • Setting up test environments and preparing test data.
    • Integrating automated tests into CI/CD pipeline to speed up the testing process.
    • Executing manual and automated tests.
    • Analyzing test results, and conducting additional testing when necessary.
    • Complying with ISO/IEC/IEEE 29119-3:2021 standards for documentation.

    4. Delivery

    At this stage, Masha provides the customer with a fully developed and ready-to-use software solution.

    • Providing a comprehensive test result report describing the testing progress, defects validation results, and invested efforts.
    • Delivering thorough comprehensive software documentation, including maintenance guides and end user tutorials.

    5. Maintenance

    Once the ready-to-use software is launched, we continue to provide ongoing support and enhancements tailored to our client's requirements. With Masha, you can have confidence that the software we develop maintains a high level of quality and consistently ensures user satisfaction.

    • Recommending and implementing improvements and new features through CI/CD pipelines.
    • Performing Quality assurance of new and changed features, including 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 enhancing the performance of support teams.

    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.