We have a small product and eng team, and are too early to have QA. Do you recommend we have eng test their own features? Is this the job of the product? Also should we have QA as part of our sprint, or the subsequent sprint?
- I’m a strong believer in product/feature teams owning their deliverables end to end, which includes not only product definition and development, but also testing and validation.
- This is even more important in an early-stage environment, where moving quickly means engineers will need to make game-time design decisions day-in and day-out.
- Eng and PM should collaborate closely to ensure the quality of the feature being worked on.
- I recommend engineers incorporate testing as part of their development cycle (and test before they release, incl. all relevant edge cases), while PMs should not close out any of their user stories until they had a chance to validate that the desired end-user functionality has been delivered. Most of my teams actually leverage joint PM and Eng ‘dog fooding’ sessions before signing off on new feature releases.
- This setup will also help eng to develop more user empathy over time, while ensuring incentives are aligned to not write ‘untestable’ code that will be hard to maintain in the long-run.
I recommend triangulation as much as is possible. Without a QA function, engineering should be checking to make sure from a technical standpoint that what they have built works. Product and design should also be checking to make sure that the experience you have been cultivating is going to create the positive experience for your customers you intend. I prefer to have each of the functions check to make sure we are shipping quality.
The most important thing is that QA happens when development is done. And if any changes to the code occur that they are also QA'd. Which sprint it happens in is up to you And your team.
Having a QA team ranges from company to company, but I personally believe it's important for engineers to test their own features so they feel more ownership over the quality of what they've built. Often engineers test continuously while building so they can fix bugs as they arise and not be overwhelmed by how much they have to test at the end. Once they feel good about the product quality and have double checked that what they've built meets product requirements, they can organize a "bug bashing" session with the entire team, UX designer, and product manager. It's the product manager's role to make everything is working as intended before engineers ship the product.