Friday, 28 March 2014

SFIA Skills framework

There is this cool skills framework which helps you in structuring your professional skills and knowledge, and our company adopted it for internal use. So when I recently decided to review what I know and where are the biggest gaps in my professional knowledge (which I love to do from time to time), I got really inspired.

It probably doesn't work for everyone, but for me it's a perfect fit. I use my imagination a lot to get the spirit of each skill level and apply it to the exact area of expertise I'm looking at (in this case - performance testing). It works kinda like Satisfice Heuristic Test Model: you don't get any instructions - instead you get directions to think about and tools to categorize and/or quantify this seemingly unquantifiable ball of knowledge, skills and experience you keep in your head.

So long story short, after I assessed myself against the next competency level for my job (that is, going from Intermediate to Senior), I got an impressive todo list for self-development. It's funny how I sometimes miss doing functional testing, but at the same time I'm glad I switched to performance testing, because it gave me so much motivation for learning. If I want to get as good in performance testing as I am in functional, I need to learn a lot, and I need to get all sorts of experience.

When I learn, I like to do it in big leaps of reading/trying, but I also like to switch between several different topics and give myself time to process new information on the background. This being said, currently my focus is Java performance. That includes both JVM tuning for performance and knowing how to write highly performant code in Java (algorithms, data structures, concurrency). I feel like when I'm finished I might be better in programming than a lot of actual Java developers. Or maybe not. Anyway, that would be awesome. I like keeping the balance between testing and developing skills shifting. And it's cool that some jobs actually require you to have it this way. E.g. Google's test engineers, who are pretty much really good highly technical testers. Or performance engineers. Or software developers developing testing frameworks.

1 comment:

  1. To answer a question from twitter, if I were to choose 6-8 SFIA skills to define a Functional tester role and differentiate between testers' competency levels, I would choose the following:
    - Testing
    - Systems design
    - Data analysis
    - Programming / Software development
    - Information analysis
    - User experience analysis
    - Technical specialism
    - Information content and authoring

    Under "Testing" I would understand activities directly related to testing. Next four skills are building blocks for understanding a system under test and surrounding environment. Programming also relates to test automation activities.
    User experience analysis goes for understanding of real-life usage scenarios and ability to account for it.
    Technical specialism is important because it supports professional growth and perpetual learning.
    And the last one is about the ability to communicate clearly with both collegues and clients, including sharing of technical knowledge, creation of product documentation and testing process support documentation.