alikhalid

About Ali Khalid

This author has not yet filled in any details.
So far Ali Khalid has created 278 blog entries.

Waterfall from NASA

By | September 11th, 2019|daily post|

Did you know ‘phased program’ – (waterfall SDLC) was developed by NASA

And inspecting the failed programs, this process was found to be extremely inefficient

The phased program / gated development process / waterfall model was said to be very good at trying to show an over-glorified picture of the software

The focus was on documenting rigorously and proof.

I guess that’s where the Agile manifesto said – we value working product over comprehensive documentation

Many of our teams might have moved into an ‘agile’ model, but this idea of valuing working software over documentation still has not gone away

We insist on over documenting nonsense stuff, and under-documenting where needed.

Classic example – still maintaining those long test cases, and having very less context around stories or importantly writing feature files to agree on the product’s ‘behavior’ with the team

#QsDaily #agile #testing

You are paid what you are worth

By | September 10th, 2019|daily post|

A guru of mine once said – You are paid exactly what you are worth – I thought he was joking

Looking back, I can say he was right, at least in the long run, here’s one reason why..

I was having a chat with fellow testers the other day talking about tester’s career progression.

The biggest mistake IMHO people make is to not learn how to solve problems..

In today’s world, all businesses are focused on solving their customer’s problems, especially in tech.

Folks hired in these tech firms primary role is to develop solutions to solve these problems.

A few people find this very taxing and unexciting, because they never trained themselves in problem solving.

If you are working in tech, regardless of your position in the org, your primary role is to develop solutions for the target market’s problems.

If you can’t handle that job, you have no place in tech, and let’s then stop talking about career progression (or griping about it).

If you are solving problems, and your organization is not treating you well, you can get a better opportunity and leave.

So, in the end, you are paid what you are worth..

 

Most Important KPI for Software Quality

By | September 4th, 2019|daily post|

I figured it out.. the first and most important KPI for software quality..

Can you guess?.
.
Time from ‘prioritizing a feature’ to the time it is ‘ready for deployment’ in production.

Now some might say testers don’t have control over the whole process, that is true but we should be working to develop that maturity

Or we might say time to market is not as important as quality of the product,

My answer would be – Quality is subjective, best to get feedback from people spending money determine quality

That does not mean we ship crappy stuff, some things are no brainier, seeing exceptions, basic functionality not working are obvious

The part which is subjective is, certain features we might feel are very helpful, or as the user expected and therefore give the product a higher quality,

In the end customer’s experience, they might see that as a hindrance in using the product and would have a different perspective of the level of quality here

So, anyone working towards developing software (including testers), the foremost measure should be: How quickly we can go from ideation to deployment.

Thoughts?

#QsDaily #testingmetrics #transformation

Quality Metrics Headings

By | September 1st, 2019|daily post|

After years of going around in circles, I’m going to get it done.

A set of quality metrics that help improve productivity, and I need our community to pitch in..

I’ve gone through relevant content I could find, and to be honest there is just so much on this topic, both good and bad content.

The mistake I have done and see other do is, we measure things we ‘think’ will generate value, like automation coverage, but never the actual outcome we want – time to market and product quality.

Also there are some process factors which usually get skipped, which are also responsible for hitting these goals

In lieu of these, want to classify the metrics in three categories with some “SAMPLE” metrics, not an exhaustive list, just to explain the heading better.:

  • Practices maturity
    • g. Scrum ceremonies and best practices in them
    • Three amigo sessions
    • Defining the complete user journey for each epic & feature
  • Continuous testing
    • Automation pyramid
  • Business value
    • Time taken from pull request to ready for demo
    • Trend of issues coming from support which have to be fixed

Under these three headings will be a list for each.

Thoughts?

Learning Vs Money

By | August 31st, 2019|daily post|

Tech stack, money, growth or company culture, what is most important when accepting a new position?

From this list I’d say tech stack and company culture.

Technology stack is an important factor. Working on a platform which has demand in the industry certainly is more lucrative.

Company culture – Learning better ways of working is often not given due importance.

Being exposed to better ways of working where taking an idea from concept to implementation in the shortest possible time is vital. This is the core of a DevOps culture.

Money and growth are by products IMHO,

As one matures technically and learns efficient ways of working, money and growth should follow.

Leaders and transformation

By | August 29th, 2019|daily post|

To transform your organization you need leaders.

And leaders are those who expect higher standards, from themselves (and others)!

The key in any transformation is to change behavior.

That requires leaders leading by example and demonstrating change.,

Then can the rest of the organization be expected to change.

Therefore leaders should put themselves to a much higher standard than others.

#QsDaily #transformation #agiletransformation #leadership101

Daily stand up

By | August 15th, 2019|daily post|

What are daily stand ups for? giving status..

Actually, that’s not the main purpose.

The main purpose is to actively remove any impediments the team is facing.

Secondly, for the team to actively work towards a single goal, the sprint’s goal.

A stand up ran done correctly, helps in aligning purpose and gives a boost of optimism.

In Jeff Sutherland’s point of view, it’s a ceremony to create harmony between the team, what he calls ‘transcendence’

The three activities to discuss therefore are:

  1. What did you yesterday “to help the team finish the sprint”
  2. What will you do today “to help the team finish the sprint”
  3. Any obstacles in the “teams” way

Keep stand ups inspiring, people walking out should feel ‘hell yeah, let’s do this’..

Reference “Scrum” by Jeff Sutherland

#QsDaily #scrum #motivation #agiletransformation

 

The Next Generation Tester Skill Set

By | August 10th, 2019|Management|

What would be the skill set you’d like the people driving the quality culture in an organization have? I’ve always been excited to find out what would be the skill set of a veteran tester. Who can interface with senior executives and at the same time lead and mentor quality best practices in testers. This is an attempt to classify the skills on a very high level I’d like to see.

This certainly will be subjective from person / organization to another, and I can’t imagine any person who would be an expert in all these skills. But helps to draw out the important skills.

Quality Engineering

Ways of working

  • Understanding of what a DevOps culture is
  • Designing and developing quality practices which are efficient and effective
  • Understands the practical implementation of Agile principles and implementing them in a team
  • Implementing scrum best practices
  • Experience in driving desired behavior in teams
  • Leading by example / servant leadership

KPIs, Reporting, Metrics

  • Designing quality metrics which provide indication of a build’s health
  • Developing team KPIs
  • Pitfalls in metrics and how to mitigate them
  • Expose and report risks in large product solutions

Facilitating Product Development

  1. Understanding core problem the product is solving
  2. Building and communicating product context for testers
  3. Make sure testing activities are in line with the core problem to solve
  4. Facilitate UAT and collaborate to making the process effective

Enterprise Management

  1. Socialize & collaborate with Senior Execs
  2. Voice quality related concerns
  3. Ability to make a point and get agreement from C-level executives
  4. Oral and written communication skills

Vendor management

  • Designing vendor contracts
  • Acceptance of test schedules
  • Managing offshore vendors goals and day to day activities

Testing

Test Strategy

  • Design test strategy in line with Tech stack, product / business use case & project constraints
  • Identify test coverage gaps / unexplored potential risky areas
  • How to push tests down to lower levels of tech stack
  • Strategy to leverage automation
  • Prioritize test scenarios
  • Design bug reporting flow

BDD

  • Using BDD to increase collaboration
  • Best practices for writing feature files
  • Cucumber / Serenity
  • Any other BDD tool

Exploratory Testing

  • Questioning requirements and assumptions
  • Developing testing heuristics
  • Using developed testing heuristics
  • Teaching testing heuristics
  • Usage of effective documentation methods (e.g. Mind Maps)

Test Cases

  • Writing test cases (efficient and easily maintainable)
  • Understanding of which test to automate
  • Using testing heuristics to develop test scenarios
  • Test management tools

Automation in test

Automation architecture design

  • Designing API automation frameworks
  • Designing UI automation frameworks
  • Developing test harnesses
  • Test data creation tools / programs
  • Developing synergies between automation teams
  • Automation best practices, design patterns and anti-patterns

Fundamentals of framework design

  • Develop Maintainability in framework design
  • Develop Reusability in framework design
  • Develop Scalability in framework design
  • Develop Robustness in framework design

Programming

  • Writing clean and professional code
  • Seasoned practitioner of coding patterns
  • Developed coding guidelines and principles for teams to follow
  • Usage of static analysis tools (e.g. SonarQube)
  • Skilled in any one strongly typed language (Java, C# etc.)
  • Skilled in any one loosely typed language (JavaScript, Python etc.)

Operational Acceptance Testing

  • Performance testing
  • JMeter
  • Gatling
  • Security testing
  • OWASP

API Automation

  • Hands on experience solving API automation challenges
  • In depth understanding of HTML methods
  • RestAssured
  • WebDriverIo
  • Any other API automation tools
  • JSON
  • XML

UI Automation

  • Hands on experience solving typical UI automation challenges
  • In depth understanding of how browser automation tools work
  • Open source browser automation tools / libraries (e.g. Selenium, Webdriver.io etc.)
  • Enterprise tools (e.g. UFT / TestComplete)
  • Junit, TestNG
  • Allure
  • Maven / Gradle

Mobile Automation

  • Experience solving typical mobile automation challenges
  • Understanding of how Android and iOS work and interactions during native apps automation
  • Appium
  • XCUITest

Continuous Integration

Git

  • Worked with Git using proper branching and merging strategies (e.g. BitBucket, GitHub etc..)
  • Raising and approving pull request
  • Collaborating on code reviews

Jenkins

  • Setting up Jenkins
  • Creating pipeline jobs
  • Configuring automation framework hooks in Jenkins (using maven, ant etc..)
  • Configure to generate telemetry
  • Troubleshoot jobs and familiarity with Jenkins logs
  • Configure and troubleshoot automation reports
  • Gather metrics from execution data in the pipeline

Environment management – Containers

  • How containers work
  • Docker – creating and using containers
  • Orchestration tools (e.g. Kubernetes)

Environment management – VMs

  • Setting up VMs
  • Worked with configuring OS & tools to setup test environments
  • Provisioning Network access etc.

Environment management – Cloud

  • Usage of test environment SaaS tools (e.g. Sauce Labs)
  • Setting up these tools (e.g. Sauce Labs)

Technical & Test leadership

Team Leadership

  • Leading by example / servant leadership
  • Developing an open culture where people are free to share their thoughts and fail fast
  • Developing confidence in team members
  • Leading teams under 10 people
  • Leading teams from an enterprise level
  • Provide positive and constructive feedback respectfully
  • Build positive relationships with team members
  • Planning, organizing, and follow-up skills
  • Hire and mentor Software Quality Engineers

Thought leadership

  • Sharing and learning in the testing community
  • Collaborating with other thought leaders
  • Familiar with latest trends in the software and testing community

Technical Acumen

  • How technology stack works – Presentation, business, persistence and database layers
  • Micro services architecture
  • Front end platforms architecture (e.g. Angualr, Node JS)
  • Web development fundamentals – HTML, CSS and JS
  • Back end platforms architecture (e.g. Spring boots, .Net)
  • HTTP messages
  • MVC architecture
  • SQL fundamentals and schema design

Collaborating with Architects / Senior devs

  • Ability to understand complex product design
  • Review product architecture and provide feedback related to quality and stability
  • Ensure product architecture allows for testability

I’d love to hear your thoughts and what skills you would add / edit in the list.

Autonomy and Transcendence

By | August 5th, 2019|daily post|

Do super star individuals deliver greater results or super teams?

While we all might instinctively feel the team would do better but…

Super start individuals can sometimes deliver up to 10x results

That’s why companies tend recognize individual performers more.

However, super teams outperform other teams by 100x!

The ‘economies of scale’ come from alignment of purpose and empowerment

Now how do these 100x results come about? When scrum teams have:

  1. Autonomy. All the skills and needed resources reside within the team and they have no dependencies outside
  2. Transcendence. Alignment of purpose, everyone thinks and dreams of the exact same goals.

 

Reference: Scrum (By Jeff Sutherland)

My Experience at the Test Leadership Congress

By | July 22nd, 2019|Uncategorized|

wo weeks ago I went to the Test Leadership Congress conference in NYC, absolutely loved the content and speakers. It was at a very opportune time while we were working on IT transformation and myself looking after the processes and quality expectations in our new ways of working.

With the prevalent wisdom of fully automating ‘testing’ and less need for test leadership, the conference was loaded with evidence on the contrary. In the post-agile apocalypse, the system level thinking and the pivotal role of testers to question what and why we are building what is user story says and the current build demonstrates, is all getting lost in the mushroom cloud of buzz words and time to market.

Overview

There were a lot of amazing sessions including psychological techniques to figure out your own and your organizational values, using Improv to make a point and learn look at things from a holistic perspective, playing games designed to improve thinking and test design and a board game to understand the important aspects in continuous delivery. Most of the sessions were so great, it was hard to pick which one to go to.

The organizers especially Anna and Andrea did a great job in choosing the speakers to have a great mix and schedule the activities. Typically you would see topics around specific tools or technologies, this one was more about developing leadership which I feel is need of the hour.

Key learnings

It’s going to take me a while to digest and share my thoughts around the sessions. On top of my head here were the few learnings that really stuck with me:

System Theoretic Process Analysis – STPA.

Dr John P. Thomas’s keynote on systems approach to software testing was very refreshing. Having a similar background of working with safety critical systems, I have always felt the absence of certain things in the agile world like spending time in understanding and questioning the requirements, mapping the entire system and looking at how the control flow works. STPA was a process introduced to us by John which felt like a systematic process to codify how that system thinking is supposed to be done. Will share more in a separate post.

The Protreptic dialog.

Ive always struggled with finding out values of other people to act according to their and the organization’s commonly held values. I always try to do ‘only’ the right thing which now I feel might not always be the best way. In most cases should try to be resonant of the organizational values and try to start operating from there instead.

The protreptic dialog explanation and demonstration in which Ole and Anders did a great workshop which showed a way to understand other people’s perspectives and learn more about their values.

In the dialog, you ask the other person to describe an event and have follow up questions while being genuinely curious to understand what it means for them. Try to understand:

  1. What do you sense about the person (hear in their voice, body language)
  2. How do you think they feel (deduced from what you sensed above)
  3. Ask the person to reflect on their feelings
  4. Ask why this means so much to them, why does it matter to them.

If You Really Want to Make a Difference, Be the Flexibly Robust Leader

Ole S Rasmussen talk on Personal leadership was great and this stood out for me out the whole workshop. He explained what being robust and flexible meant and how to become a ‘flexible robust’ leader.

The technique to do a self assessment and find out what your personal values are and your own limits. In a short exercise we identified what does fragility mean for us and what corner is most significant for us in the philosophical triangle (shown below). It was a good demonstration to see how to journey inwards and understand your own self.

As a leader, understanding your own self is very helpful, gives an idea of your own limitations, strengths and weaknesses. For me the exercise revealed Fragility for me meant fearful, and from the triangle ‘attention to what matters most’ was most important. stitching them together we figured I may be fearful of not focusing on the right thing and waste my energy and my team’s on doing what does not matter the most.

The game of continuous delivery

Tanya’s session on continuous delivery was nice in which she explained the guiding principles for DevOps – CALMR. Working on SAFe framework I had been exposed to these principles, but what was new was the second half of the talk, a continuous delivery board game!

Looked like monopoly of DevOps. I’ve always been very passionate about having dry runs of complex problems to do some up-front thinking instead of just trying a whole bunch of failures and then finding what works. The board game instilled the importance of certain aspects in coding CI/CD which are otherwise hard to comprehend without practical experience.

For instance, how it’s important for features to be in production instead of having a whole heap of them at different stages in the pipeline, unless it’s out there, you cannot make money!

There were many other sessions which were great, I’ll add more details on them in separate posts. I learned not only in the sessions, but outside the workshops and presentations networking with others was a great opportunity to learn. Talking with leaders in other organizations and practitioners there was so much more we learned from each other.

‘No one’ has it all figured out

The biggest take away from these talks was: “EVERYONE IS STRUGGLING WITH CONTINUOUS TESTING”. One would assume the big names and thought leaders in our industry would have everything figured out, but we are all struggling, some are quite close, others might be far behind, but it seems no one has it nailed down with all their products working in a complete DevOps culture across the enterprise

That means,

those of us looking for greener grass on the other side, try to cultivate some green grass where you are, no one has the magic formula to continuous testing.

Fun with a Capital F

The games and round table session was amazing. We all had a blast designing test strategy for products of our choosing and then demonstrating them.

There was a separate games time in which Eddie and Jordan organized a lot of different games. I got pulled into playing story cubes, we all enjoyed it very much, it was so hilarious the kind of stories we came up with.

End of last day we had an after party, lots of great conversations and new friends. Had a wonderful time.

The most inspiring event

A fellow tester and I tried to meet during my last time visit to the US. This time he was determined and I’m glad we did it. He had to travel such a long distance in one day, just to learn and improve his skill set. I shred the details of the story in this post.

Travel back

Met a lot of people I had been interacting with in the testing community on social media, Ajay being one of them. While traveling back from the conference Ajay and I happened to be on the same flight. While waiting at JFK we recorded a short video about how the conference went and what we liked about it.

Accompanying me on this trip was Head to QA at Emirates, to whom I had suggested the conference. She loved the setup too and while going back we recorded our thoughts, what we learned and some key take aways, you can watch in this video.

And enjoying the comfy Emirates A380 business class 🙂