Tuesday, February 24, 2009

Local User Groups

QA
  • http://www.qasig.org
  • http://www.sasqaq.org
Programming
  • JAVA - http://www.seajug.org/
  • PHP - http://php.meetup.com/49/ Seattle PHP Meetup Group
  • Ruby - http://www.zenspider.com/Languages/Ruby/Seattle/index.html
  • Python - http://www.seapig.org/
  • Perl - http://seattleperl.org/
  • Flex - http://www.seaflexug.org/
Linux
  • Eastside Linux Group -- http://redhat.meetup.com/395/
  • http://www.gslug.org/
  • http://www.bellevuelinux.org/
  • http://www.seaslug.org/Resources/gslug/view
Business
  • WTIA -- http://washingtontechnology.org
  • Northwest Entrepreneurs Network -- http://nwen.org
  • Seattle Tech Startups -- http://www.seattletechstartups.com/doku.php

Other
  • Joomla - http://joomlaseattle.org/
  • Drupal - http://groups.drupal.org/seattle
  • Drupal - http://seadug.org/
  • Agile - http://www.meetup.com/Eastside-Agile-Software-Development-Practices-Meetup/

Tasks and Index Cards

The other day after a dental appointment, I went to the drug store to fill a prescription for my upcoming periodontal work (which was done yesterday.) While waiting for the pharmacist, I wandered over into the office supplies section and started looking for colored post-its and index cards. Post-its are prohibitively expensive, so I ended up going to Office Depot and getting some index cards and boxes. I'm going agile!

Now it comes down to deciding on my organization, which besides picking which color is which task type, also means picking what the task types are.

I was having trouble coming up with categories without either over-simplifying or coming up with way more than reasonable. Reasonable being aribitrarily determined by me to be 5, (the number of colors I have, plus white).

I came up with a long list that included:
  1. Development
  2. System Administration
  3. Testing
  4. Graphic Design
  5. Copy writing
  6. Writing (articles & book & blog posts)
  7. Documentation
  8. Planning
  9. Administration (business)
  10. Networking (interpersonal)
  11. Research (business)
  12. Research (technical)
Obviously too many for the cards. And also too many to keep straight. There's no way I could wear twelve (or more) hats. I can think of a couple more including sales, and customer work (if I ever make any sales.)

Finally I realized that if there is complexity, it is probably for lack of clarity, and I hit on the what I hope is a correct division. There's obviously the technical vs. non technical, but I chose the project specific versus business in general.

So for a project there are 5 types of tasks:
  1. Planning
  2. Development (Programming)
  3. QA (Testing)
  4. Engineering (System Administration)
  5. Design (Graphical and Copy)
Planning includes both development planning (technical design) and general project planning (including requirements). Project managment would fall outside of development, potentially under administrative. Design is kindof a sloppy category which includes creative (artistic) non technical tasks.

I then decided that there are 6 categories of business tasks, of which project development is but one:
  1. Administrative & Financial (running the business)
  2. Looking for customers (marketing, advertizing, sales)
  3. Building credibility (writing, networking, helping others)
  4. Improving skills (training, research, experimentation)
  5. Project Development (building my projects or projects for clients)
  6. Operations (maintaining development and production systems -- which could include business systems as well as customer systems)
I'll put each project in it's own box, and have a task board for the current iteration. I've decided on the following colors for project specific tasks:
  1. Yellow == Planning
  2. Blue == Development (Programming)
  3. Green == QA (Testing)
  4. Orange == Engineering (System Administration)
  5. Pink == Design (Graphical and Copy)
I also wanted to include Requirements on index cards. Since white is the cheapest, and requirements will change alot, I'll use white for requirements.

White graph cards will represent design, both for graphical and for technical design.

Perhaps a bit too complex still, but hopefully workable.

The trick will be to break out of project developemtn specific and include overall business tasks in each (or most) days. I'll create a business box, and treat it as a project with different task types:

  1. White == Administrative & Financial
  2. Yellow == Marketing & Sales
  3. Pink == Writing & Building credibility
  4. Green == Training & Research
  5. Blue == Project Development
  6. Orange == Operations
These will be different because I'll need to timebox them, or rather allocate time to each category, because they all need to be done. I need to make sure I don't spend all day in development, or research, or administrative, or networking -- at least not every day.

I think this will give me a good categorization, and be suited well towards division of labor if growth happens.

Saturday, February 14, 2009

Another way to break it down

I always get stuck on the way I frame things. Here's another, simpler way of organizing my work:

Development
Writing
Networking/Marketing
Research
Administrative


I should do some of each each week.

Infrastructure is a big time sucker, but it's what I provide above and beyond QA. And things like maintaining the site and email, etc. (infrastructure work) take time but could be classified as administrative work.

Presence, Product, Promotion, Partnering

I came up with a cute list of the categories of business effort. They all happen to start with P, so here they are.

The 4 P's:
  1. Presence
  2. Products
  3. Promotion
  4. Partnering
I define 'presence' as the way you are perceived. Think "presentation". Things like logo, business cards, marketing copy, etc., and especially website are included, but also reputation. My resume would also be included here. But also the perception of my expertise and goodwill towards me. So, publishing articles, tutorials, and eventually a book will count towards building my presence. Participating in user groups and answering questions in forums will also help.

My 'products' are not only the QA-Site, but my expertise as a tester and test environment setup. I haven't really worked on either this week, and need to make sure I take time to both work on my physical products, and increase my skills. Infrastructure work could be included in products, which I have done some of.

'Promotion' includes networking and advertising, which I spent a lot of time on this week, but could also include things like blog posts and other writings. (I'm not sure which category these would go into -- it probably depends on the specific content, as well as how I choose to put it out there. In one sense, forums and user groups are networking, so involvement in either could be considered promotion.

'Partnering' is the best form of networking, and this would include open source projects I'm working on such as Harvest, as well as business ventures.

I need to balance my efforts more. This week I spent too much time researching networking (perhaps unavoidable at this early stage) and not enough on my product. My website could use better copy, and I need to create better content, and add to it regularly. And I've been neglecting my partnership opportunities.

Things outside this list would include business management, and things like market research (which I guess could fall under promotion.) And of course, client work, which is what I'm doing all this other stuff to hope to help achieve.

Friday, February 13, 2009

Blog sorting out

I've decided that this blog will be my brainstorming/evaluation blog, for instance like my last post. It'll be strictly for personal use, though I don't see a need to hide it. I might let the oneshore.blogspot.com whither, or make it a draft site for articles. The oneshore.wordpress.com blog will be for official announcements, and Fijiaaron.wordpress.com will be my personal discussion blog. fijiaaron.blogspot.com will probably die, or maybe become my travel blog, if it ever gets used again.

I'll try to move the official blog under the one-shore domain.

First Week Evaluation

It's Friday of my first full week of independence. I said in another post that this would be a germiniation week. I'm a little disappointed in my performance, but I've accomplished the major tasks I set out for myself:

  • reading -- books and articles about how to be a consultant, start a business, etc.
I think I have a pretty good grasp on this now. The books I haven't read, I've skimmed through and found little value. Particularly the ones sponsored by Entrepreneurs' Magazine. It's like a Writers' cheerleading publication (probably the same publisher), vapid and contentless, meant for the gullible.
  • networking -- contacting other consultants, joining web sites, etc.
Speaking of gullible, I joined the NWEN / WTIA (for $260) as part of my networking exercises, essentially paying dues for the privilege of networking with other dupes by paying to go to "lunches" and "talks" that no one is interested in. I see the value of a manager convincing an employer to pay for an excuse for them to get out of the office, but we'll see. The one thing I need to do less of is "getting out of the office."

I improved my LinkedIn profile and contacted some associates, including recruiters and a couple former co-workings. One think I notice that I lack is recommendations. I probably will continue to avoid asking, for fear that my performance wasn't up to par or just that I wasn't liked.

I filled out an exhaustive resume / survey on jobfox.com, only to find one job listed, which doesn't quite fit into my skillset, Mainframe testing in Oklahoma. Apparently there's no ability to search the site myself. However, I got a resume critique that was well beyond worth it. They pointed out that I don't describe my accomplishments and value. And, they didn't like my redesigned (simpler) resume layout with larger font.

I have relied almost entirely on my list of buzzword skills to get jobs, and it hasn't failed me yet, but I'm not looking for jobs -- and in this economy, there's a lot of competition. I don't know how I feel about "blowing my own horn" but I'll have to find a way to do it, hopefully tastefully. Self-effacement is one tactic I use, but that probably doesn't go over well with serious HR types. On the other hand, HR isn't the channel I want to go through.

I think my network of personal contacts will be more valuable. Nate, particularly, has been helpful. I'll keep hunting for more of those, and everyone seems to say attend "user groups", so I'll work on that more. I've had some reaching out through others' blogs. David, John, and Jennifer in particular. I hope to build friendships, but also as in the case with David, working partnerships.

I've poked around with some local business social networks, but that doesn't seem to be my thing. Biznik, Eastside Entrepreneurs, etc. Local startup groups are more where I want to be, but not early stage, a little later, when they start growing beyond the core team. If I were to get on as part time help for a couple core teams, though, one of them might click. I'm oly worried that might take too much of my time with little hope for short term payoff, or the possibility of turning into a job.

  • marketing prep -- website copy, business cards, elevator script, value propositions

I didn't do too well here, spending more time on networking. I did spend a lot of time working on a presentation of an open source QA stack, but I'm getting mental blocks because I'm not focussing. I have too much to say about inter-related topics, and it's causing drift. I did publish a blog post about three target customers, but it was poorly written and flippant -- and still not on my website.

I haven't improved the copy on my website, either, but I decided the home page is okay for now. I need to edit it to be less passive and get rid of 'we' (and 'I'). The front page shouldn't be boring either. It should state succinctly what I do, and then offer content, not copy (such as blog info, links to articles, demos, etc.).

In line with that is moving the blog over to the site. Jennifer recommends it for google credibility, but I'm not worried about that. Having blog content on wordpress or blogger makes it more likely to be spidered, from a site with higher credibility than I'll ever achieve, and their (wordpress at least) indexing and ability for other bloggers to search within the network is worth more. However, I would like my blog to appear in my own domain name.

I need to work on articles, tutorials, and the tools wiki as well. I've found one of my weaknesses is the blockage when I'm writing something (like the presentation or the website copy) is an inability to stay focussed on one topic, and then a paralysis when it comes time to cut stuff which I consider valuable, but might not be on topic.
  • business details
I've done a fairly good bit of prep work already, so there's not much to do here. One thing I did was get a more comfortable chair. That's helped
  • brushing up on skills
I haven't done well here. Yesterday, one of the tasks I set was to do a Flex tutorial, but I haven't done it. I started on a wordpress theme for my blog, but haven't finished it.

Jennifer made a good case that web sites are a much bigger market, and easier to penetrate than enterprise software development shops. Particularly early stage enterprises. Particularly in this economy.

I wonder if I should seek out web-dev work, or try to hunker down for the long term, building credibility through writing and software tools, and try to cut costs as much as possible to buy longevity. That would mean cutting marketing and networking expenses, which so far have total almost $600.

Alternately, I could go after the international market, focussing on "consulting" in a more traditional sense-- for Indian firms, for example -- offering testing process, training, and especially stateside contact. I could be a local front for, and quality gateway for offshore shops.

My company name "one-shore" practically implies offshoring, but that's not what I've had in mind. I meant more a play on "onshore" meaning I'm local, except when I'm offshore literally, meaning sailing.

I'd also like to explore offshore partnerships, with system administration talent in particular, for qa-site management. But I think I lack the capital for that, and there are several months of R&D still needed.

I'd actually prefer partnerships where different highly skilled individuals worldwide can collaborate by subcontracting or refering one another, where one-shore would be one of several focussed small companies, the others including graphic design, web dev, database, systems, etc.

I'll post a more formal "things I did well"/"things I could do better" at the end of the day.

I'm going to adopt a scrum style individual accountability, with Kelsey as my scrum master, with daily morning stand ups, a whiteboard for tasks, and weekly planning on Monday and reviews on Friday. Yesterday worked well, except the three things she wrote on the whiteboard remain uncomplete, though I spent a good 2+ hours on the presentation which still needs split up, though is about 75% done in it's flawed form, and a couple hours on another task I added, local business networking research, which I did complete, culminating in the $260 expense mentioned above.

One thing that's been eating up time is travel. Going to Utah, to meet Jennifer, to the bank, to the library, to they eye doctor (who gave me a worthless prescription), and today to the dentist. That's where I could achieve the greatest gains, particularly if I could break up a full day into two segments, with for example a mid-afternoon walk and some reading.

Other things I did that took time include transferring the one-shore and foxfish domain registrations from godaddy to 1and1, and consolidating email. I now use the fastmail.fm webmail (and hopefully IMAP/POP3 soon) for one-shore.com emails. Besides a more reliable/heavier duty mail server, I also gain their spam filtering, which is better than mine, and allows me to use the aarone@ email address again

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.