Image credit: Scheduling Master
Quality matters. Quality separates the professional from the amateur and it takes commitment, to maintain consistent quality control in software project management over time. We didn’t publish this article to brag about how amazing our projects are (*although they are*) but rather to shed some light on our quality management system (QMS).
So don’t expect to read about our 0% error and ultimate perfection below. We’re all humans after all and we recognise that imperfection is part of who we are. But with consistent effort (and some planning) we can do a little better with every project. This guide covers how we define, commit to, maintain and control quality at Despark. We could have just highlighted a few abbreviations and ISO standards, but we prefer a more human-to-human approach.
Quality planning steps
1. How we define quality
We usually start every project with a discovery phase, where we try to understand in detail what is the problem the client is trying to solve with the project. We do some competitive analysis and we identify the main product benefits. Once we’re done, we define a roadmap which outlines the vision, direction and priorities for the project over time. At this stage we also spend some time defining all functional, non-functional and technical requirements needed for the project, or in other words: the project scope. Having all this upfront means that we can properly research the solution at hand and ensure that we are making sensible, future-proof decisions from the beginning.
We never start development unless project requirements are clearly documented with user stories and acceptance criteria. By doing so, we avoid unexpected results and ensure all stakeholders and users are satisfied with what they get in the end.
For ongoing projects, we also carry out story refinement and technical refinement meetings for each new feature. This gives the team dedicated time to discuss how to approach development and any issues they foresee before they start, so we can have proper quality control in software engineering.
2. How we commit to quality
This is probably the most important aspect of project quality management. Because even with prodigious planning, best-in-class tools and a perfect client, we won’t get far if we haven’t embraced certain values as a team. We purposefully chose to work on our internal processes to guarantee long-term improvements, rather than taking on as many clients as possible for short-term rewards. We spent quite some time devising our own Project Governance framework, based on the Project Management Institute (PMI)’s principles and good case studies. One of those principles includes the Disciplined Agile mindset for business agility, to which we strongly adhere to.
Disciplined Agile Principles
Choice is good
Organise around products/services
The Disciplined Agile mindset is also the reason why we don’t favour agile over lean or traditional development methodologies because we believe each one has its ups and downs. That’s why we follow Barry Boehm and Richard Turner’s model to assess what is the most suitable project management methodology based on the client’s culture and team, as well as the project's characteristics. This simply means we are flexible enough to work with either Scrum, Kanban, Iterative or Predictive approaches, so that we achieve the best results.
3. How we maintain quality
We know the saying ‘execution eats strategy for breakfast.’ So we took care of that too. We think user feedback is essential for the success of any project, which is why we are firm believers in developing Minimum Viable Products, or MVPs. An MVP is the most pared down version of a product that can still be released. Development is minimised and early features are prioritised. Once user feedback starts coming in, the initial product is improved and more features are added. That way, we don’t waste time and money developing unnecessary features and we maintain high software quality.
We make sure that the right mix of skills and team members is appointed to each project, and that everyone on the team knows their specific purpose and responsibilities. We strive to utilise technology to our advantage to make sure we minimise honest errors with tools like Sentry, Grafana, UpTime Robot and we stay as productive and creative as we can with Figma, Whimsical, Jira, Confluence, Basecamp and others. We also adhere to quality standards like the OWASP Secure Coding Practices, semantic versioning rules and smoke/sanity testing.
4. How we control quality
We achieve product quality at each step and in each sprint by testing early, testing often and testing throughout the entire development process. Our default Quality Assurane (QA) method is exploratory testing - as the software is tested, individual testers may learn new things. This, when combined with their experience and creativity can drive new and improved tests.
We also control the project quality by closely monitoring project results, both in terms of product results (such as deliverables), and project management results (such as cost and schedule performance). This allows us to determine whether the project is compliant with the relevant software quality standards and if not - to identify ways to eliminate causes of unsatisfactory results.
Companies that don’t learn from history are doomed to repeat it, so we do our best to review our previous choices and analyse the outcomes of our work. For ongoing projects, we usually gather every two weeks (at the end of a sprint) in retrospective meetings to discuss how we can continuously improve during the project. At the end of every project, we get together in regular debriefing meetings to take a look at the big picture and review what went well and what didn’t.
To sum up
We take our quality management system pretty seriously and we believe quality control is a team effort. The best way to facilitate the learning process is through clear and open communication from everyone on the team. And with the right mindset, proper guidelines and modern technology, we know from experience that quality management is achievable.
We hope this guide has given you a better understanding of the quality management steps we take and inspired you to think how you can improve your own (personal or professional) projects too. And if you need help with developing your digital product, reach out to us. We’re here for you if you believe in your idea and are ready to commit to success.