We are going to start off with a 10,000-foot view of how quality assurance accelerates the development life cycle.
At Dialexa, we believe that software quality assurance is a process; it’s not a product and it’s not a specific group of people. A team needs to buy into this process in order to deliver an optimal solution and/or service as fast as possible. In this post, we’ll discuss three key areas we emphasize within our process: culture, analytics, and technologies. Focusing on these three key areas has enabled us to confidently deliver sensational products and services in short periods of time.
Imagine the development process is a racecar and your team’s culture is the racecar’s engine. Culture either encourages or discourages communication, creates or deters innovation, and improves or degrades the team’s quality of work.
Poor team culture results in increasing technical debt, slower release cycles, and an unimpressive deliverable. One impediment that often arises in software development culture is the team’s view of test engineers versus the rest of the development team. Are test engineers an enemy or a safety net? Are they a bottleneck or do they increase your team’s velocity?
When it comes to culture, Dialexa is certainly unique. Generally, project teams consist of 3 to 5 software engineers, a product designer, and a test engineer. We combine close physical proximity with an open floor atmosphere to drive team collaboration and streamline our defect lifecycles. The result is constant communication, rapid deployments, less technical debt, and more functionality in shorter timespans.
Our approach to the quality assurance (QA) process enabled us to launch Dialexa Labs' www.tryrobin.com project for Robin Home Services in just 6 weeks. This work environment also allowed us to successfully and confidently debut an iOS mobile application and administrative application for Dialexa client, ParkHub Prime, at the Academy of Country Music Awards.
If the development process is a racecar and culture is the racecar’s engine, then analytics is the racecar’s dashboard. The Agile development process is increasingly impacted by society's growing focus on analytics. From story points to measuring technical debt, metrics can either overwhelm or enhance a team’s focus.
A wide variety of tools exists for helping measure the health and state of a project. We use Atlassian's JIRA planning software to track and prioritize user stories and technical debt, integrating this information into our work environment by displaying each project’s metrics on flat screens around our building so that everyone can quickly see where we’re at on any particular project.
The difficulty with analytics in the software QA process is “paralysis by analysis." In our next post, we’ll dive deeper into this issue, highlighting a few key areas of focus: technical debt velocity, technical debt to code ratio, technical debt predictability, and code coverage. Overall, a successful QA process leverages metrics to sharpen a team’s focus, not distract it.
Finally, once your racecar has a fine-tuned engine and a clear dashboard, your team needs a solid suite of tools and technologies for success. Choosing the right tool and/or technology can either simplify the process or lead to indecipherable flow charts.
While this topic in itself deserves a series of posts, here are a few tools and technologies we’ve found useful for enhancing our software QA process:
- Docker – Docker allows test engineers and software engineers to have the same environments, which greatly decreases the time it takes to reproduce an issue and simplifies the deployment process. For this reason, it's no fluke that this technology is rapidly growing in the software development community. If you haven’t investigated Docker yet, check out this wonderful introduction talk by Solomon Hykes.
- QuickTime – This choice may be surprising considering most people use this technology for watching videos, however, QuickTime also allows test engineers to record their screens. Software engineers can view a bug at a later point in time and see the exact behavior the tester did at the time of the recording.
Since embracing the quality assurance process at Dialexa, project after project has seen substantial growth in development, and as time goes on, best practices organically emerge within each project. By combining a strong company culture with meaningful metrics and a solid suite of tools and project-specific best practices, the quality assurance process can accelerate your development lifecycle and lead to better release cycles.