The antipodes are calling

I’m heading to Sydney, Australia on 22nd January 2011.  I will be looking for test consulting work  preferably through my Australian consulting company Testing Times.

What do I offer?

I shed light on testing problems often obscured or caused by a testing process. I bring a new perspective often hard to gain when inside an organisation.

I do this by thinking outside the square, looking for solutions outside traditional process orientated ideas.

So, if you have a problem that you haven’t yet being able to solve using traditional testing approaches, or you want a testing approach based on excellence and speed* why not contact me?

I also deliver one day training workshops on testing. These workshops focus on increasing tester skill.

I offer a context driven approach to testing.

These  principles are:

1.    The value of any practice depends on its context.

2.    There are good practices in context, but there are no best practices.

3.    People, working together, are the most important part of any project’s context.

4.    Projects unfold over time in ways that are often not predictable.

5.    The product is a solution. If the problem isn’t solved, the product doesn’t work.

6.    Good software testing is a challenging intellectual process.

7.    Only through judgment and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products.

What this means to you is that the advice I offer is to ensure you the customer get the best value out of your testing.

If you like that idea then contact me at amcharrett @ testingtimes.com.au

Interesting fact on the word antipodes. “The antipodes of any place on Earth is the point on the Earth’s surface which is diametrically opposite to it.” – Wikipedia. So, technically that would mean somewhere in the Pacific Ocean. Though I suspect that not a lot of testing is done there!

* I use a rapid software testing developed & taught  by James Bach & Michael Bolton.

Walking the walk, but can you talk the talk?

In my experience, selling testing is a lot harder than testing. Despite being Irish, “the gift of the gab”  eludes me, often leaving me tongue tied and twisted when selling my wares.

Its one of the reasons I have got myself a business mentor.  His main focus has been for me to understand my ‘product’ and my customers.  He’s arguing at the moment, that the word ‘testing’ is not sufficient to draw in my customer base. The reason being, is my customers work in a different paradigm and use different language and so fully fail to comprehend the benefits that testing can provide.

We know as testers that testing can have massive benefits right across the company, and that the information and insight (thanks Joe) we provide is useful beyond the IT development lifecyle.  For example, we know that marketing can benefit from data resulting from performance testing, that legal teams can benefit from any compliance testing we perform.

There is a bit of a trend recently to describe our work in clear terms such as testing and bugs. Where before we perhaps worked in QA, we our now testers. We have ceased to use language such as gatekeepers and milestones. But I wonder in using such limiting language such as testing and bugs does it make it harder to sell testing to these stakeholders? I certaintly struggle in finding ways to bridge the language gap between testing and my customers.

Words such as Quality and Assurance have in a way become tainted and I try to avoid such terminology, but really where does this leave me?  I know for effective communication with my customers (who exist outside the IT world), I need to use their language and describe testing in their terms.

I will give you an example.

I attended a BizSpark networking event recently where a number of Venture Capitalists were present. One concept I’ve been toying with is to provide independent technical reviews on software products for investors and the like.  I know, it sounds a lot like testing, but if I used the word test  and bugs, VC’s eyes glaze over.

So I speak to them using words such as due diligence, audits and risk management.

Does this mean I’m not testing anymore?  Am I now selling insurance as opposed to  testing? Personally, I don’t see it that way, to me the core is all about testing. It’s just that the context has changed, and so the language has.

Perhaps I’m over complicating things here. I’m unsure.  I know that placing testing in their context it makes it easier for them to buy into. Is that so wrong?

I’d really like to hear people’s thoughts on this, it’s a topic that fascinates.

So you want to be a software test consultant?

Today, I’ m handing out some pointers that may or may not help you on your path to becoming a software test consultant. Some of these I’ve gained through bitter experience, others are more hindsight on things I ought to have done.

So, without  further ado, here are my tips.

1) Dreams are not goals

Its easy to have a dream about setting up a test consultancy, and actually, it’s really easy to setup a company, print some business cards and your dream is realised!  But unless you have short and long term goals, your business won’t go far. I set quarterly and yearly goals for myself and my business.

2) What does success mean to you?


I think this is essential to understand. What is driving you to run your own business? Money, freedom of choice in your work, flexibility? Knowing what will make you happy when you achieve your goals and dreams is essential to having a successful business. For me, my initial goal was to work for myself and not have to answer to anyone! It has changed over the years to include flexibility to spend time with my younger children. At times, this has meant my business has not been highly profitable, but it has always been successful.

3) Know your market and your products.

Who are you targeting your testing at? Any particular sector? Any particular size of company?  Ask yourself what products/packages would they be interested in? Ask your market what products/services they would be interested in? All this ought to be in your business plan. In my view a business plan is the equivalent of your testing strategy and approach, and its a very personal document. It helps you through knowing your market and your products, your rates etc.

4) How much should I charge?

There is no easy answer to this, which is why spending hours googling websites like mine is not going to help you. The general advise is that you should charge enough to cover your expenses and how much you need to live on. So, if you estimate on working 40 weeks of the year, and you need a salary of $100,000 yr to live on, you have company expenses of $20,000 /yr  then you will need an hourly rate of $75.  This may not be the final rate you charge, but you know its your minimum rate. That’s helpful to know if a client is trying to offer a lower rate.

I went for a tender recently and lost out. I asked why and they mentioned that my rate was to high. I was dissapointed naturally, but I knew that I had offered the right rate for me and I would not have lowered my rate just to get this piece of work, the risks were too high.

There’s a whole other heap of things that contribute to your daily rate, such as knowing who your market is, and what they will take. Bear in mind rates are very fluid, and in times like recessions they often move down very quickly.

Personally, I think you just have to go out there and try out a few numbers with potential clients. You will soon learn what’s acceptable and what’s not.  So, get off your butt, find a customer and charge a rate. If you don’t get the work, ask them why? Was the rate too high?

No-one said this was going to be easy!

5) Marketing Yourself

I have to mention something about marketing etc, because a) its so important, and b) it can be very time consuming. What are the best methods to promote yourself? Like any good tester, I’m going to say it depends!  There many ways to promote yourself on-line and off-line. I have gotten work from both online and through knowing people. Each country differs in what works best. For example, in Australia, a lot of my work came through the internet, so having a good online presence was essential. In Ireland though, it’s more who you know and going out and meeting people is more important.

Be very careful how much time your spending on the internet twittering, blogging etc, your time may be better spent meeting people or speaking to people on the phone. This is a big trap and one I constantly fall into!

Writing articles and speaking at presentations are other ways of promoting yourself and its a good way to start seeing yourself as a provider and not a consumer.

6) The baby years.

Realise that though you may plan to work 40 hours a week, you may end up working less than that, especially in the first couple of years. So what do you do?  Either you need a little nest egg which you can rely on for two years, or else you are going to have to supplement your business through short term contract work.

In fact, I think its a good way to transition from permanent to running your own business as it helps you learn about other consultancy type skills such as understanding the tax system, raising invoices, working by the hour, dealing with clients and learning market rates. These are all skills which you may not have come across in your permanent role and will be helpful in running your own business. At the same time, you are still assured of an income.

7) Always be on the look out for new clients.

This is a real challenge when it comes to working for yourself and I think is one of the biggest challenges to running your own business. Marketing and selling your work to new clients is essential if you want to keep the work coming in and takes an enormous amount of effort. But how do you fit this in when working for a client five days a week?

I don’t have any easy answers to this and I still struggle with balancing my sales activities with my paid work. Paid work has to come first, potentially leaving only evenings and weekends for marketing and sales type activities.

If you value you family life, you can try working 4 day weeks and leaving one day (or 1/2 day)  for admin activities.

Another idea I had, but I haven’t tried is to outsource your marketing and sales to another freelancer. I don’t know if this approach works, but sometimes I’ve been sorely tempted to try something like this out!

8 Use your network.

Everyone knows that in order to find clients you have to network. I remember being a bit overwhelmed at the thought of having to find this ‘network’ of people to source work from. How in the hell to I meet these ‘people’ who had work?

I realised after a while, that I didn’t have to look anywhere as I already had a network! My network was my family, friends and people I had worked previously for. So, when I started looking for work, I turned to these people first.  Let them know you have started working for yourself and could they pass the word that you are available? It doesn’t matter if they are non IT people, you just never know where your next piece of work is going to come from. Also, ask them if they know of someone who may be able to help or give advice? (People love giving advice!). The key is to start talking to people you know, and people who your network knows.

A great place to start is with companies you’ve worked with. These people know you, and what you can do. You also have the advantage of knowing their systems etc. Don’t be afraid to go back and ask for any work they may have. If you can make it part time even better as that way you can focus on building your business. One of my first jobs came this way.

9) Work smart

I will let you in on a little secret. I have a business mentor. I suggest you go out and find one yourself. A mentor is an excellent way of guiding you through some of the pitfalls in starting up your own business and can help you with the all important and essential business plan.  I got my business mentor through an enterprise network, look around your local area and see if there is something equivalent.

Footnote. I am not offering any business mentoring, so please don’t ask.

and finally

10) Its your path.

It’s good to get advice and ask for help. However, no-one is going to give you a template or process for success. You are going to have to make it up as it goes along. That’s half the fun of running a business. I liken it to raising kids. It doesn’t matter how many self help books you read on how to raise your children, in the end, they are only guidelines. You are the one who is going to make to decision on what to do. Are you prepared for that?  If you want it all mapped out for you, stick to your permanent job.

That’s about it!

I’ve listed some related articles I’ve written on the topic below:

Presentation: It includes some stats on where I get work etc

Article I wrote for the STC On being a successful consultant

I could go on, but I think I’ve addressed the main points. If you have any more questions on this  topic, feel free to ask in the comments below. If you think you’d be interested in this topic  at a conference let me know that too!

Please don’t post asking for work, that you will have to find on your own!

Good luck on your venture.

Engineers make awful sales people

I had an interesting conversation today about the ability of engineers to be able to sell their services. As a one-woman band type consultant, I don’t have the luxury of a sales force that markets my wares in an enticing way.  I rely heavily on referrals and the fact that  I do a great job in software testing.

When I am asked for a quote, I like to base my estimates on value. What is the best value that I can provide at a reasonable price?  I think like an engineer.

However, I’m told that the best way to sell software testing is to focus on risk. How can you NOT afford to test?  I need to think like a sales person.

So, are engineers in general good analysts but bad sales people?

6th Software Test Managers Forum

One of my goals this year is networking and freshing up my software testing skills. So, I decided to go along to the 6th Software Test Manager’s Forum sponsored by K.J Ross and Associates

What a great success this event was. I thoroughly enjoyed the opportunity to meet up with test managers to discuss problems and listen to how others have solved similar test problems.

The approach was relaxed yet everyone was enthusiastically involved. There was also a good representation of test managers from across many business sectors.

I got a insight into trends in the software testing industry – such as:

  • Get used to it, Agile is here to stay
  • Learn how to test SOA
  • Time for us Test Managers to learn how to Market Testing.

to name just a few.

I would definitely recommend any test manager to go to this great event next year.

Get Success to drive your software testing consultancy

If you want your software testing consultancy to succeed, first ask what sort of success you want. You probably have some ideas on this. For example, you may want to run an exclusive software consultancy with a reputation for excellence, or make a million before your 30, or as I do, you want to work for yourself , have a reputation for excellence and balance work and lifestyle. Whatever the definition, this can become great parameters for your future business decisions.

I’ll give you an example of what happened to me. Recently, I’ve had the opportunity to review my goals for my consultancy.

At the moment, the company is dependent on me, myself and I. That makes me director, test consultant, accountant, marketing manager and sales person.. not to mention cleaner etc. My income is good, and in software testing, there’s a plethora of opportunities and directions someone like me can take. For example, I could outsource additional testing to a different company, take on a couple of software contractors, perhaps concentrate on being a test consultant with a great reputation .

So, I went back to my definition of success and used this to redefined by companie’s goals within the parameters I had initially set.

It helped me throw out some options, and refocus my energy on becoming a consultant with an excellent reputation. My goal is to have customers knocking on the door with software testing problems to solve. However, it also important to me to be at home for my young kids in the afternoon. So, yes I have to accept that some of the options for me are not possible, however I’m living within my parameters and so yes I am a success.

Small Footnote: Of course, you may find out that you redefine your goals within your existing parameters and find your not happy with the result. I suppose its a good indicator to review your definition of success. Perhaps it’s changed since you started your business?

Freelance Testers – a smarter, cost effective way for startups

ITnews had an article recently on startups. It examines what to look for in a startup, and also how to minimise the risks. Here’s an excerpt:

A startup’s immaturity will be reflected in the quality and capabilities of its product. As you would when considering an established vendor, a CIO must conduct technical due diligence….You can minimize these risks in several ways. First, do extensive pilot testing, and start with a small deployment’

A good freelance software tester can provide real benefit to startups by verifying and/or validating software at a reasonable price. This builds confidence in a product and is useful for promotional purposes. Its also useful to demonstrate third party verification of technical claims when seeking additional funding.
This is how a freelance software tester can reduce cost yet still provide a quality service.

Freelance software testers are ‘on-demand’

The nature of software testing demands flexibility as the testing effort often fluctuates throughout a software development life cycle.

At the beginning of an SDLC, test planning, scheduling and scoping of tests takes place. It can be a very busy time for testers, scoping out whats to be tested, prioritising tests, planning and creating test cases, organising the test environment, the list can go on..

However, there’s often a lull after the initial frantic test planning. This is where all test cases are written, the test environments is ready, and testing is ready to start. The trouble is, often the software to be tested is not.

Even when the software testing starts, it can be a start, stop, start affair as major problems are found and require fixing. These are not necessarily related to code, but can be in installation, configuration etc. A tester isn’t always needed but should be on call for when testing does begin.

It goes without saying that a software tester is available during the test execution phase, and perhaps due to time demands, needs to test beyond normal work hours.

A freelance software tester works only when its needed, this is a big saving in cost. This way you can still afford a quality software tester at a lesser price.

Freelance software testers listen to the customer

A good freelance tester, will be a good listener. By understanding the demands on a business, a freelance software tester is able to adapt the testing to meet the needs. This can be a great cost saving, as needs are met first and foremost. See my post on http://www.blog.testingtimes.com.au/?p=25 for the types of questions a freelance software tester should ask.

Freelance software testers are flexible in approach

A good freelance software tester understands the three key demands placed on any software project, namely, cost, time and quality. They have the liberty to be flexible in approach to testing in order to balance quality against its natural enemies; time and cost. If time is an issue, a freelance tester is able to prioritise the testing to ensure key functionality is tested. Budgets can be effectively managed by using ‘on-demand’ testing and fast-tracking planning where possible.

Freelance software testers need to you succeed

Like any other freelancer, reputation is paramount. A freelance software tester’s reputation is built on getting excellent customer referrals. They don’t rely on big marketing budgets or a platoon of sales people for their next job. They need their client to succeed and be profitable. That way, not only does word spread, but they get repeat business. It’s in our interest to ensure that you have the best quality product to sell.

Of course many of the attributes I have described in this article can be found in software testers everywhere. However, a freelancer has the added advantage of passing these cost savings on directly to the client, without the commitment of long term contracts.

The full ITnews article can be found at http://www.itnews.com.au/News/59326,opinion-startup-fundamentals.aspx

Anne-Marie Charrett runs a software testing company that specialises in testing software for high-tech companies and startups.

How to kickstart a freelance software testing project

Starting a freelance software testing project is similar in many ways to any other project. It requires rigorous planning, well thought out tests, and excellent communication. As a freelancer however, you may feel more responsible in making sure that your client is happy with your work. This way, you have a better chance of getting more work from them.

Think first then ask

Before you start anything, you want to clarify with your client as much as possible. This means you can provide them the biggest return for their money.

Clarify:

  • Why did they hire you?
    What do they expect to get out of this piece of work? A report to take to customers?, confidence their application? Information about their application?
  • Your test approach
    Provide guidance here. Give a basic approach on how you intend to test the application. Then get some feedback on it.
  • Application
    Get as much information on the application they want you to test.
  • test environment
    Ask who will be responsible for the test environment (They may be expecting you to own it). If the client is to maintain the environment, what access will be provided to you?
  • the test scope
    Never assume the type of testing your client wants. Spell out what you intend to test. A spreadsheet is good for this. Briefly list the areas you think require testing and send this to your client.
  • Test Tools
    Ask your client if they use any test tools? If not suggest the ones you are most comfortable with.
  • reporting
    Give the client some idea of how and what you will be reporting. Is a weekly email sufficient or do they want daily communication. This will have an impact on the cost of the work involved.
  • schedule
    Do they have a schedule or time frame in mind when this testing has to be completed? If the time frame is fixed, this may be the deciding factor in how much testing you can do
  • budget
    Talk to the customer about money. Be upfront about payment conditions, when you expect to be paid and how.

I like to base my quote following most of this information exchange. Its an upfront cost I wear as I like to provide accurate quotes to my client that are tailored to meet their needs and provide greatest benefit to them.

Your quote can be fixed price or time and materials. Fixed price is great when the effort is quantifiable. Otherwise you can go for time and materials. This can be an hourly or daily rate. Deciding on your rate is tricky and will require you to do some investigating. If you have a friendly recruitment agent, they may be able to provide you with some pointers.

If you really have no idea how much be upfront with your client and ask them what their budget is and then work out what you can provide for that.

Once you have agreed on the scope of work, the schedule, the cost put it in writing. Include risks and assumptions such as;

Assumptions

  • You will receive the application on time
  • You will be paid thirty days after completion
  • Completion of the project is delivery of a final report
  • No retesting is involved in the cost

Risks

  • What happens if the project is abandoned, will you be paid for the work you do?
  • If the testing takes longer than you expected, how will this be managed?
  • What happens if requirements change halfway through testing?

Be prepared….

Make sure you have everything you need to test. If you are testing remotely, do you have suitable bandwidth, hardware, software to support the testing required. Do this as early as possible, as it may take time to setup the test environment.

Have a process for backing up your testing nightly. Be meticulous about this.

I think its unfair to ask a customer to pay for you to ‘learn as you go’. So, know the basics of software testing. Have templates ready for all stages of your testing, this will also help with your branding.

Now all thats required is to start your test approach.

Above all;

  • keep communicating with your client,
  • be upfront on any issues that arise
  • Be knowledgeable and provide guidance
  • Don’t forget to ask the customer their opinion.

Good luck on your project

This blog is the result of an email requesting advice on starting a freelance software test job.

Reality bites

Who doesn’t love the internet? As a small business owner of a software testing consultancy, its a great way to promote myself along side the bigger companies.

However, I’m discovering the major minus side to promoting on the internet. That is, its too absorbing. I can’t resist reading those cursed google stats every day. I check how many people read my blog and from which country they are.
Then, I recently re-discovered that the best way to promote myself is to meet people…..in the flesh, face to face… you know, where you shake hands and make eye contact. They weren’t virtual people in second life, but real ones that you can touch, have a drink with.

I went to a networking event recently and got more contacts in two hours, than my weeks of stressing over web visitor numbers. A side bonus was the encouragement I received which renewed my determination in making my business succeed.

So here’s my new resolution. Shut down the computer, walk out of my office and starting talking to people. Who knows where or what it will lead me to?

Take the Test…

Want to review your software testing process? Here are some guidelines that I use to review a company’s test process.

Stakeholder support

Before examining software testing in detail, assess your financial and managerial support. Any good review exposes shortcomings and to act on these changes will require good managerial and financial support.

One way of getting the support you need is to present a business case outlining the benefits software testing brings to your business. Software testing because its ‘good process’ is insufficient justification. An accurate and persuasive business case from a business perspective is required.

Common software testing benefits to business are:

  • Confidence in the software’s ability to behave as expected
  • Confidence in the system’s robustness
  • Risk Mitigation
  • Tangible knowledge on the systems performance
  • Overall cost reduction in the software delivery lifecycle
  • Increased customer satisfaction

Align these benefits with any company mission statement and it will re-enforce your case.

Software testing process

A software test process delivers reproducibility of results, repeatability of tests and the consistency across multiple projects. A software test process is the cornerstone for many testing teams.

Review the effectiveness of your software testing process to determine if improvements can be made.

Here are some ways in which you can review your test process;

Perform test process reviews on completed projects. Create a questionnaire on the software testing process used and ask developers, testers, managers and if possible your customers to provide some feedback and suggestions on improvements.

Review the test templates and examine how they where used. Discuss the templates with testers to discover ways to improve the templates.

If your software testing process is informal, discussions with developers, business and managers will help identify and formalise what is perhaps an informal and ad-hoc activity.

Skill and resources

Consider what resources you have available to perform your testing. Dedicated resources have the advantage for the following reasons;

they can focus full time on testing, reducing the test execution time compared to a resource who is performing both testing and business as usual activities

A dedicated resource has more experience in scoping out the test effort. They are familiar with the pit holes and understand the need for proper planning and setup.

A dedicated resource provides an independent and impartial view, taken from a user’s perspective. This often helps find critical defects before the user does.

Dedicated resources may initially seem as an additional cost but they improve the effectiveness of testing and reduce delays in testing caused by lack of resources or inefficient planning.

If testers are included in your resources, examine their skill set and determine ways to improve their knowledge of testing. For example, look at training courses or training on testing tools.

Testing Tools

Testing tools are an excellent way to facilitate reproducibility, repeatability consistency and uniformity. The catch is that to reap the benefits, they require total team participation and be kept up to date.

Automated test tools improve efficiency and reduce time though do not necessarily reduce the resource effort. This is because automated test scripts like any software requires maintenance. Testing tools need to be assessed with your testing requirements in mind, so careful thought is required before purchasing any tool like this.

Typical types of testing tools that are available are;

defect tracking tools

automation tools

performance loading tools

test script repository

An essential testing tool is the defect tracking tool. Defects are the key method of communication between developer, tester, manager and customer.

Also, a central repository that holds all defects are their status facilitates the sharing of this knowledge.

A test script repository is helpful for tracking the test effort and the results as well as centralising where test scripts are kept.

Collaboration

Testing affects developers, business, support and infrastructure and naturally testers themselves so it’s essential to examine ways to improve testing collaboration. Review how communication is performing throughout your software testing process. Effective methods of communication are daily or weekly meetings, defect reviews, documentation such as reports and emails, though not too many!

One method to improve collaboration is to get all parties involved in improving the software testing process. Their input and feedback on the software testing process will help make the process relevant to them and so increase the chance of testing success.

Test environment

Look at your test environment and review it for the following;

Security

Check how much control testing has over the test environment. Test results can be compromised if the test environment is open to all and it’s possible to make code or configuration changes without a tester’s knowledge.

· Suitability

Having your testing environment mimic as closely as possible the end user or production environment increases the confidence that the software will behave as expected.

Planning
Some of the major delays in testing are caused by initial setup problems in the test environment. Good planning reduces the risk of something going wrong. Review how you plan your test environment and ensure that the test environment is ready when you’re ready to start testing.

In conclusion, a software testing process is only useful if it’s in use. If you do require changes, make sure their relevant to your business.