A checklist for building quality into the software development process
What do you think of when you think of quality software? It may depend on who you ask. Does it mean no critical or major defects are released into production, the project is completed on time and within budget, the client is pleased with the outcome based on their requirements, the system or application does what the users expect? It may be a combination or all of these.
Quality does not just happen. It is not a one-time event but a continual evaluation of objectives, goals, processes, and procedures with corrective action when and where needed.
A checklist for quality is about setting the foundation for building quality into the software development process that begins with the leadership team, teams working well together, and effectively using tools of communication.
The Leadership team at all levels
- Instill and practice the concept that quality is everyone’s responsibility (The responsibility of the entire organization) and not the responsibility of only the development team or the QA (Quality Assurance) team or an individual on those teams.
- Foster a “One Team” culture. The success of a software project or even a company depends on the organization working together toward a common goal.
- Empower teams to collaborate and develop solutions to issues when they happen.
Working together as a Team
One of the major challenges facing software development and QA teams is they may not understand the client’s business processes well enough to develop and test the software adequately even though the software was coded and tested based on their understanding of the requirements.
- Involve QA early in the software development lifecycle, for example, at the initial project kickoff meeting. This allows QA to get prepared mentally for the new functionality or changes that are coming.
- Discuss requirements and other specification documents before finalizing them. BA, Dev, QA, and other team members meet and come prepared to discuss any questions or concerns. This will help ensure all team members have the same understanding about the requirements.
- Assess the teams’ knowledge of the functionality. Those who have knowledge of the functionality can begin sharing it through whatever avenue makes sense or is already available (for example, meetings, recorded training sessions, documents).
- Develop and store FAQs in a central repository and make it accessible to the teams. The FAQ can serve as a training tool or knowledge base about the software. There can be multiple contributors. The main idea is knowledge transfer so that if an associate is no longer with the company or moves to a different department or location, all the knowledge does not go with them.
- Demonstrate, at regular intervals to the team, including managers and client-facing team members, what has been developed and tested so far. For example, at the end of each milestone or every other sprint cycle, the development and QA teams can “demo” the changed or new functionality worked on and how it was tested. It is a learning opportunity for everyone.
Tools of Communication
Successfully implemented processes and procedures where the teams understand why and how processes are important to software quality is crucial. These tools of communication are a bridge that support teams in progressing toward the objective of driving quality into every phase.
Two issues usually surface: 1) It is time-consuming to create or follow a process and 2) creating processes and procedures requires documentation. Yes, it takes time to create processes and implement them. But when you do not have them or are not using them or no one knows about them, it can create an unfavorable situation that is costly to resolve.
- Identify and prioritize the areas of the application that are most at risk for the client.
- Develop a test strategy that includes those high-risk areas, outlines the overall approach to testing, the test phases and test levels, test infrastructure needed, testing process and defect management process. If the team is in a time-crunch, they can make sure they test those high-risk areas first.
- Develop test plan(s) with a schedule that coincides with the development schedule and incorporates identification of roles (who is responsible, who is reviewing or approving, and providing information such as a subject matter expert) regarding various tasks.
- Create test cases and link them to requirements. Requirements traceability does not speak to the quality of the test case. Ask the question, “What value does this test case bring?” If it does not provide any value, delete it, or rewrite it. The number of test cases should not be the objective; it is the quality of the test cases.
- Engage subject matter experts to review test cases especially if testers are unfamiliar with the application. Also, QA can share test cases with developers (a developer may say “I see you have this test case, but can you check this flow also?” or “Do you have any existing tests on this piece of functionality that I can use to do some testing?”). The idea is to make every team member better at what they do by helping each other and assisting where possible.
- Set up a central repository for test cases to reuse and maintain.
- Identify test cases that should be automated and develop test scripts.
- Run automation scripts in a CI (Continuous Integration) pipeline so they are automatically kicked-off for each new build.
- Run a set of regression scripts to ensure changes made did not break a given area of functionality.
- Provide management with the information they need to make informed judgements and decisions about the quality of the software before releasing the software.
Building quality into the software development process requires the guidance of the leadership team bringing team members together to focus on a common goal and applying tools of communication to drive quality. Make changes incrementally instead of all at once – choose one area that is a source of pain, implement it and monitor the process in that area. Your clients and users will be happy you did.
Incorporating quality into the development process is essential for any business looking to succeed in today’s market. At CelticQA Solutions, we understand the importance of delivering high-quality products to our clients, and we are committed to helping businesses achieve the same. Our team of experienced professionals is well-versed in industry-standard practices and the latest tools and technologies, ensuring that every project we undertake meets the highest quality standards. By partnering with CelticQA Solutions, businesses can rest assured that their products will be thoroughly tested, reliable, and ready to meet the demands of their customers. Visit our website at www.celticqa.com and send us an email to info@celticqa.com to learn more about how we can help you build quality into your development process.