The Thumbtack Implementation Process

Overview

The Thumbtack Implementation Process has been honed over several years to provide a repeatable model for producing highly robust scalable software systems. Building high-end systems is always a difficult engineering challenge, and scaling it out is more complex than simply hiring excellent engineers (though that remains a critical part of our business). In addition to our workforce, we follow a four-step process for delivering products of exceptional quality.

Step 1: Discovery

Our discovery process is geared around identifying low hanging fruit and defining projects with a "high-bang for the buck" which can be deployed in a short time frame. Key steps include:

  • Identify key pain points
  • Conduct a strategic assessment of solutions
  • Map process flow across departments
  • Provide risk/return blueprint

Step 2: Tactical Architectural Planning

Tactical planning is geared around minimizing project risk and providing both technical architecture and project plans that can adapt to changing requirements. The process includes:

  • Break down large tasks into concrete manageable steps
  • Isolate components in a loosely coupled architecture
  • Create an incremental implementation plan
  • Plan for redundancy and failover

Step 3: Agile Software Development

Our core software development process is focused around flexibility and code quality. We manage these two often incompatible goals with a combination of an aggressive mentorship and training program combined with a rigorous coding process that features:

  • Scrum-based project management
  • Test-driven development
  • Integrated double code review process (both internal and external team reviews)

Step 4: Continuously Improved Deployment

At Thumbtack, "Continuously Improved Deployment" means deployment with careful planning and an eye toward incremental changes as business needs or conditions change. The key features are:

  • Both functional and automated testing, including complete written test plans
  • Hybrid cloud deployment automation
  • Post mortem analysis and planning