“Testing is slowing us down” , moving from blame to involvement and engagement

“It is Testing that is really slowing the Project down”

“Why are we finding all these bugs, so late in the Project”

“Testers must be testing edge cases to death”

I dont know of many experienced Testers who haven’t heard  some or all of the above statements before .

I heard it again yesterday and that set off a bomb of creative rage that has inspired me to write this post.

This post collates my experiences on what typically ,the root cause turns out to be (when Business/PMO folks perceive that Testing is slowing down things)  and tactics that I have advocated/employed to change the narrative

What it could actually be – 

  • That the Project estimates did not take cognizance of Testing risks when planning the Project schedule
  • That the Project plan trivialized the Integration work with 3rd party components
  • That some of the risks are actually materializing and the schedule needs to be inspected and adapted
  • That Testers and Dev Team dont work in a cross-functional structure
  • That even in a cross-functional structure , Developers dont help with Testing bottlenecks ( and rather pick the next Dev item from the backlog)
  • That your code base is reeling from tech debt
  • That you dont measure tech debt (and mistake tech debt related bugs/constraints as “slow” Testing)
  • That you dont have automated tests to detect timely regression
  • That you compromise automated testing coverage over stability
  • That you have dependencies on IT Ops to complete your Definition of Done
  • That your Developers only take ownership of the Dev part of Definition of Done
  • That Testers are not allowed to directly talk to SMEs/end-users
  • That Testers can not articulate their Test approach ( to non-tech folks in the Project)

How could this be changed ?

The narrative needs to move from “blame” to “invovlement”

Have the Testers’ skin in the game in activities that they usually are not involved in ,listen to their feedback and support them to achieve their ideas

Involve Testers (more) in –

  • Discussions on choosing a vendor
  • Discussions on choosing a solution
  • Discussions on designing the solution architecture
  • Managing Test environments
  • Testing in Production ( yeah, this is actually a useful thing depending on the context)
  • Scoping a Project schedule
  • Talking directly to end-users
  • Challenging responsibilities for Test Automation in the Team
  • Determining code standards for the Team
  • Technical design reviews

Engage with Testers (more) on –

  • Designing Tests
  • Eliciting their Test approach and coverage
  • Reviewing Automated Test code
  • Observing their Test approach
  • Eliciting how could Testing could be made better
  • Taking joint ownership of quality
  • Supporting them to uphold quality standards of the Test process

 

Using cURL commands in a REST client , without wanting to know cURL ;)

I am a newbie to cURL and dont understand cURL commands , neither have I used cURL to make REST API calls before.

Recently I encountered a situation where I had access to some cURL “code” and I had to use that perform some GET and POST operations on a REST end-point.

Due to lack of time ( and laziness) to learn cURL , I took a punt and started exploring as to whether the marvelous Postman tool had an easy way to convert cURL commands to some kind of REST API call structure .

And viola , Postman did not disappoint again , this can be achieved in a few clicks

Step 1 :: Find cURL commands that represent your code –

curl https://{subdomain}.{domain}.com/api/v2/groups.json \
  -H "Content-Type: application/json" -d '{"group": {"name": "My Group"}}'
  -v -u {email_address}:{password} -X POST

Step 2: Open Postman and click import (next to the “new” button)

Step 3: In the ensuing dialog box, choose the raw text tab and paste the cURL snippet

Step 4: Click import and there you have it , Postman has created a POST request with the desired end point & JSON payload from the cURL commands in a new tab . You can now tweak away and modify/run the call as you see fit 🙂

 

 

Python & Selenium Webdriver :: working with dropdown options inside a select tag

During my Python & Selenium self-learning I came across a blocker while trying to access and select elements of a drop down.

Problem statement – 

As a traveler, I want to select Business class for my flight on the Air NewZealand website , just to remind myself how atrociously expensive flying business class is .

Initial analysis – 

Using Chrome Dev tools, I inspected the drop down and was expecting the various drop down entries to each have a unique id/index , so that I can select “business class” directly.

But lo-behold, the drop-down element is a <select> HTML that I had not worked with before. And each option was a <option> tag nested under the <select> tag.

Approach – 

Potential ways I thought to solve this –

  1. Find the drop down using it’s id ( driver.find_element_by_id  ) and find a way to iterate through the options based on their text . Likely to be brittle if the option text changes
  2. Directly find the XPath of the option that I want and click it .

On further googling however, I found that the Selenium library offered an out of the box class to handle <select> web elements ! 🙂

https://seleniumhq.github.io/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.select.html

This class has some handy dandy methods to retrieve all the options under the select tag , select them by value or index etc.

options[source]
Returns a list of all options belonging to this select tag
select_by_index(index)[source]
Select the option at the given index. This is done by examing the “index” attribute of an element, and not merely by counting.

Args :
  • index – The option at this index will be selected

throws NoSuchElementException If there is no option with specisied index in SELECT

select_by_value(value)[source]
Select all options that have a value matching the argument. That is, when given “foo” this would select an option like:

<option value=”foo”>Bar</option>

Args :
  • value – The value to match against

throws NoSuchElementException If there is no option with specisied value in SELECT

My solution – 

Here is a simple Python script the uses the Select class and some of it’s method to solve the problem above.

An alt-technique for hiring Testers for Team fit

Which tactics do you usually employ to interview and identify great Testers ?

Alignment with Team/Company values ?

Evidence of critical thinking ? 

How did you approach <x…..testing problem> type of questions ?

Examples of application of Tooling knowledge ? 

How much value do they give to sapient skills in Testing ?

Community references ? 

Thought pieces or talks ? 

Track record of mentoring upcoming Testers ?

One technique  that I realized that I have never explicitly used , is peer review of my work during an interview. On the lines of code reviews in Developer interviews

 

Talking about my approach to choosing a Test technique or a Tool  and asking the candidate to provide feedback on the choice and my approach ?

How about bringing  my Test strategy along and getting them to review it ?  Observing their questioning and critiquing techniques ? How do they provide feedback ?  Observe their system thinking skills ?

How about white boarding my approach to risk assessment and ascertaining the level of Regression Testing required and getting them to review it ? What risks do they see with the approach ? Where could it be made better ? Will they do it differently and if yes,how do they convince me about it ? Can they be candid and respectful at the same time ?

I am hopeful that this exercise will provide me insights into the candidate’s –

  • Ability to asking probing questions and work in a Team
  • Intellectual humility and respect for a peer’s work ( especially when it might not be upto their personal standard)
  • Persuasion skills and ability to influence without authority

Have you tried peer review as an interview tool before ?

How was your experience ?

What was good and not so good about it ?

 

 

 

 

 

 

Organisational structure –> The sweet spot of decision making

Why is it so hard to get right and timely decisions in organisations ?

Because organisations are lop-sided with either ::

A) Folks who have the knowledge, insights,access,decision making authority to make those decisions but dont follow that through with a bias towards action or build credibility through execution

Or

B) Folks who really want to fix things, are opinionated on how to do it , have the passion to make change but are not enabled with access,authority,trust to the knowledge,resources and people required to take action

The fundamental duty of organisational leaders is

  • To fine tune their organisational structure in such way that as many as possible people fall structurally in C .
  • To empower,coach and shepherd people from (A-B) & (B-A) to transition to C.

 

 

 

So, you want to be a Test Tooling expert ?

“Hey, I am starting out as a Tester, how can I start learning Selenium ?”

Is the most common question newbie Grad Testers or relatively inexperienced Testers , who aspire to head down the “technical tester” “automator” path , ask. This is a question that I asked as well early on in my career with minimal context around some of the core concepts of taking an automated approach to Testing.

My endeavor as a mentor/coach now is to obviously not to combat this question directly 🙂 , and rather get my mentees/coachees to self-reflect on another set of questions so that they….

  • Focus first on understanding and practicing  their core Testing capabilities ( agnostic of  a tool set )
  • Understand the limitations, cost vs benefits of Automation
  • Do not undermine the analytical,system thinking and sapient skills that are required to deliver effective and valuable Test Automation solutions

I have put together a list of FAQs (as a mindmap below) that each Tester must reflect on and learn before heading down the path of becoming a Test Tooling/Automation expert.

My coaching philosophy is that one must first understand how and what to test before learning what to test with ?

 

P.S. – The mindmap is best viewed by saving the file locally and zooming in , thank you 🙂

Continuing the “Better Leadership” meet up

I facilitated another “Better Leadership” meet up last week , that I started a month or so ago , based on an unconference style , mob learning format ( versus a single speaker and an audience format) .

The format is simple, every attendee brings one Leadership experience/achievement to share (How did I achieve<………>?) and one Leadership challenge that they are currently facing (How can I solve <…….> ? )

And then we dot vote on topics and go around the group to enable fellow Leaders to share their stories

There is no bar of Leadership experience required to attend , from the turnout so far we have an even mix of experienced and aspiring Leaders.

Here are some of my key takeaways from the Meetup on 16th of August

The How can I solve <………….> theme ?

How can I drive accountability with a peer who consistently over promise but under deliver ?

Context –

“My cofounder are unfortunately not delivering to their potential , they are consistently letting the rest of the founding Team down by not delivering on their commitments, how do I confront them on this (ensuring that the working relationship is not impacted)”

Suggestions from the group –

— Set clear expectations on outcomes that each of you (within the founding Team) are accoutable to deliver . Forming a charter of behaviors and values through which everyone will deliver on their comittments

— Provide “impact feedback” to them i.e. 1:1 describe the impact of them not delivering on their commitments has on you as their peer e.g. it demotivates you , brings the Team down, risks the goal that your start up is supposed to achieve

— If the above does not work , dont hold back from asking them to leave the Team , as you only get one shot at making your start up successful and with such a small founding Team everyone needs to have skin in the game

How can I keep my Team motivated in times of prolonged BAU work

Context –

“Our company has gone through an extremely busy phase where we released a major product release earlier this year. Now as the product is already in market, my Team is only working on minor bug fixes and support work. This has recently started impacting the morale of the Team in terms not getting exciting pieces of work, how can I sustain the motivation of my Team during this phase”

 Suggestions from the group –

— Encourage the Team to look for side projects that could benefit the Team e.g. automating your regression tests or paying off your technical debt

— Look for opportunities for your Team members to be temporarily seconded to other functions (e.g. Customer support , Marketing , BA etc) so that they can pick up new insight,skills and develop empathy for other Teams

— The might not necessarily be a one-off phase of lull . analyze the root cause of why your feature pipeline has dried up ? Are there any areas of concern in communication between you & the Product Owners ? Do you as an organisation have a Product road map ? Are you guys following that road map ? Are your POs siloed from the Team ?

The How did I solve <………….> theme ?

How did I lead the Team to move away from Scrum

Context  & story –

Irrespective of how much grooming and prioritization we did , invariably the PO used to disrupt our sprint due to unavoidable changes in priority or customer direction. This was proving to be demotivating and disruptive to be the Team. I facilitated a move away from hard-core Scrum principles of fixed duration sprints and planning cadence, by adopting a more Kanban-esque approach wherein now –

  • We dont have fixed sprint iterations , we plan as & when needed
  • We have weekly cycles of release
  • Once the Team completes something they just pick up the next available item from the groomed and prioritized backlog (and run a planning session only if required)

Sharing our Test practice charter , the North Star for our internal community

One of the “hats” that I wear internally at my current company is the role of a Test Service Lead . The main responsibility of this role is to serve the practice and ensure that the internal Test Practice ( we are a consultancy and dont have  fixed Teams) gels together and flourishes as a community.

The first thing that I proposed we do , when I took up the role , was to have a Team charter . A constitution so to speak that guides the community on the values that we are operate on , the behaviors that we encourage and the outcomes that we are aspiring to achieve.

We had couple of our senior Agile consultants facilitate the charter forming session and I was fortunate enough to have the opportunity to scribe it into a diagram.

Please have a view and leave your thoughts, feedback and own experiences on creating/using Team charters in comments below .

Insights from a mob learning Leadership meet-up

Recently I initiated a Leadership meet up in the Christchurch (NZ) area  and we had our first meet up couple of meetings ago. This meet up bore from my frustrations around not having a peer network of folks who want to get better at Leadership . Whether we consciously acknowledge or not , Leadership/Management has a tremendous impact on our work lives. And as with any other skill set if Leadership and Organisational management is exercised well, it can have such a positive influence on our peers, us and the wider community. So why not get better at it ?

Here are my summary notes on how the first meet-up went and things that I learnt from it
Format :: Mob-Learning “unconference” style

The format of the meet up was inspired from “Unconference”/Lean-Coffee and the central theme was that every participant brings atleast 1 Leadership/Management insight to share (“How did I achieve <x>”)  and atleast 1 Leadership/Management insight that they seek (“How can I solve <y>”) .

Everyone then pooled their insights (to share and seek) onto a whiteboard

And then we went around the group with each of the participants sharing what they achieved and what they seek guidance on ?

Simple !

A lean way to share your learning and harness mob wisdom

Insights from the “How did I ….?” theme

1. How did I gain respect as a Leader of a challenging group ?

One of the participants (before joining the IT domain) were a Team Leader in the concreting industry . The culture there was one of “us and them,them i.e. the management” . Engagement and well being of the staff was a major concern as there was lot of temp staff and attrition rate was high.

What this participant did to gain his Team’s trust was

  • Be hands on …walk the talk and get their hands dirty along with their staff
  • Empathize and connect informally ( not be the Boss) and “getting into their world” to relate with their problems

The key insight for me here was that the Leadership style ( one of many) that works in this kind of scenario is the (often cliched) lead by example style , where the Leader needs to prove her worth and be one of the Team to gain their trust .

2.  How did I support an Intern to re architecture all our Automated Checks ?

This participant shared a story around moving all their Team’s automated checks from running on local hardware to AWS. They lead this initiative , formed a student project out of it and supported an Uni grad to deliver it.

Here is how they did it

  • Get key stakeholders’ feedback and buy in … go around and understand the pain the consumers of your automated checks experience  and what they would like improved ?
  • Regularly check in with junior members and beginners. If they are not asking for help , does not mean that they do not need help or sometimes they dont even realize that they need help.
3.  How did my Team trail features in a controlled manner with our end-users ?

This story was from a Tester who work with a Kiwi household name in the Electronic appliances store space.

Their Team have been successfully trailing new application features for their in-store staff and here is what they shared about the process’ success

  • Be there in person to support,receive feedback and observe the in-store staff  using the new feature
  • Be there in person to manage their expectations on the use and scope of the new feature
  • Collate feedback and get together as a Team back at base to process it and shape upcoming features/enhancements
4.  How to identify an unhealthy company culture and apply those lessons in a new environment

Another fellow leader shared her experiences from working in a culture of blame , things they learnt and how is it helping them in their current organisation

  • Self reflect continuously , to assess whether the current culture is healthy or not ?
  • Seek support from peers in bringing issues out in the open
  • Dont put up with unhealthy culture,seek change
5. How to remember that as a Leader you are not a “know it all”

The last “how did I ” micro-talk was from one of the People Leaders who were leading a Team of professionals who were really senior from then. Their key challenge leading such a Team ,was dealing with a sense of pressure to be always in a position to have all the answers for their Team ,especially for the senior members

How did they do about dealing with that pressure

  • Openly put up your hand and admit that you dont have the answer
  • Never wing it !
  • Use the simple technique of “Can I get back to you on that?” and resist the urge to have the answers there and then
  • Dont feel ashamed of your vulnerability

Insights from the “How CAN I ….?” theme

Now the meet-up moved towards discourses to discuss the problem statements that participants had pooled in .

  1. How can I add value towards Team and company culture in a company that is still it’s infancy

    The backstory here was that the participant had just won a start-up event and formed a company ( with a winning business idea) as a result of that event . However they had not worked worked with any of the co-founders. So, their query was around how could build the kind of culture that they want without knowing anything about the co-founders working style & mindset .

Here was some of the solutions that the group offered

  • Build empathy using tools like “journey lines
  • Form a charter with your co-founders on what the company’s value system would look like ? Which behaviors would be encouraged/rewarded and which ones not so much . Achieve consensus on that charter
  • The litmus test of your company culture will be how you work through disagreements with your co-founders
  • What triumphs…. values or revenue ? These precedents are crucial in building a company culture
2. How can Leadership work in the DevOps space ?

The question came from a participant whose organisation were moving all their product Teams towards adopting the DevOps model . However current situation reflected limited success in adoption of the model and Teams were not sure whether they were going in right direction or not ? They were wondering how could Leadership be exercised in such a situation

Here is the wisdom that the group shared

  • Consider it less a DevOps problems but more a generic change management problem
  • Create objectivity around what Management wants to achieve from adopting of the DevOps model …..specifically what does DevOps’ adoption, it’s success  look like to them ?
  • Ensure that the Teams are communicated the above and build metrics around those success criteria
3. How can I create a balance between giving my time to those in need in the Team versus delivering on my own commitments  

This is a classic scenario around balancing your needs(not getting disrupted/derailed from current commitments) with selflessly helping/mentoring others.

The group’s suggestions were

  • Disruption is inevitable , you need tactics to manage them . Try not to jump immediately to help them , agree on a time later in the day if the need is not immediate
  • Use hand gestures ( if you got headphones on) to respectfully indicate that you will get back to them
  • Preempt disruption , by being in their physical vicinity to indicate that you are in for a check in ( and that you have time now) and see if they want your help or have any burning questions at that point

That’s it , I found it a very valuable session for a new experimental format

Already looking forward to more !

 

Want to Lead by example ? …. be “emotionally nimble”

The best Leadership experience comes from working for average Leaders

This experience is a close runner-up to, working for great Leaders

Fortunately I have had the experience with both kinds

The single biggest trait I have experienced in great Leaders is that they “lead by example”

I know that you are rolling your eyes now because this is such a girnormous cliche in Leadership folklore

But let me please put a twirl to it …

Leading by example is NOT

  •  walking on a bed of burning charcoals to single-handedly solve technical, business and strategic problems
  • or being perceived as the goto demigod expert who holds the key to delivering complex projects through chaos

It is rather simple and non-heroic and manifests itself as

someone, who ,  in the face of adversity and in the face of their own blunders , time and time again, demonstrates “emotional nimbleness”

“Emotional nimbleness” is defined as …

  1. Constant self reflection of your public and private organisational conduct
  2. Openly admitting and articulating your shortcomings and mistakes
  3. And then sweating on the minute details and emotional nuances , to demonstrate  measurable improvement in your organisational conduct and outcomes
  4. Doing all of 1-3 above before holding others accountable.

Leaders who don’t have or cultivate or grow , emotional nimbleness

,will often, be stuck in the bog of

  • Amplifying people’s shortcomings more than achievements( putting a facade of “the hard to please boss”, often resulting in distancing non-binary personalities (personality types very common in the Tech space)).
  • Falling back on lack of time or their personality type , as an excuse not to change their mindset/behavior
  • Blaming individuals for their lack of engagement rather than reflecting on whether they themselves have the skills to intrinsically motivate others ?
  • Not setting demonstrateable goals & measures on how are they holding themselves accountable

Smart leaders , are much more nimble,they have adaptive people and emotional skills with a cornerstone in brutal self reflection. They focuses on changing themselves and others’ working environments before trying to change the people in those environments

How to stay “emotionally nimble” ?

Here are some tactics and practices that I have been religiously employing over the past few years , to keep myself emotionally nimble

  • Make ,looking after your spiritual personality ,the same priority as your physical and business personality. Join a meet up , get a life coach or self learn using an app (https://www.headspace.com/) but make sure you put in a lot of proverbial blood and sweat into improving your spiritual side.
  • Demonstrate a linkage of a change in your behavior/mind set with a self reflection and learning incident . Maintain a public company blog to articulate how & what you learnt from your mistakes or use staff meetings  to broadcast what have you have actually done to not repeat your mistake(s). What ever the medium but you must ensure that you show demonstrable actions as a result of your self reflection . “Emotional nimbleness” is just MBA talk with out demonstrable and measurable change in you.
  • Have a framework to reflect and learn  . I use a simple checklist, that I go through mentally every day
a) Today,did I learn something new ?
b) Today,did I behave in a way that was not consistent with what I claim to be ?
c) Tomorrow, which are those 2 things that I will do to not repeat b) and ensure that answer to a) is yes

Stay nimble , stay leading from the front

 

 

~~~~~~~~~~~~~~~~~~~~

Image via www.bbc.co.uk