On Positivity: What is positive psychology?

fullsizerender-2

In October I was fortunate enough to share my story at Testbash Manchester of how I turned my frown upside down.

The talk is now on The Dojo of the Ministry of Testing alongside all the other awesome talks. Check them out!

During my research for the talk I decided that I will explore this a bit further and apply it to testing and maybe even evolve my talk in the future.

To help myself with that I decided to do a small series based on interesting articles, books, podcasts, talks or videos I have seen while researching my talk and since.

I have also had some great and insightful feedback full of suggestions of side topics and other materials to explore.

Hopefully you will join me in this research and find it useful for yourself.

Note: If you are interested in what each talk of Testbash Manchester was about there is a great summary of the day here.

Let’s get into the series.

Introduction: Why I chose this topic

When I started testing I think I was good, because I loved pointing out problems and faults, not only in the systems I was testing but also in my everyday life. I was almost naturally wired to look for the negatives (which actually we all are, some more or some less.)

 

I lived a life all about problems, finding and ranting about the negatives in every situation.

Nevertheless in my opinion, I did ok in my career with this approach even though I did fulfill the stereotype of the moaning tester, one with a martyr complex that hated people (not great when you are meant to be a team player).

This may have been a side effect of the waterfall projects I was involved in, or just my personality at the time.

But everything changed when I joined (supposedly) agile teams and realised I needed to communicate in more ways than just with a negative connotation. I therefore decided to try and turn my frown upside down.

In this series I want to explore my uses of positive psychology techniques in my own personal journey but also link it back to testing and software teams in later posts.

Intro: What is Positive Psychology

Positive Psychology is the scientific study of human flourishing rather than the decline, and has looks for and suggests approaches to increase human functioning. Instead of asking what is wrong and dwelling on this, positive psychology looks at how we can be the best we are able to be.

“It has also been defined as the study of the strengths and virtues that enable individuals, communities and organisations to thrive. Positive Psychology is grounded in the belief that people want to lead meaningful and fulfilling lives, to cultivate what is best within them, and to enhance their experiences of love, work, and play (Positive Psychology Center, 2016).”

However this does not mean that positive psychology is not interested in how and why things may go wrong or the importance of understanding this, but it is intended to complement more traditional psychological approaches. The idea is to place an importance on using scientific methods to determine how things do go right and how we can apply this more widely.

The positive psychology movement in a way, is credited to have been started by Martin Seligman, American Psychological Association President, who in 1998, “…suggested that psychology turn toward understanding and building human strengths to complement the traditional emphasis on healing damage. Psychology had neglected the positive side of life, having spent much of the last half century primarily concerned with psychopathology. As a result, psychologists and psychiatrists can now measure with considerable precision, and effectively treat, a number of major mental illnesses. However, this progress came at a cost. Relieving life’s miseries made building the states that make life worth living less of a priority (Seligman, 2002).”

Positive psychology, in a nutshell, seeks to emphasise the origins and the effects of psychological wellness, such as positive emotions, positive experiences, positive environments, and human strengths and virtues (Lyubomirsky, 2007).

This was a short intro to Positive psychology. Let me know if this does not make sense or what else you would like to know.

I am making the series up on the fly, but I think next I will look at how other people have evolved the field and based their research on these initials proposals of positive psychology.

 

Thoughts: Accessibility testing for the web

screen-shot-2016-10-23-at-21-58-16

 

Myself and Emma recently organised an intro into accessibility testing with the awesome people at Test Partners.

They are really up for doing talks or tutorials with companies and are super friendly and knowledgeable. Do reach out to them if you have any questions on how to get started.

Why is accessibility important?

Up to 20% of the UK population has a disability but moreover research shows that 57% of the UK population benefit from accessibility features:

    • 20 million people over 50 in the UK – diminishing eye sight
    • 6 million + people with dyslexia in the UK
    • 1.5 million people with arthritis in the hand or wrist – use keyboard shortcuts over a mouse
    • Anyone can have a temporary accessibility need – like breaking an arm or hand

 

I have been aware of accessibility testing and really enjoyed the talk by Michael Larsen on the subject at the end of last year but did not look into it anymore.

This is a shame really because the internet is meant to be for everyone and therefore be inclusive but many websites are not.

Do we as testers do enough or even know enough about accessibility testing to point these things out? Are we knowledgeable enough to have these conversations on why we are excluding certain members of the population on using your website or services?

Have you ever had these conversations?

One place I worked at, I had just hired a new tester who came from an external testing services provider. He knew quite a bit about accessibility and started to raise bugs against our website for the images missing alt text for example.

On the one hand the things he was raising were just good practice to have really. But why did we not raise this before?

I never knew what to look for. I was more focused on functionality for able bodied users, maybe because I could easily be that sort of user.

The positive effect the other tester had, was that the designers and front end developers became more interested in how to make the website more accessible and started to reform from within. They started to design good patterns in accordance with the Web Content Accessibility Guidelines (WCAG) 2.0. I think this is the hard thing when it comes to accessibility, you can raise bugs and therefore awareness against accessibility features missing or keyboard navigation not working but if the designers and front end developers and maybe more importantly, the product team are not considering accessibility from the start then it is really hard to add it back in.

Why do we not learn about these things when we start our testing career? Was I just blind to it? The ISTQB certainly did not tell me about it.

If you are on the dojo there is a great resource to get you started. Maybe there will be a 30 day testing challenge for accessibility testing soon as well. I would love that.

One thing that Steve and Paul from the Test Partners showed us was this tool. You can add the bookmarklets to your browser bookmarks toolbar and then click on them to get visual feedback on how your website is built.

This helps with understanding the semantics of your page. How it is built and structured. For example headings are usually large and lists usually have bullet points. However, the semantic structure also need to be conveyed programmatically by means of tags in the source code. And these bookmarklets highlight where something has been tagged as a list or image for example.

This is a good starting point I feel, to understand what flaws your page may have for screen readers. Screen readers use the tags in your source code to tell the user what the item on the page is and does.

I would love to pair with some users of accessibility related tools at some point. On a similar note this podcast on a blind architect was incredible to find out how blind people actually use screen readers. TL;DR at a way faster setting than you think.

Have you ever paired with a blind user? Or someone who cannot use a mouse? Or maybe someone who uses a magnifyer?

 

 

Thoughts: Pair Testing…sort of

Pair Testing

At the beginning of the year, I attended TestBash in Brighton and there was a talk that just stuck with me with practical application.

This was the talk by Katrina Clokie on Pair Testing. She even outlined how she trailed it in her job.

I recently got a buddy at work and we were talking about sharing knowledge. I really wanted to try pair testing, so we did a version of it.

Step 1 – finding the right task

The team did some work on a tool that I wasn’t too familiar with and as part of our development process we created a testing mind map.

During coding the developer will use this mind map to test his code and depending on risk and sadly often time, the tester will also do some testing using the mind map.

In my pair testing example, the developer had done some testing and so had I, noting down some questions before involving my buddy. I then walked him through what we had tested so far and how the application was working.

Step 2 – What happened

Just due to different experience and knowledge he asked some other valuable questions which aided my testing to go a bit deeper and got us thinking of other testing types such as performance and database behaviour.

For me this was an invaluable experience, as I learned to think about other testing types and techniques and scenarios and I think for my buddy it was also a great experience as he got to see bits of the company’s product catalogue he wouldn’t necessarily get to see on a day to day basis.

I want to try and make this a more regular thing, and also try it before I test something and let the other tester drive.

The other side of this is, that we have a weekly test team meeting and I will try to show features or functionality that the other members may not necessarily see but may have to pick up, when I go on holiday. During this session we can also ask valuable questions of the new feature or product. Which is easier than listening to a monologue when handing something over. I think!

As testers I feel we generally want to know about the company’s products and about all the things they can do for customers and ourselves, so that is also why I envision this knowledge share to be good.

Do you do regular pair testing sessions? How do you structure them? Do you do knowledge sharing sessions with other team members?

Thoughts: Encouraging change when you are the only tester

Sometimes things come from small conversation snippets.

Some of you may know that I did a testinginthepub episode not too long ago. In there I talk a lot about what is awesome in my job now, like being valued as a team member, being invited to kick off meetings (these help us talk about what we are building and why)  teams ask me for mind mapping the testing areas.

However this was not always the case. It is important to remember that anyone can encourage change. I was not here before the changes so I will base my advice on what I did in my previous role as the first and only tester.

I did a talk on this last year at Tiny Testbash as well. The recording is available through the dojo subscription.

 

Encouraging change when you are the only tester.

In my previous job, I was introduced into a company which had a successful product that was starting to make them money but they had no testing department. When I questioned how they test their product I got the following answers:

“We don’t have any testers. Our product owners and stakeholders do the manual testing and we have a vast suite of front end automation tests.”

Nevertheless they decided to hire me, and subsequently a team of tester. How this came about and some learning along the way is what I would like to share below.

 

The problem:

So I mentioned that the company had a successful product, they had people testing it and a vast suite of automation tests. So what was the problem? The company was 6 years old at this point, had moved to their version of agile software development and the need for a fast feedback loop from the product owners and stakeholders was becoming apparent.

However these individuals generally already had a full time job and could not attend stand-ups, reviews, planning meetings, let alone test the product. More often than not the stakeholders were shown a feature at the review, and then they would find out that it may not have been what they asked for.

So the problems they were having were:

  1. Slow or no feedback from stakeholders
  2. No dedicated feature testing of new or existing features
  3. Front end automation tests that back to back would take over 60 hours, and run in parallel would run for 4 hours. (these were also fragile)
  4. No trust in the selenium tests – the tests are being fixed rather than the code.
  5. No unit tests
  6. Some business logic tests but they relied on experts being available to check them
  7. No stakeholder involvement in meetings
  8. No-one is thinking like the user

 

How did I approach this list?

Slow or no feedback from stakeholders:

Well this wasn’t so easy, but I tried to do a couple of things.

First of all it became clear very quickly that the business side of the company and the development side of the company actually did not know what each other did. To be able to be a representative of the user I had to understand who our users are and what they do.

Engage with the whole company:

So my first point of call was to spend time with the business, but not the managers, the actual people who use the systems from an admin POV and understand the user pains.

This would help manifold. I could understand where their frustrations may come from, and in turn the users’ frustrations and also see how the system is actually being used. In some places it wasn’t being used like the development team thought but there were workarounds in place to go around bugs. Now we didn’t even know those bugs existed.

This in turn led me to propose we talk and communicate with each other more. We set up specific projects for the internal bugs to be raised and had a dedicated team working on those, improving and maintaining the current systems rather than purely focusing on getting new features out. Which had 2 spokespeople from the business who ran teams of account managers or accountants so both sides of the system were represented. These then owned a backlog and could priorities their bug fixes and discuss them as well as progress in weekly meetings.

The important thing here was to engage with everyone across the business. Try to find out what everyone’s job role is, what do they love about their job, what isn’t going too well and why.

I did get pushbacks though when I asked the teams to forward issues to their managers which would then be logged in the dedicated project. I heard things such as “it has always been like that. I tried to tell someone before.”

We as a development team even offered to automate some data inputs but people are always wary when it comes to change.

Changes:

Once we started with the engagement I tried to create regular sessions on what testing is, what development is etc.

So we learned from the business but now we needed to see if they are willing to understand what we do. We set up fun little coding dojos over lunchtimes, where we used a language called Processing and tried to illustrate how the numbers and letters create systems ( or code).

Furthermore we set up a brown bag lunch on agile testing. When I first joined I was asked if I would be writing the unit tests. This got me thinking and I tried to collaborate instead. I am no coder or automation tester but I can pair on writing those tests and give feedback.

This way I tried to illustrate what I do and I decided to make my commitments public to the team. This came about because I was constantly being asked if I would write the automation tests, such as unit and selenium tests for the devs, which wasn’t the case. I stumbled upon the Tester’s commitments from James Bach around that time and wrote my own version, covering how I provide a service, etc.

http://www.satisfice.com/blog/archives/652

Alongside this I made suggestions what the business/stakeholders could focus on for their UAT, held a brown bag lunch about how a manual tester fits into an agile team working on bi-weekly sprints, and did some pairing with developers to understand how they work.

Consequences of change:

As much as this driving of change and engagement with the business had a positive effect – we were now on the road to better unit test coverage, understanding of testing, it also ended up backfiring a little bit, where I was starting to be seen as a quality gatekeeper, with there being a reliance on manual regression testing before a release, so testing became a bottleneck, especially as the team of developers grew and more streams of work were happening. More streams of work also meant context switching a lot from regression testing bug fixes, to new features, to new architecture.

Note to self: Do not let anyone call you QA, gatekeeper, etc when you first start somewhere and if that is not your role.

The effect of this was the thinking that we need a tester per product team to embed into each agile team, as well as dedicated product owners. A stakeholder or business person with a full time job was not going to cut it anymore if we wanted to get back up to speed and be focused.

So we wanted to work towards integrated a tester into each team, to be able to test small iterations of work frequently, and aim for full time product owners so we can reduce the feedback loop and having to spend time chasing stakeholders.

Hiring and building a team:

I was mainly involved with the hiring of the testers.

We have discussed the problem briefly and why hiring was a solution. We were trying to find tester who can integrate into the various teams and be the testing professional. As the product teams were quite different it was important to keep this in mind and not just hire 3 of the same type of tester.

For the hiring process I had a good idea of what I wanted, a good fit, an experienced self starter and not an automation tester but someone who would be a front end tester, with complimentary skills to myself. As I was keen for the devs to own the automation tests.

For the actual process we did phone interviews, and face to face interviews which included a live action testing problem. Just to see how someone would test and tackle a tasks and if they ask questions or not. How proactive are they? There are some very succinct and good resources on the ins and outs of hiring testers, I am mainly thinking of the ones by Rob Lambert if you want to have a further read and get some more ideas.

Once we had a team (I counted 2 testers as a team, but we grew to 4 in total within my first year), I wanted the team to be engaged and constantly learning about testing.

Time boxed Sprints give you the great advantage to try new techniques and experiment with testing techniques and I didn’t want anyone to feel boxed in, while having some consistency. Also each tester was working on a different product which would need different testing activities and tools anyway based on their context.

This meant we had bi-weekly knowledge sharing sessions, new features, testing techniques you name it.

I also set up monthly one to ones and tried to share a blog a week or whenever I saw a good one with the team. Furthermore we added testing related books to the library which had the nice side effect that developers would see the titles of the books and have a chat with you, so you could sell them more on the subject.

There was an especially a good session with jerry weinberg’s Perfect software- where a dev walked past and challenged me that perfect software doesn’t exist. Of course the full title is “perfect software and other illusions about software testing”.

Also being an organiser of the brighton tester meet up, I encouraged the team to attend events or even speak at them. One thing I learned from this was that not everyone wants to engage as much as I maybe do. At least not on the surface. And this is OK. Just keep doing your thing and don’t get downhearted. It can seem frustrating, like you are not getting through but I would just persevere.

We did manage to have developers attend the tester meet up and even speak about testing as well.

So what does my story tell you?

The main thing I did  was to communicate.

Find like minded people in your organisation and start sharing ideas, product knowledge, skills and experience and collaborate with them.

Start creating a library of resources and learning. This could be a physical library of books, or a wiki page with suggested reading/watching or regular events that you host inside and/or outside of the company.

Pair

Seek out people in different roles within your organisation and learn about their work. Try to understand what works for them and what does not.

But don’t forget people in the same role as you. Start pairing with other people in the same role in an effort to learn more about what they do, but also to help to build relationships.

Start socialising your improvement ideas with anyone who will listen. In my experience, planting the seed of an idea can make discussions about change easier later down the line. Get feedback on the ideas. Talk to people about how the future could be different. Listen to others.

I was passionate about what I do and tried to be positive in the light of change and when driving it.

Start gathering interesting trends about the work you’re doing – and then socialise these with the rest of the business.

Sharing is Caring

 

Here is my blog post about sharing at Songkick, I promised Helena I would post a month ago. Oops!

First a bit of a back story.

I joined Songkick over 6 months ago now! This seems crazy! Where does the time go?!

Time has flown by. I also cannot believe that it has been a month since Testbash Brighton. If you missed out the videos are online now here.

Anyways back to the back story:

If I think back to 6 or 7 months ago and how little I knew and how much I know now (and how much I know I don’t know) about the company and the tech, the domain, the people, job roles and responsibilities, that is an incredible amount of information to have to learn in a short time.

Luckily Songkick does a couple of awesome things that really helped with this. Here are a few ways in no particular order:

On-boarding:

This is new and still being trailed, so it is important to give feedback but the idea and general execution was good.

So what is on-boarding at Songkick? Regardless of the job role you joined as, during the first few weeks you will be invited to presentations (mostly remote ones for me), from different people of the business. These cover many different topics, some are about the domain, certain departments or processes.

This may feel like information overload, but the most important thing to remember from on-boarding sessions, I think, is the topic and who to associate with it, so you can ask more detailed questions later and know who has the information.

These sessions were quite intense, but for me they became handy very quickly, as I knew who to contact to help me figure out who uses a certain system and who we would need to help test a scenario, or even find out what a scenario may be.

Understanding how your users (internally and externally) use the systems your team builds is such valuable information for testers.

Testing specific meetings:

Being the first, second tester in the company for a long time, this was unstructured, which has its benefits and downfalls.

Luckily the approach has been taken that if you have been asked to explain something, you write it up. So there was lots of relevant documentation on how to test certain things. These were super useful, as I did not have to rely on someone to be around, but could figure things out.

We also did mind maps of areas to have in depth sessions on, so I could learn about the other details of the system that may not be obvious. I found it interesting to make a learning plan using mind maps. It has been a nice experience though and I like the informal format of those sessions.

What was important too, was to learn about the history of certain features, to be able to look for backwards compatibility if needed.

As a downfall for an unstructured approach, you could say that, we may have missed stuff in my on-boarding process initially, but then I am not worried to ask if I come across something to be given the information instead. Sometimes that is a more rewarding experience, and also the information is more likely to stick if you had to seek it out yourself.

Dev Talk:

Every Wednesday lunchtime there is a slot reserved for the technology team to do a talk. This is accessible remotely, so anyone interested can dial in.

The topics for this can be anything, new tools, discoveries, experiments, oddities of screen sizes in Android, key takeaways from conferences, etc. Our next one is actually a Docker workshop!

These are relatively informal and more often than not inspire a nice discussion. I like these because they are generally technical and it is a good intro for me to learn some terms and then research them further.

Outcomes of experiments are always fun as well, because they are generally trying to solve a deeper tech problem which is outlined first and then a possible solution is presented. This always gets me thinking about testing the new solution and also if we are missing anything in the current one.

 

Show and Tell:

Show and Tell is a special thing. This for us in the UK happens on a Friday afternoon, involves the whole company, and generally some alcoholic drink. I don’t drink so I don’t care about the alcohol but it seems to be a nice tradition.

Show and Tell is open to anyone in the business but whatever you show cannot exceed 5 minutes. The format is very informal and usually is more of a demo than a presentation. The sort of stuff we see are:

  1. Developers showing improvements to a tool, process, feature.
  2. Business development may show some interesting campaign they won or lost.
  3. Support may show case a nice, angry or funny support case.
  4. Any internal tools that improved productivity.
  5. UI and UX guys may show a new concept or something they learned from research.

What I love about this, is that someone is always showing something. And you get to see what people are passionate about and that they care about their job. It also gives you an insight into problems teams have with tools or products and may give ideas on how to solve them. The other things that is great is that this is that the whole company gets involved to show something.

 

Breakfast Code Club:

I have not been able to go to many of these yet but they are quite fun. The idea is that something to do with code can be shown off. This does not have to be work related. It can be a side project.

For example:

  1. A game
  2. Trying to solve poker algorithm
  3. A pun generator (my fave!)
  4. Solving ciphers.

Sometimes the stuff showcased is work related and this time can be used for a code review as well.

The other selling point is that it is a nice way to mingle with colleagues you may not naturally work with and also there are pastries!

P.S:

The film Breakfast Club was released 31 years ago … yep we are getting old! 🙂