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