Consulting

For an introduction to my approach, I recommend watching my Business of Software conference talk Rock Solid Testing Without Hiring an Army.

Companies typically hire me to solve:

  • Testing problems
    • Slow, unreliable automated test suites
    • Not knowing where to start with a test approach
    • Training testers and developers in world class testing and automation practices
  • Continuous delivery goals
    • Being able to release to production daily
    • Creating a fast and reliable release process
    • Continuous integration design and setup
  • Process problems
    • Agile practices
    • Managing technical debt
    • Management training

Long-term solutions

My goal is to equip your teams with the skills and the tools that they need to implement a sophisticated and scalable solution to your development, test, and release process.

I believe in the importance of sustainable engineering practices. That’s why, rather than doing all of the work for your teams, I guide and train your team leads in scalable, safe approaches to software engineering so that they can continue to drive these practices long after I’ve completed my contract.

In order to deliver the best value for your organization, I train your teams to design and run infrastructure projects themselves. This way the knowledge stays within the team, and I am able to effectively manage projects across multiple teams at the same time – creating fast results.

How I work

Compared to most consultants, my work is pretty quick. I’ve been known to deliver high value in just 10 days, much to the surprise of clients who are used to consultants taking months to achieve the same thing. This is simply due to the breadth and depth of my experience – I’ve seen most problems before so I immediately know the solution.

I usually start by getting to know your team and your technology so that I can create a technical strategy and roadmap that will achieve your goals. This typically takes 5-10 days, depending on the size and complexity of what I’m working with.

Then I spend 1-2 days per week working with your team for training and guidance towards the completion of these goals. This keeps the team moving towards completing the strategy, while still having the time to progress with feature work.

For more information and pricing, contact me directly.

Case study: UpGuard

The whole team is extremely happy with this way of working. They get new functionality to their customers quickly and regularly, and always with a high level of quality.

Goals
UpGuard was primarily based in the US and had recently set up a development centre in Sydney. UpGuard’s aim was to get into a cycle of successful weekly releases. To achieve this, a highly automated approach to testing was required, and UpGuard engaged Trish Khoo to help set this up.

Deliverables
In just 10 days, Trish delivered the following through a combination of on-site and remote work.

Resources created:

  • UpGuard Testing Strategy for Sydney team
  • UpGuard environments and release strategy
  • A developer’s guide to testing
  • Unit test review for UpGuard Sydney
  • Test cases as acceptance criteria example
  • Testing cheat sheet
  • Postmortem incident template
  • How to break down larger tests into smaller tests

Training given:

  • In-person workshops
  • Acceptance criteria writing
  • Exploratory testing
  • Automated testing (unit, integration testing, e2e)
  • Presentations
  • Test and release strategy overview (Sydney, MTV management team, QA team)
  • A developer’s guide to testing
  • Hiring for a test / infrastructure role

Trish also sourced two candidates for an infrastructure engineer role in Sydney.

Result
The development team in Sydney has been using the testing approach developed by Trish for well over a year now. After adopting basically all of Trish’s recommendations, they’ve successfully completed over 50 production releases. They have no dedicated QA staff, and have instead instilled a philosophy in the team whereby “everyone is responsible for quality”. They automate almost all testing. For everything else, they hold a “team testing” event at the end of every sprint, in which engineers test each other’s work. The whole team is extremely happy with this way of working. They get new functionality to their customers quickly and regularly, and always with a high level of quality.

About UpGuard
UpGuard is a cybersecurity company whose products help hundreds of security, risk and vendor management teams take control of cyber risk and move faster with confidence.