The ThoughtWorks Delivery Approach

We see software as an ecosystem - of customers, processes, technology, developers - and our projects are never done within the confines of an IT-only force field. By applying the latest thinking in architecture and object orientation, and utilizing Agile and Lean software development practices, we ensure that your software will work reliably not just from the beginning, but will continue to do so as it is modified over time to accommodate evolving requirements.

Inception

Our delivery work typically starts with a time-boxed Inception, engaging every key stakeholder group right from day one. We use a collaborative, iterative and highly focused process to define high-level requirements and initial release plans, together with the technical architecture and any significant risks, issues and constraints. This time-boxed inception approach rapidly builds consensus and provides an invigorating start to projects. This defines high-level requirements and initial release plans, together with the technical architecture and any significant risks, issues and constraints.

Build, Automate and Deploy

We then get on with delivering working software as quickly as possible. Projects are organized in small iterations of one or two weeks, regardless of the mix of onshore and offshore teams. We work closely with the business stakeholders to determine priority, and aim to produce production ready code for each and every iteration. The practices that enable us to produce high quality, fully tested code all the time also allow the business to change priorities at each iteration.


Our collaborative process and frequent releases of valuable, working software help to rebuild trusting relationships between the business and IT. Change is embraced naturally, and the latest thinking from all stakeholders can be easily incorporated into the system. Everyone can be confident that the right thing is being built, and with regular reporting based on objective metrics, everyone is fully informed on progress.


Test automation is an integral part of our software delivery life cycle. From Test-Driven Development (TDD) during code production to automation of all areas of testing (system, functional and performance), it is a comprehensive quality assurance process that minimizes project risk and cost by emphasizing defect prevention over remediation. Our deployment planning defines and schedules all the activities involved in deploying to different environments and in going live with a release, and automates as much of the deployment pipeline as possible. This results in error free deployments that can be performed frequently, to release software value as early as possible.


Click below to understand our best practices, and the resulting benefits to our customers.