Inspired by a Tweet from Jason Gorman I had to look up the definition of professionalism in my MacBook Pro. Amazingly I found the following:
the competence or skill expected of a professional : the key to quality and efficiency is professionalism.
• the practicing of an activity, esp. a sport, by professional rather than amateur players : the trend toward professionalism.
Let’s discuss this in the light of testing and Software Craftsmanship.
“The competence or skill expected of a professional” is the thing that we value. We do not value meaningless paper, but competence and skill instead. Theoretical knowledge does not equal competence in itself. Instead we can show our skill, we can apply what we learned, and we apply what we learn nearly instantly, as we seek to get to know wether our new knowledge applies, and if it does in which context, and under which circumstances.
This holds for Software Craftsmanship to the degree, that I can read a book, gather the knowledge from it, and feel the urge to directly apply those lessons in my daily work. When I read Growing object-oriented software guided by tests I immediately started to apply my new knowledge about mocks. I remember that it was between Christmas and New Year’s 2010 that I played around with some automation code, and brought it under test effectively mocking out the complete system under test – which I knew exactly how it behaves – and applying the lessons about a fluent language in my code. It felt fantastic, and engaging.
Similarly I remember when we struggled with a replacement of our test automation. At that time I read about Agile, Agile Testing, The Art of Agile Development, and The Cooperative Game. I had to apply the Batman approach to dealing with interruptions, I was urged to try the Law of Three, I motivated the usage of we. Everything I read I had to turn into some practical lesson. I am sure I pretty much annoyed my teammates at that time, since every other day I could come up with something completely new. But I had to turn my theoretical knowledge in practice in order to see where the theory may be applied, and where it maybe won’t.
So, “the key to quality and efficiency is professionalism”. Efficiency means to the thing right. Since we avoid to do things that are not worth doing – that is effectiveness – we want to the things we do in the right way. This includes building proper unit testing up. A friend of mine recently told me that he was asked by his project manager to leave out the “golden handkerchiefs”, and leave out the unit tests so that the software could be shipped earlier. Professionally he replied that unit tests are never “golden handkerchiefs” but instead meaningful in order for him and the project to know where they are. Testing is absolutely necessary.
Similarly we do the things right, when we acknowledge that the green bar of our automated unit and acceptance tests might not be sufficient, and that we have to explore our software for problems that might be hiding in there, are which might be shaded from our safety-net of automated regression checks in our continuous build process. If we skip those, we might find out later, when our customers already got upset. Exploration is an integral part of software development, just as checking.
“The practicing of an activity, esp. a sport, by professional rather than amateur players” means that we care about our craft by practicing our programming and testing skills. We hone our craft by participating in user groups, practicing in Coding or Testing Dojos, fulfilling Coding Katas, or taking on Testing challenges, maybe attending Weekend Testing sessions. We ensure that we get professional by that, but also that our craft gets more professional, and that our customer see us in a more professional light.
This is what “the trend to professionalism” is all about. I am eager to live up to that standard, practicing my skills, fulfilling my learning abilities, and continuously improving my knowledge as long as I live.
5 thoughts on “Professionalism”
I like trying new technologies as much as you do. But my problem is that I can’t always convince my team members or my boss to let me. A lot of practices end up that I’m the only one trying, everyone else consider that trying new things take more energy and simply ignore it.
Have u met something you can’t try at work, when you tried at your private time, you don’t know if you’re doing the right thing, and no one else seems to care?
Hi Jarodzz, hard question. Thus far I have not run into something, that I couldn’t at least try for one or two hours at work. In any case, I timebox my learning time there, and might consider leave such learning experiences as “my time” not putting the hours into the company sheet, though I was at work. I haven’t done this, but I might consider it an option.
Excellent post Markus and you seem to be leading by example
Many times I’ve read some good ideas but never put them into practice – you seem to be trying to do this so thanks for an extra push for me to try to do so
I always though that professionalism comes initially from profession, that means doing something for money or similar benefits.
Its good anyway to follow both meanings :)