What is the QA Revolution?

software testingSo you are probably curious about the name of this website and want to learn more about it.  I have been building this website for many years.  My passion is software testing and I really enjoy learning as software testing is changing every year.  I enjoy sharing my knowledge and passion with other people.  I am hoping this website will be helpful for you and that you will learn something when you stop for a visit.

Many years ago, while I was completing my MBA, I began to learn the importance of marketing and how it could help transform the current testing organization that I was leading.  I met with the team and discussed the idea and wanted to learn more about why we were struggling and what we needed to do to become a critical pillar within the IT organization.  We talked about some of the mistakes we had made in missing some defects, but I also encouraged them that we needed to build a brand and market it outside our team.  Everybody embraced it, and we came up with a team name and called ourselves The QA Revolution.  I wanted the team to be able to hold their heads up high and be proud of the work that they had done.  We built a quality brand and literally started QA Revolution!  We created posters, created a logo, had signature lines for our email and developed websites that would help to build our brand.  This was a tremendous hit, and because of that, suddenly being on the QA team was cool, and others wanted to come join the team.  And believe it or not, they did.  I am talking developers and engineers..the cool kids wanted to join the cooler organization.

I tell the story in order to build a point, that building a brand is important.  It helps to define who you are and where you are going.  It establishes a vision with a mission.  These days people are looking for something to believe in that they can fully embrace.  Those memories will live on forever, and I am looking forward to be able to reproduce that again and again.

Why is Quality Important?

software testing qualityYears ago I worked for a CIO who believed in Quality over Delivery.  I was thrilled to hear that.  It doesn’t often happen where a CIO is focused on Quality first.  That approach and mindset went really far and everyone took quality very seriously.  If there were issues, the products were not deployed into production until they were fixed.  This was so refreshing that it made everyone work that much harder to deliver a Quality production into production on time.  I more recently worked for a company that didn’t put as much emphasis on quality, and there were production issues across all teams, mainly because the focus was on delivery first.

Agile Transformation

The Agile methodology has turned traditional software testing organizations on its head.  We have real world experience transforming multiple industries and successfully implementing best agile testing practices.  Agile done well can have a tremendous impact.  The agile product methodology is the one that I have successfully used at one of my most recent positions.  It is important to leverage best practices when using agile.  Developing software in short agile sprints with high quality production delivery can put your organization far ahead of your competition.  There are many learning opportunities in reaching agile nirvana.  It is a process and more of a marathon than a sprint.  Some challenges I have learned along the way is there are agile mistakes along the way.  It is fine to make mistakes since no organization is perfect.  The important thing is to learn from your mistakes.  From a testing perspective, things like end to end testing are often forgotten because they take too long.  The result of that is poor quality, which is something that your business organization cannot afford.

DevOps

DevOpsDevOps has blurred the lines between development and testing.  It has accelerated the pace of automated code deployments and given opportunities to integrate automated testing into the process.  DevOps is simply the processes of collaboration between development and the operations team.  While the goal is to make processes more efficient automating everything may not be the best answer.  It has to be determined within each organization.  The ultimate goal is to help your business win.  If you have built a killer DevOps team, but don’t set your business up for success, you will have missed the goal entirely.  I believe the DevOps practices are here to stay, but I have used these same techniques for many years before the word was invented.  DevOps enables testers to spend more time testing and less time waiting for test environments to be setup.  If you are looking for more information on DevOps, I have published an article that highly recommends reading The Phoenix Project and The DevOps Handbook which are both written by the DevOps Rockstar Gene Kim.  I don’t like to read but I really enjoyed these two books.  It is critical in invest time in learning DevOps.  There are DevOps challenges that will happen as you standup the organization, so you need to be realistic and allocate enough time and resources to do it properly.  Once you reach a steady state, then you can focus on continuous process improvements which will really get you to the next level and provide some significant DevOps benefits.  DevOps is really very complementary enabling software testing transformation.

Test Automation

Test Automation has gone mainstream and all software testing organizations must do it to keep up with business demand.  It requires extreme technical expertise and multiple toolsets are needed.  Test automation is my passion and I have built multiple organizations and driven automation up to 95% automated.  I believe all software testing organizations need a strong test automation practice.  I have used both Selenium and Unified Functional Test to help deliver strong value in automating pretty much everything from mainframe to mid-range to web front ends. There needs to be a strong focus on automating what makes sense, and what will provide a good return on your investment, since it can be very expensive to maintain.  Creation of an effective test automation framework is critical so that it can handle most of the workload.  The beauty of an automation framework is that you can leverage it, instead of building thousands of scripts that will have to be individually coded.

Quality Engineering

Over the years, software testing has evolved.  It has grown from some fantastic software testers to quality engineers.  Manual testing has evolved for sure over the last 20 years into something that is more sophisticated.  Sure, there will be manual testing forever, because everything does not need to be automated, but the days of having only manual testers are long gone.  In order to keep up with the demand, you have to have highly skilled individuals with development type skills.  Notice I said development type skills, not developers, because I firmly believe that a great developer may not transform into a great tester.  The key is a mindset.  Are you curious?  Do you ask a lot of questions? Are you analytical?  Do you like numbers?  Can you see typos and other errors better than anyone else?  Will you ask the difficult questions and challenge the status quo?  These are some of the questions I ask when I talk to potential candidates.  While having a stacked resume with skills, education, and certifications are truly impressive, they will not answer the questions above.  A quality engineer needs to be able to seek, probe and find those edge cases where nobody else dares to venture.  Quality Engineering has somewhat merged with DevOps, so those lines are starting to cross.  Those that can think, code, and solve complex problems are the quality engineers who will have long careers in this field.  Are you one of those?  Are you looking to build your career into a quality engineering expert?

Performance Engineering

Performance engineering is one of the most important practices that should be a mandatory component of software testing.  Unfortunately, it is one of the least followed.  Perhaps it is done in some form or fashion in a lot of companies, but it lacks consistency and is often an afterthought and only completed at the very end when everything has been completed (which rarely happens).  I am shocked at the amount of major companies that do not put enough budget and resources to get this critical task completed.  I compare performance engineering to purchasing a life insurance policy.  It isn’t necessarily required, but if it is not done, then there can literally be catastrophic issues that will occur.  Often, code is put into production without running performance tests or adequately sizing the environment, which will usually result in having to back out the code due to degraded performance issues.  Companies also are unwilling to size the lower test environments, so it is really hard to get a true test without a small environment which usually lacks a full instance of production data.

There is often a lack of understanding by those that manage the performance engineering team.  This understanding usually results in lack of emphasis and lack of direction or vision.  The performance team members will do the best they can, but they will often get discouraged and look for other places to work if they feel their work isn’t adding value.  Agile performance testing throws another element in, and the performance team literally gets lost in that methodology.  I always encourage my performance engineering team to stay engaged and test early and often so that they will have the opportunity to find issues which bring value to the team.

I have built many years of knowledge on The QA Revolution website.  I encourage you to look around and learn more.  I am constantly adding new content that is relevant to the rapidly changing technology landscape that we currently live in.