Helping You Define Your Lifestyle

Quality Assurance in Agile Software Development

The approaches to and opinions about quality assurance in an agile software development are varied and contentious. Some teams would argue that there is no role for quality assurance in a properly run agile software development team. Others would push back and state that it’s impossible to guarantee quality without having dedicated quality assurance agile team members.

Quality assurance in agile software development can be considered a grey area. There is no definitive – do this, don’t do this, and always make sure this. Just like everything in agile, quality assurance and how it does or doesn’t happen is up to the team and company. But one thing is guaranteed – quality has to happen – it’s how this is achieved that makes the discussion about quality assurance a hot topic.

You don’t need to be told that you need people on your agile software development team who are responsible for ensuring a quality product. You don’t need to be reminded that agile tries to minimize processes and tools and focus on the individual. You don’t need to be told over and over again that done has many different meanings and applications.

There is no right or wrong way to succeed with quality assurance. It’s in the doing, adjusting, and calibrating that your team will find the right approach to quality assurance. It could be a variation of pair programming, a focus on test driven development, a complete focus on test automation, end-to-end testing, or a combination of the best of each approach.

Since we can’t tell you exactly what to do, we want to give you some ideas on how to use quality assurance within your software development team. Whether you’ve got a new team or are new to agile or are struggling with defining roles within your agile software development team, use this article as a conversation starter, jumping-off point, or blueprint of quality assurance ideas.

The Agile Manifesto and Quality Assurance

At first glance the principles of the Agile Manifesto appear to be in polar opposite of quality assurance methodologies. However, as with all things agile, the Agile Manifesto is open to interpretation.

  • Individuals and interactions over processes and tools. Team, team, team – this is the very essence of agile software development. When your quality assurance specialist are part of the agile software development team they can be involved, collaborating, and communicating – all with a focus on ensuring quality.
  • Working software over comprehensive documentation. Traditional waterfall quality assurance relies on heavily detailed test plans and documentation. In an agile team, this translates to the quality assurance experts spending their time doing testing and providing feedback, rather than writing test plans. Of course, there does need to be a way to track testing, but this can be done with one-line test scenarios, error checklists, risk-based testing, exploratory testing sessions, or user stories with integrated test markers.
  • Customer collaboration over contract negotiation. In an agile quality assurance team, the focus is 100% on the customer – both external and internal customers. Often times because the quality assurance expert knows the product better than anyone else on the team, this person becomes an advocate for the customer. Think of the quality assurance team as a customer and you’ll get some real insight into the software quality.
  • Responding to change over following a plan. Change can be hard for anyone on an agile team, but with a well-organized approach to quality assurance, change is welcomed and encouraged. After all, it’s through quality assurance that areas for improvement are identified, blockers are found, and in some cases the need for a complete redesign – all of which drive change in the product, iteration, and company.

There is a reason why the Agile Manifesto remains relevant – it is the foundation for how agile companies think, respond, communicate, and thrive. The key is in making sure that there is flexibility in how these guide posts are interpreted and applied. There is nothing absolute or rigid in the Agile Manifesto, making it an ideal springboard for thinking about how quality assurance fits into your agile software development approach.

Four Ways to Integrate Quality Assurance in Agile Software Development

Your team is asking for advice on how to improve the role of the quality assurance team. Your managers are asking why you need to hire more quality assurance staff. You want to make sure that quality is still the focus and driving principle of your entire agile software team.

Sometimes it takes knowing how to do quality assurance better – the following four points can serve as a way to get your team thinking about how quality assurance can and should be integrated.

  1. Understand agile software development. As we highlighted above, team is integral to agile success. Make sure your entire team understands agile software development – the intentions, foundation, and guiding values. Knowing this helps keep the focus on the team, communication, and quality.
  2. Remember to collaborate. In waterfall, testing and quality assurance happens at the end of the development cycle. The opposite is the case with agile software development, quality assurance can happen concurrently and from the very beginning when requirements and user stories are defined. Keep your developers and quality assurance people working together to support communication and collaboration.
  3. Flexibility to different approaches. All too often teams get stuck in doing development and testing with one prescribed methodology. Agile software development is designed to allow for more – support your quality assurance team in being involved from the beginning, in testing features before they’re code complete, getting quality assurance involved in UX reviews, and in any other area. Be flexible in how you think of the role of quality assurance in your team.
  4. Nothing is perfect. You’re not going to get it right every time. Just because the last iteration was a success, doesn’t mean this one will be. Just because pair programming helped eliminate defects on another project, doesn’t mean the same will happen for your project. Remember, to be open and ready for change, challenges, and rooms to improve. Learn to look for the root causes rather than focusing on the obvious glaring problems.

Successful agile software development is a journey. There are twist and turns, missteps, and second chances. Don’t get caught up in getting things done perfectly – people are going to react differently to change, people won’t want to try pair programming or end-to-end testing, people won’t want to collaborate freely – this is all part of figuring out how to make agile work for your team.

It is important through-out the discussions on how quality assurance fits into your agile software development team that you remember that the customer and quality must be the focus. How you get there is up to you – just make sure you’re doing it in the way that is best for your team, your customers, and your organization’s goals.

The laws of meetings: How to maximise your business efficiency

It doesn’t matter whether you’re in a large or small company; views on meetings are largely universal. They’re often overused, inefficient, and generally a waste of time.

Of course, there are plenty of exceptions, but in a nutshell, meeting dynamics across the world can be reformed.

Taking this into account, when it comes to your own company’s meetings, how should you approach matters? Should you go with the flow and “become one of them”, or should you challenge the norm and take matters into your own hands? Suffice to say, today’s post is on how to achieve the latter.

Tread carefully with recurrent meetings

The software companies gave themselves a huge pat on the back when they allowed recurrent meetings to be scheduled at the quick of a button. In truth, this is a worthwhile feature for many meetings – but not all.

After all, while you might build a case for a weekly performance meeting, many other recurrent ones aren’t perhaps needed.

Now, before you suggest that you can simply “play it by ear” and decide when you get to the meeting, this is one of the easiest mistakes to make. After all, by the time everyone has arrived and discussed the matter at hand, regardless of how briefly, valuable time has been eaten away.

The moral of the story? Carefully decide whether your recurrent meetings really need to be recurrent.

Get the agenda out there – and make it actionable

There’s nothing worse than being called into a meeting only to find that there is no structure or agenda. In these cases, it often leads to a free-for-all where people can talk about anything and everything, regardless of how important it actually is.

Of course, there will always be exceptions to the rule, but in general, an agenda is key. Not only does it give the meeting some much-needed structure, but it also allows you to assign actions to specific people. This, in turn, makes the meeting far more actionable and less of a time waster.

Stop people from going off on tangents

There’s always one person in every meeting that just can’t help themselves. They see the meeting as an opportunity to show off their knowledge, regardless of how relevant it is to the discussion.

While it’s important to allow some level of creativity, you also need to rein people in when they start to go off on tangents. After all, if everyone in the meeting starts to do this, it quickly descends into a free-for-all where nothing gets done.

Could a remote meeting do the trick?

It would be fair to say that we’re now well and truly in the age of remote meetings. Most of us are used to them now and like them due to how much time they can save us.

However, they don’t always work. This is particularly true if you want to impress new clients or perhaps need a whiteboarding session. In these instances, nothing quite beats the dynamics of a face-to-face affair. If you decide to go down this route, the obvious caveat is the knock-on effects. Whether booking that dreaded meeting room or ensuring your insurance obligations are up to scratch ahead of receiving external visitors, make sure you’re prepared for in-person meetings.

Keep it short and sweet

There’s no need to drag out meetings unnecessarily. If you can achieve everything you need to in 30 minutes, there’s no need to make it an hour-long affair.

How to Use Poker as a Mindfulness Practice

Most common mindfulness practices are fundamentally simple. Things like deep breathing, counted breaths, and short breaks and walks can help to calm us, clear our minds, and generate simultaneous states of relaxation and awareness. As much purpose as these small, simple practices have though, there are also some more involved activities that can assist with the development of greater mindfulness. And it may surprise some to learn that the game of poker is among them.

Gaming and Meditation

It is first important to understand that a link has been established between gaming and meditation in general. For a long time there were a lot of misconceptions about gaming as an active, almost violent practice meant solely for young people. But perceptions have changed over time. We now understand that people in all age groups play games of all kinds, and we further accept that a lot of these games have meditative qualities. Gamer testaments and a few scientific studies alike have indicated that the right game can have a soothing effect on one’s mental state.

This is the case with poker as well. A passion for many around the world, it’s a unique game that doesn’t necessarily fall under the umbrella of traditional “gaming” as we tend to think of the term. It is nonetheless similar with regard to mindfulness, however. Approached with intention, it can be a calming, almost meditative hobby for players.

Mental and Emotional Calm

When considering the game of poker specifically, one tends to think first of strategy, luck, and mathematics. In some sense, these are the building blocks of any given game of poker, and it will of course be important for any aspiring player to learn how they all factor in. However, what really helps successful players to win at poker is a sound mindset. The manifestation of a sound overall poker game requires that players learn to accept defeat and to avoid getting too high from a win. It demands reasonable approaches to betting and competition, clear-eyed social interaction, and the ability to operate without ego.

Add those factors up, and what success in poker really demands is mental and emotional calm. Players need skill and strategy to be sure, but above all else they need to be able to clear their minds of various pressures and shut out hasty impulses. This in and of itself is nearly a form of meditation, and certainly serves as a sort of training for mindfulness practice.

Focused Meditation

Beyond helping players to establish a general sense of mental and emotional calm, poker also leads to an ability to focus that, in its own way, is meditative. Generally, a focused meditation is described as the practice of focusing on something intently as a way of staying in the present moment and slowing down inner dialogue. It more or less means zeroing in on one subject to the exclusion of all else for the purpose of clearing one’s head — which is pretty much exactly what one has to do in poker! Even the slightest distraction can be a problem, and while the game demands a lot of attention it still makes for such narrow focus that one can clear one’s mind in a useful and soothing way.

Even given all of these benefits, poker does not comprise an entire mindfulness or meditation routine. For those interested in working on these aspects of personal wellness though, it’s always good to have one more option! Some will find this simple, popular card game to be legitimately beneficial.

If you enjoyed this article, you might also like our piece on how to boost your energy, especially useful as we enter a new year and search for fresh motivations!