Ensuring Quality Software with Tiempo Quality System (TQS)

As software engineers our main goal is the end product and how fast we can get there so that our clients can go to market and get a return on their investment. But, in all the haste to get to the final result, how do we and our clients ensure that the highest level of quality is maintained or improved for the end user to have the best experience?

Tiempo Quality System

Through the utilization of a model based on internationally proven best practices, called the Tiempo Quality System (TQS), our developers, testers and managers can ensure our clients receive a continuous delivery of high-quality products within budget and accelerated timelines using nearshore resources, supported by business knowledge and continuous improvement initiatives. To accomplish this, TQS includes several processes and tools that guarantee an effective interaction between the client and team, to deliver a valuable product. These tools include, but are not limited to, our Methodology, Agile Development Teams and Engineering Practices.

Methodology:

Another way to describe the highly configurable methodology included as part of TQS is referred to as, “Controlled Agile.” Our unique approach to Agile has been developed over time as management and developers discovered that not every development cycle could, or should, be treated the same. The principles used in the development of software needs to be handled on a case by case basis, resulting in the application of well structured and defined versions of methodologies like Scrum and Kanban.

Scrum – An approach for incremental product development that uses cross functional and self-organized teams.

  • Pre-Defined Roles
  • Work Delivered in Sprints – a set period of time where specific work must be completed
  • Changes are welcomed
  • A well prioritized backlog is essential
  • Velocity

Kanban – An approach where developers take a task from a queue that has been prioritized (backlog), work on it and deliver.

  • No Pre-Defined Roles
  • Continuous Delivery
  • Changes at any time
  • Defined Cycle to use as checkpoints

Our Controlled Agile framework allows us to choose the better fit for the type of project that is being developed.

Tiempo Framework Configurator:

To create the right development team for our clients, we use what we call the Tiempo Framework Configurator to gather information in order to gain a better understanding of their current state. This allows us to:

  • Inform different areas of the company about possible clients starting in the near future.
  • Uncover any special requirements that need to be clarified or resolved prior to the team starting.
  • Make recommendations on the different aspects of the team to reach the desired future state.
  • Have a smooth ramp up phase.

The Configurator is a versatile tool that allows the development team to adapt to its clients’ needs because there is a better understanding of the processes being used.

Agile Developer Team:

In order to ensure high-quality service, TQS helps define a team’s structure that is aligned to Agile practices with a clear view and understanding of the roles and responsibilities of each member of the team. These teams are uniquely designed according to the needs of each program. To determine the requirements of a team we work with our clients to vet the details and complexities of their software, which in turn defines the ideal team configuration, and the skills they need to have. From a high level, these are some of the typical roles:

  • Product Owner (usually from client)
    • Bridges the gap between clients’ needs and the team by giving direction on user experience, design, user acceptance, content strategy and release process to follow.
    • Facilitates communication and identifies product requirements/enhancements.
  • Program Manager
    • Manages client relationship, resources, project oversight and organization. Promotes agile values.
  • Scrum Master
    • Ensures team is 100% productive through agile practices and managing self-organized teams.
  • Development Team
    • Analysis, estimation, design, coding and testing. The team has a shared aim and responsibility, to deliver a potentially shippable increment of the product at the end of each iteration.
  • Release Manager
    • The major liaison between application development and production.

Engineering Practices:

We will save the meat of this topic for another time, but just know these techniques are used to support building software in an Agile environment; they are also techniques that relate to requirements analysis, core development, documentation, QA and operations.

Engineering practices are described to help teams minimize the time between the conception of an idea and its implementation in working software.  They support the team, aiding in the fulfilment of new requirements that may come from an ever changing market. Resulting in the mitigation of risks associated with changes through the use of technical practices to ensure the software’s quality and the correct implementation of processes are used to develop it.

Management Practices:

Internally, our managers implement a set of practices that motivate employees. This is beneficial because it creates a productive atmosphere for our engineers to increase performance, communication, embrace culture and decrease attrition. Some of the practices are:

  • One-On-One Meetings
  • Identity Symbols
  • Celebration Grids
  • Value Stories
  • Copilot Programs

The added value of TQS in software development is mainly centered in agile practices that help to ensure a high-quality product with a high return on investment. Also, it offers a lightweight framework for helping teams, given a continuously evolving functional and technical landscape, while maintaining a focus on a rapid delivery.

YouTube video