The Difference Between QA & QC

What’s The Difference?

Quality Assurance and Quality Control are often used interchangeably. Many development teams have one or two members designated as “testers” or “QA/QC.” Unfortunately, this is a symptom not knowing the difference between Quality Assurance and Quality Control. Most likely, these teams have a consistent bottleneck between development and testing activities. This causes frustration with the customer because they’re only getting new functionality delivered every few months vs. after each iteration.

Quality Assurance – It’s Everyone’s Responsibility

Quality Assurance are the processes and activities that ensure something is built well. This means it’s something everyone practices. Test-driven development (TDD) is an example of “baking in quality.” Instead of creating something and then testing it, we test and build at the same time.

I like to think of quality assurance like safety in a factory. A factory may have a “safety officer” who’s in charge of the overall program, but safety is everyone’s responsibility. It’s not the job of the safety officer to make sure you’re not misusing any equipment; the safety officer is charged with teaching practices about safety and creating a culture of safe practices. This is because the safety officer can’t be everywhere at once. Instead, it’s everyone’s responsibility to enforce safety and call out violations when they see them. It’s not to punish or harass, but to save lives and save the company from liability.

The same goes for your QA people. They shouldn’t sit over the shoulder of developers like hawks, inspecting every line of code. They don’t have the bandwidth or technical knowledge to carry out that task — and it’s not effective either. Instead, QA should be inspiring a culture of quality and encouraging creativity. QA should be helping with process improvement and identifying ways to remove waste and promote quality.

They shouldn’t sit over the shoulder of developers like hawks, inspecting every line of code. They don’t have the bandwidth or technical knowledge to carry out that task — and it’s not effective either.

Quality Control – Marking The Checkbox

Where Quality Assurance relates to “how” the software was made and making it everyone’s responsibility, Quality Control is the activities related to formally documenting and inspecting the product. This is where standardized documentation can help. Use just enough documentation as it makes sense, to ensure conformity to the

inspect
Inspect and test at the same time. Photo Credit

specifications of the client. This can be baked into the quality assurance process as well. Returning to our example of test-driven development, once a component is complete, saving the results of the unit test can be used as evidence of functionality. The combination of multiple components and testing their functionality is an integration test. Again, saving these results is evidence of interoperability via integration testing. Pushing new code into the existing code set and examining how the system reacts is called regression testing and we can save these results as well. I think you’re starting to get the idea though

 

Thanks for taking the time to read. I’d love to hear your thoughts on quality management. If you’d like to have a discussion, leave a comment below or contact me. I’d love to connect on social media as well!

Photo Credit: Pixabay

Related Posts

Quality Is Anti-Fragile

The People And Process Balancing Act

Improving Agile Retrospectives With SMART Goals

 

How To Visualize Your Work And Be More Productive

Take Control Of Your Time

Do you find yourself saying, “if only there were more hours in the day?” There’s plenty of high-profile articles and advice by industry leaders like Warren Buffet advising us to, “keep control of your time.” If only it were that easy, right? I know I could do a better job of managing my time, but over the past few years I’ve gotten better at it. I started applying some of the principles I’ve learned in Agile to help me keep organized at work and in life. Here’s my advice to those out there who may be struggling to keep control of their own time.

Steps To Take Control Of Your Time

  1. Wrap Your Arms Around Your Work. The first thing I started doing was taking an inventory of all the work I was doing. It started in a simple excel sheet. It was a mess at first, but I kept adding things to it as stuff came up and I started to get a handle on what my time was being spent on.
  2. Classify and Categorize. I started taking 15 minutes during my lunch break to identify trends in the spread sheet. I started putting different things into “buckets.” I kept these buckets fairly high level. I borrowed from a book I read called The Phoenix Project. One of the lessons it teaches is that there are only four kinds of work we do in IT.
    • Business Projects – projects that generate revenue and crosses other departments.
    • Internal IT Projects – projects that your organization doesn’t typically “see” but is impacted by; like upgrading that database from SQL Server 2008 to 2016.
    • Changes To Production – operations. This can be something like pushing out new group policies to end users.
    • Unplanned Work – a time suck. We know this work well. Fire-fighting because it’s extremely urgent and important. Those familiar with Stephen R. Covey and his book, The 7 Habits of Highly Effective People know this as “living in quadrant 1.” 
  3. Find A Tool That Fits Your Needs And Get Organized. I’m a millennial, and keeping an excel spreadsheet up to date is difficult. On top of that, I prefer using tools that work on any device I choose. I use my iPhone, laptop, or desktop interchangeably throughout the day. I need a tool that works for me no matter where I am. That’s why I settled on two tools:
    • Microsoft Outlook – I use Outlook because it’s the primary calendar tool we use at work. It also gives me the ability to create separate calendars.
      ColorCodedCalendar.png
      Associate colors with projects, teams, or categories of work in Outlook

      I work full time during the day, I write, I blog, I’m helping a family member launch their business online, and I’m also taking 4 classes at the graduate level. Needless to say, I’m extremely busy. Not only do I have separate calendars for different parts of my life, I also color code things using the “categorize” option. I associate these colors with teams, projects, and my “categories of work.” Microsoft has a free app for outlook and allows you to connect multiple email accounts too. It’s perfect for someone like me who has 4 email accounts.

    • Trello – I use Trello because it allows me to organize my work at the task level. It has a simple and elegant interface on both desktop, web, and mobile. It updates immediately no matter where you connect. So I can add a task during a meeting and see it when I get back to my desk. The idea is to create “boards” for your projects and fill them with cards for your tasks. You can also add checklists, tags, and color code your cards too. My capstone group ran an entire software project on Trello and it worked like a charm. We created a drink recommendation app called B.A.R.T.E.N.D.E.R. — it’s still up but hasn’t been maintained since graduation. Trello also allows you to add due dates and to collaborate with multiple people. I set up my own personal board as a Kanban board and use it daily because it allows me to prioritize and keep my arms wrapped around my work.
  4. Start Saying, “No.” You are now armed with visual information about what your work load looks like. You’re likely juggling way too much that’s marked as “In Progress” and barely making headway on anything meaningful or important. You’re armed with empirical evidence that you’re over capacity and over committed. It’s time to start saying, “no” to things. Be respectful with your co-workers and managers and let them know that until you can start moving things to “done,” you currently don’t have the bandwidth to take on any extra work. Radical idea, I know. But did you know that your manager wants to hear these things? They may not take you seriously at first but you can easily show them. Let them know that if any new items land on your plate that is considered a high priority, they’ll need to move something else that’s “in progress” to the back burner and extend that deadline to accommodate the new task. If there’s a trend with things being swapped in and out of “in progress” and never getting “done,” then I’m willing to bet your manager needs some help staying organized themselves. That’s another conversation though. If you’re bombarded with meeting invites without an agenda, follow up and ask for one. If no one gets back to you, decline it. My philosophy is, “how can I come prepared and what will the action items be?” If I don’t get an answer, they probably didn’t need me. You can also ask if there’s anything that can be done without the meeting. A quick message on Skype or a few short email exchanges can make meetings avoidable all together.
  5. Find Ways To Streamline The Repeatable Tasks. Anything that is reoccurring can be scheduled around or automated in some way. You’ll need to research how to do this, but invest some time or find ways to cut out tasks that aren’t valuable. Eliminate the waste. If you’re a knowledge worker like me, using a programming language can help. One book I picked up a while back, Automate The Boring Stuff With Python, contains a wealth of information and ideas, and there’s an accompanying course on Udemy as well.
  6. Invest In Yourself. Many of my peers and colleagues think I’m crazy for how “busy” I am. But, I’m busy doing the things I enjoy. I’m investing time in myself and getting my Master’s degree. I write and I blog. I have a social life. I even mark of a few hours a week on my work calendar for training and development. I wouldn’t be able to do these things if I wasn’t taking control of my time and doing the things that truly matter.

Thanks for taking the time to read. I’d love to hear your thoughts on how you stay organized! If you’d like to have a discussion, leave a comment below or contact me. I’d love to connect on social media as well!

Photo Credit: Pixabay

 

 

 

 

 

Quality Is Anti-Fragile

As the adoption of Scrum continues to grow,  non-technical people begin to fill the role of Scrum Master or Product Owner. This is a great thing, as it helps the business align with Information Technology. The organization’s IT unit isn’t seen as a service any longer; instead, they become business partners. Conversations break through company silos as Developers learn the business lexicon and Line of Business personnel learn how to build better software. Processes form to create quality. Quality software is beautiful.

Quality Systems Are Anti-Fragile

So what’s quality? It’s one of those things we know we need. But, what are we talking about when we say, “bake in the quality?” There’s so many definitions that exist today, but I like to think of quality as “anti-fragile.”

What do I mean by “anti-fragile.” It’s a concept developed by Professor Nissim Nicholas Taleb in his book called Antifragile. He describes “systems,” whether those systems are processes, organizations, software, or even cultures, that can withstand the stresses of the environment which act upon them. Anti-fragile is much more than “resilient,” meaning it stays the same despite what the environment throws at it. In software development, we strive to produce more with less effort. We strive for business agility. We pivot and adjust our processes as the environment throws things at us and we are anti-fragile. We use feedback loops, like retrospectives, Six Sigma, and Continual Integration.

We give developers freedom and autonomy by giving them “what” needs to be done, they tell us the “how.” Antifragile means being adaptive. Selection of the right tools and technology for the right job — versus prescriptive.

Anti-Fragile As An Analogy

Professor Taleb uses a great analogy in his book. He asks you to picture something in your home that you’d consider “anti-fragile.” This might be something like the remote control for your television or even your sofa. Of course they can break, right? But, they’re designed to take a bit of punishment. They’re designed to conform and adapt as they are used — they are serving a function and withstanding inputs from the environment. In fact, your sofa tends to feel more comfortable over time as it conforms to your body.

Now picture something in your home that you’d consider “fragile.” This might be something like your grandmother’s china or an ancient grandfather clock. They’re usually tucked away in the safest part of the house and are rarely touched. Why? Because we’re afraid we’ll break them. They’re designed to be aesthetically pleasing — serving a function and withstanding stresses from the environment were not considered in their design. These objects are fragile and saved for “the special occasion.”

Beauty In The Anti-Fragile

So what approach should we take to software development? Should we design something that’s large and complex but liable to break whenever a code commit is pushed? When there’s a tight schedule, should we spend our effort designing something beautiful to the eye but doesn’t serve our purposes? No, we shouldn’t.

I contend that there’s beauty in software when it just works. There’s beauty in software when it serves our users and solves their problems. There’s beauty in software when it gets better over time — not when it falls apart.

Thanks for taking the time to read. I’d love to hear your thoughts on quality or anti-fragile. If you’d like to have a discussion, leave a comment below or contact me. I’d love to connect on social media as well!

Related Posts

Improving Agile Retrospectives With SMART Goals

 

Jeffrey Varkonyi: The Skinny On Blockchain

About: Jeffrey Varkonyi

Last week, in my Special Topics in the Current Technical Environment class, we had a guest lecturer named Jeff Varkonyi. Jeff is the founder and CEO of MainLink Blockchain Technologies and describes himself as a Blockchain Technology Consultant — specializing in Initial Coin Offerings (ICOs) and Supply Chain Management. He describes his mission as “to enable and promote blockchain technologies to user in the World Wide Ledger of Value.” 

Jeffrey was kind enough to share his presentation on his own blog at: Varkonyi.com

If you’d like to connect with him, he can be contacted via:

Blockchain – The Decentralized Ledger

Blockchain, as Jeff describes, offers a “paradigm shift from a centralized to a decentralized world.” We currently trust centralized banks and their people to ensure that our assets transfer from point A to point B. An example is when we make purchases at the store. We use a credit card terminal and that transaction occurs across multiple entities. The card terminal processes the transaction by contacting the merchant bank and requests authorization from the issuing bank (our bank). If our PIN is valid and we have the appropriate funds, then approval is sent back to the merchant bank and then to the card terminal and the transaction is completed with a receipt being issued. This all occurs in a few seconds, however, the actual transfer of funds may sit “pending” for a few minutes up to multiple days.

In the blockchain, the only trust that needs to occur is in a fundamental trust in math. If you “believe that 1+1=2” then you can trust blockchain. That’s because the very nature of the technology allows for greater integrity of information. The shift we will see, once blockchain and it’s applications are more widely adopted, is moving from “trusted to trust-less.” We will no longer have a need for centralized entities.

Moving Past The Lip-Service

Okay, I agree. That all sounds really cool, but how does it all actually work? To be honest with you, I’m still trying to wrap my head around the technology and I wouldn’t be doing you justice trying to explain it. Instead, I’ll leave you with two links that I found the most beneficial.

The first video features Bettina Warburg, a political scientist and blockchain researcher, explaining the technology to five different people: a child, a teen, a college student, a graduate student, and an expert.

Blockchain Expert Explains One Concept in 5 Levels of Difficulty |WIRED

 

The second video explains why blockchains are so special and describes blockchains and how they work.

How Does a Blockchain Work – Simply Explained

Blockchain Is A Platform For New Technologies And Services

I see blockchain as a platform for technology and services — in the same way that the world wide web is a platform for services like Facebook, Twitter, WordPress, etc. Blockchain is the underlying technology for cryptocurrencies like Bitcoin, Ethereum, and Litecoin. Additionally, there are so many more uses and applications for the technology. Here’s a great article I recently read that expands more: 17 Blockchain Applications That Are Transforming Society. 

Share your thoughts on Blockchain in a comment below. If you’d like to have a discussion, please contact me or connect with me on social media!

 

Photo Credit: Pixabay