Yesterday, Jason Gorman called for action. He made his readers aware that the state of the art of software development is poor – dramatically poor. If we continue to work and educate the generations to come on software development, we are surely set up to continue to decline our craft even further than we did. Gorman explains the educational system to be tremendously poor for software programmers, that we won’t survive in a few years from now – assuming that Moore’s Law continues to apply. Read his full call to action in his blog post Time To Look Seriously At Software Developer Apprenticeships.
Some of the points look compelling to me, considering where I have come from, and where I consider to be heading towards. After dropping out of university in 2006 holding my German diploma in my hands, I got my first job shortly after my father had died of lunge cancer at the age 58. (I interviewed with my employer a few days before he died.) That said, I didn’t know a thing about software testing, never attended a software testing course – not that there was one, nor that I would have been interested in the topic at that time – back in university. Within the first two weeks I mostly sat down to read about the product they were building, intended to get some knowledge about it in my head from the large documentation.
But it simply didn’t stick. All the time I was asking myself, how this would turn out. I needed something to play around with. So, I got introduced to the shell scripts they had built to test the software part I should be working on. Within some week I was able to run some of these tests on my own. Shortly after that I was working on the project to extend the behavior. I excelled at it, pulling in work from other colleagues when I found myself finishing my assigned tasks before the assigned timeframe.
One year later, we were working for our first client. In the meantime I had taken over technical responsibility for the tests we were running for the customization that we built at that time. My boss’s boss called me into his office, and offered me to lead a group of five starting from one week from then. I had stayed one and a half year with that company at that time, and was offered a leadership position for some of their testers. I took the job.
Two months later I attended that first formal software testing training… and I found it rather boring.
That said, how do software testers start to learn about their craft? I don’t know how all of them learn about the craft of software testing, yet I know how I learned it. I read in the evenings, and at the breakfast table. I worked on my PC at home trying to get more knowledge about the area I was confronted with, trying to find out new ways to “test this”, immediately trying them out the next day. I was mentored by my superior, I mentored some of our new colleagues during the whole four and a half year that I worked with that company. I asked testers to build something, I explained underlying concepts, and helped them reach an understanding of what I consider software testing to be. I helped to make them grow as well. Having the same lack of formal training in software testing, I think this is what I would call apprenticeship, isn’t it?
I wasn’t all too sure about this up until earlier this week. Having taking a testing challenge from Matt Heusser in early 2009, I had become a black-belt tester in the Miagi-Do school, turning later into a black-belt instructor. Over the past year I have worked with three testers through a challenge, and helped two of them go beyond their current level of expertise and skill.
One of them was Michael Larsen, the TESTHEAD. By far he exceeded my own expectations. He worked through the black-box software testing course, became a mentor in this course on his own. He also worked at a local boyscout club as a boyscout leader. During the past year he has produced the weekly podcast on “This Week in Software Testing” together with Thomas Ponnet and Matt Heusser. He also first reviewed some of our draft chapters in a book on how to reduce the cost of testing. Later he turned in as a chapter author himself, taking the opportunity to contribute to something that is surely becoming meaningful.
Now, Michael just announced earlier this week, that he is going to switch jobs. He is currently running a blog series on how he prepares himself for the new job, and let’s everyone else participate in his learning. Reminds me largely on the apprenticeship blogs I saw from 8thLight apprentices, Eden apprentices, or ObjectMentor apprentices.
But the interesting thing about Michael is, that he got this new job by steadily working on his passion for testing, continuing to grow, and pushing himself to new limits. But you should definitely read his blog entry on how he got where he is.
That said, apprenticeships don’t seem to be a new idea for the software testing world. Lacking formal training, and disbelieving in the syllabus of the certification programs out there, software testers have built a high reputation based on their apprenticeship programs, and we know how to run them. We already do Software Craftsmanship to educate our peers. Let’s continue this, and intensify it even further. Maybe that could be a nice goal for 2011.
Read Michaels post earlier today and loved it.
Now that I read you blogpost here I find it spooky how similar your 4.5 year history is to mine when I worked at a company called UIQ in Sweden as testdevloper/test lead.
Since reading Michaels blogpost and yours and looking at some articles on “Code Retreats” I´m really tempted to organize a testing retreat soon (like the weekend testers but in real life) and inviting local testers that I know of.
Any thoughts on suitable testing challenges that would fit the in a simillar format as the “Code retreat”?
Really nice reading your blog-post, thanks for the inspiration :-)
Try digesting the Weekend Testing experience reports. We got loads of missions and products to try out there. In addition I would love to see Testing Retreats happening. For Testing Dojos I was planning to get a page up with Testing Challenges similar to Code Kata pages all over the web. I think we need to collect more challenges to run through.
Thanks a lot for this article!
While I love reading about how other people got into the field of software testing and how they’re improving their skills articles like these also leave a bitter aftertaste in my mouth.
Now that we have all those blogs, twitter users, testing dojos, apprentenceship programs and so on: how can we reach out to all those testers that are not aware of this source of information? Or those testers that don’t care for their own education (yet)?
At my current company we started an exchange with the QA department of another company – to talk about practical every day problems but also about general topics like self-education.
Still I’d like to do more – but I’m out of realistic ideas.
Hi Tobias,
We have to continuously keep on spreading the word about what others are doing at this point. We also need to remember that it does not make sense to have everyone change now in an instant, but to let everyone take the time they need to get used to a new status quo.
(Note: Also see my answer post on the originating blog post.)
You and many others are a good example for how apprenticeship can work.
BUT….
If you take all these people from above and hold them next to “all worldwide people calling themaselves testers” you’re still a really small %age. That actually makes you good at your job and highly sought after (So go you!!!!).
BUT….
It also highlights the issue at hand. Why are the other gazillons not like you? Pretty much for the same reason test certifications get away with what they are doing….the testers couldn’t care less. They learnt something at some point and do it day-in-day-out. They get payed well and that’s it, 35 years later they retire.
I have noticed that the percentage of testers out there that care is low….very low. Admittedly it’s growing but in comparison it’s still small. I see so many testers that wouldn’t ever have the idea to search for testing stuff on Google or read a testing blog. They don’t see what they do as a profession or a calling. It’s just something you do to get $$$$. Don’t get me wrong, some of these people are REALLY good at what they do but does that make them professionals?
Anyway if that is the state of affairs where will apprenticeship get you? Not far I presume. An apprenticeship needs someone professional and enthusiastic to teach/train (amongst other important things) but if they are few and far between the apprenticeship model will fail.
So how do you make sure the “tutors/trainers” are good? This is where our lovely colleagues from the ISTQB school are getting all excited. ;-) So you see where this is going.
I was lucky to have a lot of good people to learn from and that pointed in the right direction but I’m also -now- aware how easy it would have been for me to go a completely different (and probably worse) way. It also took me about 7 years to realise all this.
So apprenticeship is certainly somewhere on the right track but the question is, is it practical. The people discussing here would certainly be the right folk but you’d also have to see if it works when you look at the bigger picture.
Maybe a defined mentor system could be a first step. Something like AST pairs newbs with experienced folk that are prepared to be mentors (something like James Bach is already doing today). But that’s just one thought. I do see this as a really good discussion to be had in the testing world and hope it get’s taken up and discussed a bit. Who knows we could find the next big thing….
Oliver
Thanks Oliver for reminding this.
As Jason Gorman pointed out, we might seem to be few in number for the apprenticeship programs – until now. But the more we help to master their craft, the larger we get in number, and can help therefore the craft in the long run. This won’t yield fast improvements, but it doesn’t have to.
On the topic, we don’t need to get everyone into this. We need to show by example that we know how to educate ourselves, and thereby offer a real alternative to certification programs. Of course, we won’t get buy-in for 9-to-5 workers right from the start, but I don’t think that we should focus on them right now. We need to help the ones interested in learning something, and helping them to exceed their current abilities. Over time, by leading by example, we may or may not attract others, but we will surely have a great time doing so.
Beyond that in order to provide a real alternative to the addiction cycle to certification programs, we have to create a reputation for real alternatives. This is what we’re doing. We provide an alternative in order to learn more about software testing by actually doing it, and learning from our performance. This is what helps to improve ourselves in the long run, and thereby helps the craft of software testing to go beyond its shape as of today.
I get the feeling that almost ALL people who I met and who show a passion for testing have a very similar story to tell, including myself.
You start of with something else, discover that there’s something like softwaretesting, don’t really know anything about it but then you start reading about it and trying to get more information when you discover you seem to have a knack for it. If you have someone to mentor you and help you along the way, great, if not it’s time to find someone or a group of people.
Where I see the wheat separating from the chaff is where people then actually put in the time to learn and improve their skillset. I said to my wife that I don’t understand what the difficulty is in becoming a good tester or a test manager. There are dozens of books to read, hundreds of test sites to visit, thousands of articles to read, so it’s not really hard. She replied that in contrast to people working for me (I’m a Test Manager) I actually do it. I do read, I do try and understand the underlying principles, I do spend my spare time on weekend testing and the STC.
After attending the RST course I read my first book from Jerry Weinberg and then bought more. I started blogging, irregular, one thing after the other :-) . I joined Twitter and met many talented testers there. So if you want to go the extra mile and want to become good in what you’re doing there’s no one holding you back, just yourself.
Nice take, Thomas. Indeed, Robert C. Martin speaks about doing 40 hours per week within your job, but also spending 20 hours per week to improve yourself. Imagine you find yourself unemployed in a year from now, what’s going to help you find a new job rather quickly? Education is our responsibility, and while we have to spend 40 hours per week doing our best in helping our employers, we should spend at least half of that time spent on helping ourselves, thereby enabling us to help our employers tomorrow as well.
20 hours might seem long, but listening to podcasts while commuting, reading books, working on code while on the train to work, testing some software which you find on the internet,…. all these help you to go beyond your current status, and bring new value to you and your employer.