Generations ago, craftspeople lived in the center of town, owned the building, and lived upstairs. They generally owned their own tools. Independent craft was such a part of their being that when it came time to pick up last names, they took up the last name of their craft: Cooper, Miller, Smith or Carpenter.
A few hundred years later, when it was time for young Matt Heusser to start his career, that independent spark was all but gone - at least from software development. Oh, it still existed in some of the trades; you can still find an independent plumber. But even then the American people had begun to declare war on work; as Mike Rowe put it, we relegated that plumber in our minds to a 300-pound slob "with his butt crack hanging out."
And at the time (1997), it was very hard to be an independent software contractor. To distribute software you needed to print CD's, stuff them in boxes, and market then to large retail stores. The few people who were on-line were using dialup modems and wouldn't stand to download win32 software. Building a web presence was expensive; you needed to build a server farm, rent a T1 connection, and hire an army of developers, DBAs, system administrators, analysts and testers. The few craftsmen making shareware and open source software were hobbyists - it wasn't expected to pay your rent. Why, even the methodologies popular at the time pushed you toward an assembly-line of specialists.
While you could work as an independent contractor for companies, the idea of making things for yourself just wasn't part of the scene. Huxley was right; the brave new world had come.
... time passes ...
Today it's 2009, and I again see a world where software craft is possible. Computers get faster and cheaper; now I can rent a box that will run PHP, stuck inside a colo, connected to the internet, for a hundred bucks a month. A majority of Americans have a high-speed internet connection, and the web has evolved to nearly match the functionality of traditional windows programs. Free programming tools, at higher and higher levels of abstraction, combined with methods (like XP) that focus on the generalist allow the programmer to be programmer, developer, tester (?) and system administrator at the same time.
All of a sudden, it does make sense to hire one guy (or maybe two) to write your website. Custom software development - and the craftsman - is back, baby.
And back big time. The Ruby on Rails movement alone is full of small companies like 8th Light, Obtiva, and Atomic Object that have generalists making custom software.
I believe this is a real good thing.
... but what about the tester? Why, the software tester doesn't make anything. The tester is just part of some assembly-line. That's a job that should just go away as we all become generalists, right?
Well gosh, I hope not. Sure, I've done development. I've done analysis. I've been a generalist responsible for everything. It's just that I enjoy testing. It's what I want to do.
So if we have found a space for the boutique developer, can we find a place for a boutique tester? And, if yes, what would that look like?
I believe the answer is yes and no. To compete as a craftsperson, the tester role will have to evolve. He'll have to be smarter, sharper, faster. In the boutique world, he will have to explain his services to people who are skeptical of such services and believe they can do it themselves. In the words of Harry Harrison, in his novel the stainless-steel rat:
It was easier in the old days, of course, and society had more rats when the rules were looser, just as old wooden buildings have more rats than concrete buildings. But there are rats in the building now as well. Now that society is all ferrocrete and stainless steel there are fewer gaps in the joints. It takes a very smart rat indeed to find these openings. Only a stainless steel rat can be at home in this environment.
So what would a stainless-steel (boutique) tester look like?
Imagine a development project that is outsourced to one of these boutique dev shops. The programming budget is in the area of at least $50,000, and also has an outside design firm and internal costs. The total cost of project is probably in the $100,000 range. (I'm not making this up; this is the range of budget typical for a project for the consultancy "hash rocket", another boutique rails shop.)
Now, imagine the project is halfway through. The customer begins to be concerned with functionality. This is a make-or break project, they explain. Perhaps the customer is a media outlet, like NBC. They start to talk about how it "has to work" and legal implications. The development staff, a bunch of craftspeople, start to hear about contracts and clauses.
What's does CEO of a shop with SEVEN employees do now?
Hopefully, he tells the customer that the logical thing to do is to hire a tester; someone independent, who can make an assessment of the software. Someone they can air-drop in to mitigate risk for two to five percent of the development cost. After all, if the customer is so worried, why not spend $5,000 on a $100,000 project to mitigate risk?
This means the tester isn't going to moan that they were not involved early or insist on detailed documentation - they will have to actively contribute to the project right now.
Perhaps, over time, this service becomes so valuable that the development shop plans on using a tester as part of it's risk-management strategy in general. Sure, the devs will do test-driven development and perhaps even automate story-tests for the customer. And the final layer - the piece de la resisstance - is the air-dropped tester.
With a few shops to work with, it's possible that tester could create his own boutique test consultancy. There are already a few people who do this sort of thing; stainless steel testers in the maze.
Keep in mind - testing as a profession is not going anywhere. There will be plenty of testing roles in larger organizations in the years to come. But is a testing boutique possible?
I sure hope so.
Alan Kay, the man generally credited with object-oriented programming, once said that the best way to predict the future is to invent it.
Let's go prove him right.
Schedule and Events
March 26-29, 2012, Software Test Professionals Conference, New Orleans
July, 14-15, 2012 - Test Coach Camp, San Jose, California
July, 16-18, 2012 - Conference for the Association for Software Testing (CAST 2012), San Jose, California
August 2012+ - At Liberty; available. Contact me by email: Matt.Heusser@gmail.com
Monday, June 15, 2009
Subscribe to:
Post Comments (Atom)
7 comments:
I suspect it's possible to do that sort of work full time. In my last go-round as an independent, I filled about 50% of my time doing that type of "boutique" work without really trying. I suspect I could have done it full time if I wanted to, but it would have required more work tracking down leads than I really wanted to spend.
The other 50% of my time went to contracting with some local companies close to my home. That work was a more traditional testing role. I wouldn't call it boutique, but it was low stress, close to home, and easy to get. That made it attractive.
If I were to go back to working as an independent, I think I'd still do something similar. Some portion of my time would be allocated to "boutique" projects (which I view as having higher costs - marketing so people know you're there, planning for project schedule over-runs and under-runs, etc...) while some portion would still likely go into contracting on more traditional projects (where costs are low, as is risk).
Mike:
good points, thanks. I tried to hint at that with the comment about the dev shops making using a tester part of the general strategy. In that case, I see the tester sub-contracting and getting a somewhat fixed number of hours per month.
Besides a boutique shop, sure a tester could work with other local IT shops that don't have full-time testers.
Most of the people I know doing "boutique"-like work today do an eclectic mix of traditional work, boutique work, writing, speaking and training.
Thanks again for the thoughts.
Matthew,
Really nice post! Tester role must evolve, and consequently testing boutiques should emerge.
Hi Matt,
I had a somehow longer reply urging up when reading through your article, so I put it on my blog. http://blog.shino.de/2009/06/15/testing-in-the-days-of-software-craftsmanship/
Basically I agree with you, but there are some points that strike myself, since I am not sure whether or not it's a good idea to give in the need to have a testing view following the craftsmanship movement.
I agree, and hope it becomes more feasible to be a "boutique" tester. I'm trying to do it right now, and the really hard part is finding people who believe they need it.
I like your description of how it should go down, but the problem is, the "boutique" development company usually feels they don't need the tester (after all, their work is perfect, and QA is part of the bureaucracy they struck out on their own to avoid) and the customer usually doesn't even know he has the option. In his case, the ideal would be to have inside testers, but if they're outsourcing development, they probably don't have the IT infrastructure for test as well, which usually requires more of an operations outlay than development, since you want a more production-like environment.
aarone -
One thing you can do, and I am serious, is offer to drop by and do some testing. If you find enough bugs to justify your expense, they should bill the client. If not, offer to work just for travel expenses.
The key is to make it an /offer/ where you are not arrogant, but, instead, trying to be humble and respect the awesomeness of the other party.
It is possible, after all, that you can't find enough bugs to justify your expense. This way, both parties can save face.
I understand Pradeep did something similar in India to kick-start his consulting career.
Good luck!
awesome blog...
great posting...
thank for sharing this post.
Post a Comment