Friday, January 30, 2009

One Stop Software Shop or Focus?

I'd like to be a one stop shop, but I think I should focus. I'm just not sure where. Testing is what looks best on my resume, development is the most fun, there seems to be the most freelance work for the web-dev stuff, and I think the most latent potential is in the systems work for development and qa teams. But how do I market it.

I'd really like to find a partner who's a really strong sysadmin type who can help with that area, where I'm weaker, but that seems to be where I end up. I still have the dream of building a distributed team of dev/qa/pm/sysadmin/graphic designer and truly be a one stop shop of specialists.

my blogs and email and projects

Okay, I should really consolidate blogs. I keep saying that.

I just posted over at http://one-shore.blogspot.com/
What do you want in a software test consultant?

For the record, this one is oneshore.blogspot.com and is my original one-shore blog. I also created another at wordpress oneshore.wordpress.com when I couldn't get into blogger. Actually, I think it was my fijiaaron blog that moved over there (used to be here ). Fijiaaron started out as my travel blog, when (not surprisingly) I was in Fiji. I also sometimes keep blogs of projects I'm working on such as qa-site and fluffy. To make matters more confusing, the qa-site blog hosted at wordpress and the fluffy blog is hosted on my own install of wordpress on it's qa-site.

Actually, it started as my web email address when I started traveling, at fast-mail.org. I still use it, Abut I also use my one-shore email as well. And keep klamathsystems.com as my main point of contact for recruiters, but they've drifted into my gmail as well. So I have 4 email addresses that I monitor.

I also have stuff over at herculeangrp.org, and projects for Harvest Requirements and ForgetMeNot.

Some discipline is in order. And some focus.

But I also like to cast my net wide as well. I do testing, and some systems work as need, and web development (both back-end stuff in Java/LAMPPPR), and the HTML/Javascript/CSS stuff) . So when people say "what do you do?" I say "computers" which I think most people translate into "graphic designer" which I'm decidedly not.

What do you want in a software test consultant?

So I'm putting out my One Shore shingle again. The goal this time is to spend six months in Seattle drumming up some consulting business. Hire me, I'm cheap!

Most of all, I need to find out what potential clients want in a consultant. My main area of expertise is in software quality assurance -- testing. In that category I specialize in automation, testing tools, and build environment set up.

My idea for a product along these lines is a QA Site, which is essentially a turn key test test lab. There are three main parts to this:

First, the collaborative tools needed for test teams -- bug tracking, requirements, test cases, task management, documentation, communication, planning and reporting. There is some bleed over here into general project management and collaboration tools. So I need to be able to work with existing products and methods. Jira, Agile, Scrum, MS Office, RUP, Quality Center, wikis, souce control, etc.

Second, the automation tools needed to be able to test more -- build scripts, continuous integration, deployments, test environment setup, servers, applications, infrastructure, test frameworks, and automation tools. There are a lot of tools in this area, and they can be customized to different needs and preferences. I don't know them all, but I know the general strategies. One of the major sources of frustration, and impediments to process improvement is setting up and maintain these tools. Not to mention which ones to use, and how to integrate them.

Third, the test environment. Where do you deploy to, How much like production is it? The closer it is, the better value your tests have. Though sometimes, you need to build mocks and stubs and frameworks to make testing faster, or get around limitations, or simulate third party systems. Virtualization is a valuable tool in the testers arsenal, and a complex enterprise enviroment can be build that lacks only in performance using tools like VMWare, Xen, and Microsoft Virtualization.

My passion is for process improvement. Better living through automation! (and virtualization!) Keep your tools and process lightweight, but use them in a way that makes the work easier, and here's the key -- more interesting. You could develop the perfect system that could be performed by drones (and you could pay drone wages), but testers find more bugs, developers deliver better features, analysts define better requirements, and customers get closer to the product they want (even though they don't know what they want -- they'll know it when they see it) when they're interested in what they're doing.

So I think the answer isn't to take away the mental challenge of testing, the opportunity for learning and experimentation, but to encourage it, by taking away the drudgery. Not by outsourcing it, but by automating it. Better tools and simpler processes are my answer. But I could be wrong. I know I don't know the best way to accomplish this, but I do know that the way to find out is by asking customers, and getting interested.