Why we went Agile in First Place

Why we haven’t been properly Agile even though we do Scrum, Kanban, SAFe or any other framework at team or organizational level

After another gap, I am finally able to write. It has been a strange period on the personal, country, and then worlds’ level.

When they started talking about going Agile and championing the benefits of it, on a beautiful resort in 2001. They although coming from having different principals, frameworks, experiences, and concepts. They agreed on something.

The agreement is well known, we call it the Agile Manifesto. They put forward some commonality and one of the most important aspects that were agreed upon was “Responding to change over following a plan”.

What we understood and have been actively preaching are

  • Must follow a framework
  • It only applies to Team

Usually, that framework is always either Scrum or Kanban or something in between. Sometimes we are so hell-bent on following the framework we lose focus on the bigger picture. We say okay framework says this but you are not following it so you are not Agile even ignoring the fact that person or team is delivering great outcome (value to client) and responding to all kinds of changes efficiently and being market-leader.

Then going to the next step, when we talk about scaling it up, we again get stuck in trying to find a scalability framework. Altogether ignoring the cultural, organizational, people, functional and other aspects. In a 2018 publication “Agile at Scale” of “Harvard Business Review” talks about the same thing.

So, what now?

While searching for answers, I came across a concept “Disciplined Agile”. I admit I am still learning the ropes of it and will only be able to go deep once I have a proper handle on it. But on the surface, it feels more organic, natural, and less restrictive.

Disciplined agile encourages you to focus on Mindset. It encourages you to establish your own way of working, which it calls “WOW”, and to help you on the path instead of rules and regulations it shares with you guidelines that can help keep on track on the journey. It talks about experimenting, empathy towards customers, finding why we started what we started in first place, talk about leveraging all the assets on your disposal and having a system in place to help grow not become the system.

But having all said and done, there must be a framework that DA follows? Shouldn’t it be? As that is always the catch, BE AGILE they say and then They give you SCRUM or KANBAN, or LESS, or NEXUS, or Scrum at Scale.

GOOD NEWS!!!!

No DA does not want you to be FRAMEWORK driven. It champions the following mantra

True business agility comes from freedom, not frameworks. Disciplined Agile helps you learn about your options and guides you to your best next step.”

Project Management Institute

What DA does instead if provide you with a Toolkit. That tool kit has 4 important layers, Foundation, Disciplined DevOps, Value Streams, and Disciplined Agile Enterprise.

Rights to this IMAGE are reserved by Project Management Institute , its used here for education purposes only.

I will talk more about DA Toolkit in next blog.

I encourage you all to explore this, as having the freedom to deliver the best value to your client in your own way should be the actual Agility. Doesn’t it make sense after all?

Important Announcement: if you are facing any issue regarding Agility, Agile Adaption in your team or organization, Test Management, project management, and/or Application Life-cycle Management, please contact at askabk@abkhalid.com. For Test & Project Management Consultancy, please reach out at abkhalid@gmail.com.

Its “Us vs Them” Mentality

Its been couple of years, that I have had the opportunity to write & share something. I hope I am not that rusty!

It was early 2010s when we started hearing and discussing about Agile in larger audience. Especially in Pakistan. Initially people thought, it’s a ploy to remove testing resources altogether, as there is slump in markets and companies can’t afford to have “freeloaders”.

I remember, having multiple discussions with my friends and telling them, relax man, we are here to stay. But deep down, I had an itch, what is this “new way of development” where no testing, or documentation is required.

Let’s back up a little bit. In traditional software development lifecycles, there was always a Testing Face, and the biggest question was QA v QC or Verification v Validation. But we knew whatever the distribution, but we will have our time for each project, where we will be working on the application/software as per our own understanding of the requirements. We (some of us thought) were too good in business side of things, so we only knew what client wanted and devs where there to only put blocks together).

By having, ”our time” (in other words testing time or cycles) there was a clear divide, it was Testing vs development.

It was then, and presumably with more common understanding / knowledge of Agile Methodologies, with mantra being one team, one would assume that this would have gone. But no, it hasn’t we still keep fighting the battles, we still have battle lines drawn.

I have been scratching my head and trying to find out the root cause. And up till today morning, I was thinking we need more coaching for our team members. But something clicked, and that is, we the dinosaurs need to change first. We still keep fighting the “Us v Them” battles. Even though our resources have been put in same teams, but we the “Managers” are still holding the rope tight. We still keep on believing that they are our resources. We keep on encouraging “our” resources only. In reviews we try to find faults with resource from “other” team. Try to hide the issues of one’s own resources.

But we must realize, as soon as you step in to world of Agile, the resource managers are not managers, they are parents, that have to let their children decide their own path, and to quote a windows phrase “Sit Back and Relax”. Let them make mistakes and learn from them. Help them if asked, don’t go running to find the issues. The more you let them be on their own the more they will learn.

So agile coaches, please sit together and sort us out. Make sure we believe in one team concept, rather than preach only.

I have done my Manager (Traditional Manager) to Manager (Agile Coach) Journey, have you? More on this in my next blog.

Important Announcement: if you are facing any issue regarding Agile Testing, Testing Organizational changes, HP’s products for Application Life-cycle Management, Functional or Regression Testing and/or Performance Testing, please contact at abkhalid@gmail.com , I will try my best to help you out.

You can also share your opinion and if any particular topic you want me to cover I would love to do it up to best of my knowledge.

PMP Certification – Exam, Training and The Day after

PMP is one of most important certifications, one can do. It can give you a career boost. This can be a way to move upwards in terms of both career growth and higher salary.

There are many sites that gives information on how you can pass a PMP Exam. All the books that contains explanation of the PMP Guide Book, also contains information and guides on how to pass the exam.

These sites are almost all right and will help you get the certification. According to them here is what you need to do

  • Commit to a time schedule and milestones
  • User multiple different resources
  • Join a study group
  • Study the process groups, how and where they fit in
  • Simulate the testing environment
  • Use of reference guides
  • Study PMBOK thrice in a go
  • Use of flash cards
  • Approach leading up to last few days and then final stretch

When you do you will be able to get the certification. But what these sites and other PMP teachers/trainers doesn’t tell you, is getting certification is not be all thing.

Learning on how to pass the exam is one thing, learning to exercise the knowledge that you should attain by doing all above is else. What I want to describe below is what you need to do in order to not only get certified, but retain enough knowledge that will help you propel further in your career.

Here are the things I believe a resource should exercise

  • If you are appearing for PMP exam that means you would have spent some time working in project management role/environment. Now what you need to do is relate your experience to what PMBOK tells you.
  • Identify the real life scenarios from your experience list them down. Read a chapter and try to apply that new perspective on your experience and list next to them what you should have done.
  • Whatever you do in your daily life, try to classify them on the basis of PMI guidelines. For example if you are starting a new task in your home, look at it and ask a question, if this was a project, for which I was project manager, would I have started with information that I have?
  • Keep questioning the reference books, why the author is saying this, why not that. Once you start questioning, you will start collecting the reason behind a particular idea and retain that knowledge longer.

Please note I am not saying that you do not need to listen to advice on passing the exams, they are very very important, what I am saying is don’t do PMP certification just to get certified. Do it to improve your skill set, knowledge and become a better project manager.

Agile and Organization changes at Structure Level! A Traditional Testing Lead’s Perspective

In recent years it has been observed that more and more organizations are moving in to a very agile environment. Now people have discussed thoroughly about new roles for each resource across the board, where traditional Developers, project manager, testers, analysts, system engineers, support staff and others go. One role that has not been discussed and has been taken as peripheral, infect in some cases as obsolete is of Traditional Testing Department Lead.

As with the case with every other Testing Lead, I recently have had to face the same dilemma (infect I am still going through this transition), where I have been able cope better is due to my role of Test Management Consultant (for HP Testing Software) in my previous organization.

Traditionally it has been observed that the role of Test Lead is of a watch dog, which is going to give final authorization weather to move forward with application or not, weather the application is as of Client’s requirements, weather all needs, wants and desires of client are in place. This role was evolved from a person to identify the screen look-n-feel and document writer about 15 years back. And had its most influence over the last 5 ~ 10 years.

But now as Agile is starting to be implemented more and more, these above responsibilities are delegated to “testing” resources part of a feature/scrum team and scrum masters.

So what now for Test Lead, as he cannot delegate work, he cannot authorize or sign off an application release.  Most organizations have taken the easy way out to get rid of these high earners and giving all their powers to scrum / feature lead.

My new organization has bucked the trend, to laugh out loud, they hired me.

In first few days I was of the point of view that somebody somewhere in higher-ups screwed up big time and sanctioned the hiring of a Testing lead, completely forgetting the change in organization that was going to take place.

But no, they have hired a “Traditional Testing Lead” to do very “Un-traditional” job. My new role specifies that I don’t indulge on go live or resource tasks but to be a consultant with in an organization for testers.

To help them out, to train them, to enhance their capabilities to be able to work as individuals in scrums and be the “watch dogs” within the scope of their respective scrum or feature based team.

So here I am re-inventing myself. I will try to share more information over next couple of months.

Important Announcement: if you are facing any issue regarding Agile Testing, Testing Organizational changes, HP’s products for Application Life-cycle Management, Functional or Regression Testing and/or Performance Testing, please contact at abkhalid@gmail.com , I will try my best to help you out.

You can also share your opinion and if any particular topic you want me to cover I would love to do it up to best of my knowledge.

Why only Load Runner is not enough for Performance Testing

I just got email form my manger (she is a bit blog enthusiast) that I have stopped writing blogs. The thing is at Kualitatem, we encourage our resources to learn and/or share their experiences. I played the usual busy card, but later on her persuasion, here I am.

This topic I have been having in my mind for more than 6 months. And I not so called ‘performance tester’ was not able to get the proper answer from anybody. Question was, “Is load runner able to give you the actual picture on its own”. Well simple answer is, “If you are a guru, then it gives you fair idea of the whole situation, but no, it’s not possible”. (To let you on a secret, my ego was hurt by couple of load runner projects, which made me sit up and take notice, before that I always thought load testing as alien for myself, a test management resource.)

I will try to explain below why only load runner is not enough for performance testing, below.

Load runner is a tool for performance monitoring. It is able to tell you, what is application’s behavior, at what time under how much load. But it will not be able to tell you what was the origin of the problem and was this problem even problem, or mare hardware configuration issues. (Even load runner itself says that it is able to only provide 10% of actual diagnostics information.)

After exploring more, and doing some experiments, I came to know load runner is not been able to tell me

  • What was the condition of hardware before and after load test
  • What was the area causing the problem
  • What other application area are suffering due to this load
  • Is there a way to improve (clue, people say that you only need to look at page load to understand performance of application, well my answer now is HELL NO!)

So we have identified the main problems, we need to find the solution for it.

My research led me to the solution, and believe you me, the solutions was always there, we (or Ancient Performance Testers) only chose to let us believe we only have Load Runner, so coming back to solution, it’s simple, we need to use more tools for Performance Testing together with different scopes in order to establish better results from performance testing, and HP is already providing them by name of HP Diagnostics and HP Site Scope.

Well Site scope is tool basically monitor the all aspects of IT infrastructure (in words of HP, “Remote monitoring of IT infrastructure and applications without installing any software on target systems”) while name of diagnostics clearly indicates its function, which is to deliver to you actual problem at any given point of time, and helps you in targeting them (in words of HP, “Remote monitoring of IT infrastructure and applications without installing any software on target systems”).

Now again the problem is to know at which point of time, what is right information. So consider following chart

  • Site scope will give you information of hardware and software for 24/7, when script is being executed, before it and after it.
  • Diagnostics will tell you what is the current state of application, which function is using how much resources, and what has left stones unturned
  • Loadrunner will execute the scenario, and tell you what is the situation form user point of view during that scenario

So by combining the results from all three, we will be able to identify the situation before the issue was occurred, what occurred that issue, and from where we can resolve it.

In my next blogs, I will try to help you set up performance testing environment, as I believe is the correct way.

Topics are

  1. HP Diagnostics introduction
  2. Setting up Diagnostics Commander Server
  3. Setting up Diagnostics Mediator Server
  4. Setting up Diagnostics Java Probe with Tomcat
  5. Setting up Diagnostics Java Probe with JBOSS
  6. Setting up Diagnostics .NEt Probe
  7. HP Sitescope Introduction
  8. Setting up Sitescope monitors
  9. Configuration of HP Diagnostics and HP Site Scope with HP Load Runner

Minimum Required DB Rights (MS SQL SERVER) for HP ALM Environment (HP QC/ALM)

It’s been about 3 months now since my last blog; I have been busy on couple of projects with very high severity.

The issue I am going to discuss now has very significance which most people ignore for low to medium security level organizations. But of organizations where Security polices take higher preference, we need to identify the minimum database rights required for set up and work properly.

In normal implementations, what I and most of my colleagues around the world end up doing is, creating a user with sysadmin (Members of the sysadmin fixed server role can perform any activity in the server: Courtesy MSDN) rights, and doing the all the implementation using that.

One of my company’s clients, obviously with very high security policies in place, wanted me to setup environment where I sit with their Database administrator in order to identify the minimum requirement of rights.

I had told him my hunch is that you need to give dbcreator and ability to change / set up new users.

So we started our research, here are some important points form it

During installation

A user (HP QC/ALM DB Admin) with rights DB Creator (dbcreator) and Security Admin (securityadmin) is required for HP ALM

Reasons:
  1. A new database is to be created for Site Administration purposes
  2. A USER is to be created for record manipulation and connections establishing

One observation was made, for the created project, the user HP ALM DB Admin, was also given DB Owner permission for the database (Site Administration).

During ALM Usage

Now when ALM was being used, we observed that we need two types of permission sets

Normal Processes

The user TD (with maximum privileges of ddladmin) created during installation is enough for normal processes which include

  1. Record Manipulation
  2. Reports generation
  3. Setting up and working with Configurations (Site Admin)
  4. Working with Project Customization, where no Database Field is to be change

Administration Process

The user HP ALM DB Admin with elevated privileges, which being dbownerdbcreator and securityadmin is required for administrative processes

  1. Project Management (Creating, deleting, restore, export, import, verify, maintain & Upgrade)
  2. Working with Project Customization, where Database Fields are going to be changed (new fields, change field types, delete fields)
  3. Domains
  4. DB SERVES

Precaution

But we need to understand one thing, the user HP ALM DB Admin needs to not be shared with everybody, as this user according to MSDN should be treated with similar care as of sysadmin (Members of the securityadmin fixed server role manage logins and their properties. They can GRANT, DENY, and REVOKE server-level permissions. They can also GRANT, DENY, and REVOKE database-level permissions if they have access to a database. Additionally, they can reset passwords for SQL Server logins.)

Syntax Error on Accessing Script Generator & Customization Links (HP QC/ALM)

After writing first blog on issues I faced in last 3 to 4 years of HP ALM/QC Customization and Implementation, I have enjoyed it revisiting old experiences and ‘Heated’ discussions we have had.

The issue I am going to discuss now had such significant effects, that at one stage I was looking at my first failure implementation.

The issue is that, sometimes when user accesses the Script Generator from Project Administration Workflow, the ALM/QC throws an exception and displays message that there is syntax error at particular line.

This error looks something like following, (Line number keeps on changing for different servers)

“Syntax error in line # 106: ‘}’ or ‘,’ expected, but “””” found”

The issue can be generated, when user is working with workflow editor module, and somehow corrupt the script editor itself. The issue is related to BugScript CSET_CATEGORY into the COMMON_SETTINGS table.

CSET_NAME ScriptWizardFieldCust_Add ScriptWizardFieldCust_Details and ScriptWizardListCust

For the affected project it looks like this:

You can see that the CSET_VALUE is {.

Now there are two ways to fix this issue, by one you need to remove the BugScript from the COMMON_SETTINGS Table or update and replace the value of it.

Steps for first solution

  1. Create a backup of the db before trying the fix.
  2. In Site Administrator-> site projects project’s tables open COMMON_SETTINGS table and run the following query:

DELETE FROM COMMON_SETTINGS where CSET_CATEGORY = ‘BugScript’

  1. Connect to the project and Clicking on the links will be working now.

Steps for Second Solution

  1. Create a backup of the db before trying the fix.
  2. In Site Administrator-> site projects project’s tables open COMMON_SETTINGS table and run the following query:

UPDATE COMMON_SETTINGS set CSET_VALUE = ” where CSET_CATEGORY = ‘BugScript’

  1. Connect to the project and Clicking on the links will be working now.

 

Important Announcement: if you are facing any issue regarding HP Quality Center/ HP Application Lifecycle Management, please contact at abkhalid@gmail.com, I will try my best to help you out.

Document Generator Crashing Issues (HP QC/ALM)

After I wrote my last blog on the SSL with JBoss Environment for HP QC/ALM, my colleague asked me “Ahmad, you have also worked on many other issues over the course of last 3 to 4 years, why not try to document them all.”

So here, I am taking up his advice!

There is a common issue that keeps creeping up, and most of the time, reply form HP Support is that they cannot do anything about it. And to reveal a secret, that they really can’t. The issue is when we try to generate document through document generator or try to export an excel report from dashboard, ALM window crashing by displaying the following error.

“”Error: Unable to cast COM object of type ‘Microsoft.Office.Interop.Word.ApplicationClass’ to interface type ‘Microsoft.Office.Interop.Word._Application’. This operation failed because the QueryInterface call on the COM component for the interface with IID ‘{00020970-0000-0000-C000-000000000046}’ failed due to the following error: Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)). Line: mscorlib”

The issue is generated, if there are registry entries of multiple versions of Microsoft office applications. For example, if user upgraded MS Office from 2007 to 2010 version, there are more than enough chances that some of the registries instances of older version of Office or not removed. Another example can be that if user installed MS Office 2010 and then installed MS Project 2007 or MS Project 2013.

Now when the ALM/QC tries to access Office COM files, its directed to multiple locations, thus it crashes.

Issue can be tackled by following the steps given below (Disclaimer: only personal that have experience with registry should follow following steps, rest should ask their administrators to do it for themselves.)

  1. Copy the CLSID (long data within the curly brackets) form the error window. [in above error window its 00020970-0000-0000-C000-000000000046]
  2. Access Windows registry
    1. Open Run window (‘Window key’ + ‘R’)
    2. Type in ‘regedit’ and press enter
  3. Take backup of the Registry
  4. Place your focus at top of the registry tree (at computer) and now search the copied CLSID in the registry
  5. You will reach a location in HKEY_CLASSES_ROOT whose title is the key which was searched. There are going to be three sub entries “ProxyStubCLSID”, “ProxyStubCLSID32” & “TypeLib”.
  6. Copy the default key of “TypeLib”. [Actually whenever a call to a particular assembly object is generated, Assembly opens up this key to find the exact location of application]
  7. Place your focus at top of the registry tree (at computer) again and now search this newly copied key in the registry
  8. After you find the key, expand it, you will/might find multiple versions of “TypeLib”; please remove all those that do not contain a valid path (verify the path) in their default entry
    1. Inorder to do it, expand each version, then expand 0 key, then copy the path in the default entry, open that path and verify that if tlb file exists on the path

Preventive Measure that might help: Whenever you uninstall a MS Office application, please do restart your machine, before installing any other one.

Important Announcement: if you are facing any issue regarding HP Quality Center/ HP Application Lifecycle Management, please contact at abkhalid@gmail.com, I will try my best to help you out.

SSL Support with JBOSS (HP QC/ALM)

During one of our recent implementation of HP Quality Center, one representative form the client, kept asking me, Ahmad! “Why you are not implementing SSL. We have very secure data and you are exposing it”.

Defiantly I had to look at it as refusing clients, is not part of our company policy.

After working at it for couple of days, I came up with following solution (Got little help from HP Support Community).

Step 1: Install HP Quality Center with JBoss Application Server

Step 2: In command prompt navigate to Java Bin Directory (JRE – Install it if not present).

Default Directory can be <installation drive>\Program Files\HP\<Either of Quality Center or Application Life Cycle Management>\Java\JRE\bin\

Step 3: Run following commands (in place of “Server Name” write the actual server name)

  1. set SERVER_DN=”CN=<server name>, OU=X, O=Y, L=Z, S=XY, C=YZ”
  2. set CLIENT_DN=”CN=Client, OU=X, O=Y, L=Z, S=XY, C=YZ”
  3. set KSDEFAULTS=-storepass changeit
  4. set KEYINFO=-keyalg RSA
  5. keytool -genkey -alias tomcat -dname %SERVER_DN% %KSDEFAULTS% -keystore server.keystore %KEYINFO% -keypass changeit
  6. keytool -export -alias tomcat -file temp_server.cer %KSDEFAULTS% -keystore server.keystore
  7. keytool -import -v -trustcacerts -alias tomcat -file temp_server.cer %KSDEFAULTS% -keystore client.keystore.trust -keypass changeit

Step 4: Take copy of CACERTS file present in the <installation drive>\Program Files\HP\<Either of Quality Center or Application Life Cycle Management>\Java\JRE\lib\security and place it somewhere safe

Step 5: Copy the file created by Step 3 Part 7 (CLIENT.KEYSTORE.TRUST) and to the <installation drive>\Program Files\HP\<Either of Quality Center or Application Life Cycle Management>\Java\JRE\lib\security folder and rename it CACERTS

Step 6: Copy the file created by Step 3 Part 6 (SERVER.KEYSTORE) to an accessible location like C:\CAs\server.keystore

Step 7: Back up “server.xml” present in <installation Drive>\ Program Files\HP\<Either of Quality Center or Application Life Cycle Management>\jboss\jboss.zip\server\default\deploy\jbossweb.sar

Step 8: Edit the “server.xml” by Uncommenting the SSL connector, edit the keystoreFile and keystorePass options:

<!– SSL/TLS Connector configuration using the admin devl guide keystore –> <Connector port=”8443″ address=”${jboss.bind.address}” maxThreads=”100″ minSpareThreads=”5″ maxSpareThreads=”15″ scheme=”https” secure=”true” clientAuth=”false” keystoreFile=”C:\CAs\server.keystore” keystorePass=”changeit” sslProtocol=”TLS” />

Comment out the HTTP connector in the server.xml file.

Step 9:             Save the server.xml file, and restart JBoss and QC (e.g., via the Windows Services)

Step 10: Connect to QC using port 8443. Forexample (https://server name:8443/qcbin)

Myth about Skill Required for Automation Testing

My recent observations of SQA Skills trends in Pakistan in particular and overall in general, a tendency to ask people being hired for SQA positions if they have experience, skills or knowledge of automation testing. And the answer the hiring body is mostly looking for is if they have working experience of QTP, Selenium or RFT. If the resource says he is willing to learn QTP or Selenium or RFT or whatever, people start teaching them these tools.

I have started to get frustrated by this behavior, but I also have been part of this culture too, so one can say I am frustrated with myself too.

Let me quote you one story, one person who was well-versed in Software Quality Management in early 2000(s); advertised following skills for QA resources, job advertised with title Software Developer and Quality Analyst

  • ISO
  • Development (language not important)
  • Automata
  • Data Communication and Networks
  • Regular Expressions
  • Critical Eye

After experience of hiring, getting hired, working and managing teams, I have to come to know that above ad was the best possible ad for what we mostly look from our resource.

But are we looking at right skill set, or even we know what we want, I think about 90% people don’t know the answer, and the ones that know hide behind ‘budget limitation’ wall.

I believe we should look at software automation testing as we look at software development; we need at least two type of personal, one Software Automation Script Developer and one Software Automation Engineer.

Software Automation Engineer: Should be the person, who has application domain knowledge, has written the Test Cases for the application, and understands which area of application needs regression. He also understands and can write suede code, which a developer can understand and convert to physical code. He is also going to prepare the data for the data driven automation testing.

Software Automation Script Developer: Should be the person who gets the test case in document form, and just creates the script as defined. He has the understanding of the scripting language.

I will try to explain in detail what these roles should comprehend in grand scheme of Software Quality Assurance in the long run.

Translate »