Thought Works CTB Printed Version
Thought Works CTB Printed Version
Thought Works CTB Printed Version
com
Foreword
Hello!
A
t Thoughtworks India, we are on a journey to build a unique offshore software
development organization that is focused on delivering challenging, complex and
business critical software.
We bring some significant differentiators to the offshore marketplace. As early adopters
of Agile and Lean methodologies, we have fine-tuned and evolved these practices to
suit an offshore setting. We have relentlessly focused on creating an organization full
of exceptionally talented people who are passionate about software delivery. We have
Dharmarajan Sitaraman created a culture that frees our people to learn and experiment, share ideas and
MD, ThoughtWorks India innovate daily in a way that creates huge value for our customers. This combination
of people, process and culture provides us with a sustainable competitive advantage and
enables us to continuously make progress on our mission to revolutionize the IT
industry.
As you get ready to make this vibrant organization your home, I have a few tips that
may be helpful:
● Have high expectations. Set a high bar for yourself and for everyone around you.
● Focus relentlessly on customers. Sophisticated understanding of our customer's
world is vital to our success, both as individuals and as an organization.
● All of our actions should reflect our integrity as people - always behave with
integrity with our customers, and between ourselves as a community.
● Learn constantly, innovate everyday and be passionate about software and the
world around you.
● Have loads of fun.
Welcome Home!
ThoughtWorks - More Than A Business
I
heard a speech in the early 1990s by Dee Hock, the founder of Visa. He had said that
if the 19th century was manufacturing and hardware, the 21st century was going to be the
Roy Singham
century of thoughtware. I thought of creating something on these lines that uses heart and
Founder, ThoughtWorks
head more than anything else. We thought of putting ideas into practice and so the company
ThoughtWorks was born.
At ThoughtWorks, we believe that human beings are fundamentally social. We are both
competitive and collaborative at the same time. At ThoughtWorks we are creating an
environment where the brightest and best can work together collaboratively. We think we
know the answer to what people want. They want to be in a place where they can feel
productive, where they can work in teams and yet individually contribute at high levels. To
say that ThoughtWorks is ‘Roy’s Company’ is just not true anymore since there are so
many revolutionary people who have added their DNA to the organization. We are evolving
and growing at a fast pace and India plays a major role in this.
By moving ThoughtWorks training here, we have proved that our India office is not an
appendage of the company, but a very critical part. I strongly believe that the future of the
21st century is India and China. In the next 10 years we will become more of the pioneering
thought leaders. Our goal is not to be the biggest, but to be the most influential. I am sure
this book will give you a sneak peek into who we are and what we do.
Martin Fowler
W
hen people think of applied research in computer software they might think Chief Scientist
of labs of people dreaming up exotic algorithms or interesting robotic hardware. www.martinfowler.com
But researching new ideas takes many forms. I’ve long been interested in
enterprise software and research here takes different forms and it is usually more about
people than it is about hardware or maths.
When ThoughtWorks came to India many people questioned whether our ‘Agile Agile’
Agile
approach to software development could possibly work with offshore teams. Certainly
the bulk of Indian software development was, and is, done in a very different style. Even
our initial office layout, eschewing cubes, was criticized as off-putting to recruits.
In India we’ve embarked on two tasks, firstly we build software for offshore clients
in an efficient manner that makes business sense for us and our customers. At the
same time we do the second - researching ways to make that work more effectively,
with a particular emphasis on increasing the collaboration between software developers
and business customers. I believe that truly effective software can only come out of
intense business-technical collaboration.
Our Indian offices have proved that the Agile software approach can work with offshore
software teams. We’ve also produced some innovative tools in the support of
customer-oriented automated testing tools. We’ve done well but are not satisfied - we
remain in constant competition to outdo our own best efforts.
The ThoughtWorks Family
T
houghtWorks was founded to be a home for the best knowledge We also strive to provide our people with innovative
workers in the world. We have spent the past 15 years benefits. This includes rejuvenation leave, sabbatical leave,
searching the world for talented individuals who share our car pooling, sponsorships to attend conferences and training.
values and creating a culture where they can flourish by collaborating We also have an Innovation Hotseat, which is a 1 month
with other outstanding individuals. Our globally-connected community break from regular project work for people to take their
was built on trust, respect and transparent communication. People innovative ideas to the next level.
who join our community learn constantly - not only about the work
that they do but about the world we live in and how to use their ThoughtWorks often feels like one big family, but of course
talents to create a better world. This community, more akin to family all of our employees have families of their own that support
than colleagues, is our fundamental and lasting differentiator. them and love them and allow them to be excellent people
day in and day out. We welcome families in our workplace
ThoughtWorks supports a broad agenda of progressive change in and encourage them to become part of the larger TW family
both our industry and our world. Two examples of how we realise via events like our annual Family Day and other social
that ambition via our people processes include our diversity hiring events. I sometimes meet spouses and children of our
goals for ThoughtWorks University and our Exchange Programme. people and hear them talk about how pleased they are that
'their ThoughtWorker' has found a place that keeps them so
Every year for ThoughtWorks University we target a 50/50 ratio of engaged, energized and happy. To me there is no higher
men and women globally. We do this because we believe that our praise.
The ThoughtWorks Studios Story
T
houghtWorks kick-started the Agile business era with pioneering IT consulting, and
world-leading software like CruiseControl - the first continuous integration server
and Selenium - the web testing tool. ThoughtWorks Studios, our product division, was
set up in 2007 to take further ThoughtWorks’ aim of revolutionizing IT.
Developing enterprise software can be difficult and many people, including consultants at
ThoughtWorks, put a lot of time and effort into making it easier. We understand the
importance of their efforts and aim at providing them with tools that improve productivity Nag K.
and continue to push forward the art of software development. Head of Marketing
ThoughtWorks Studios
ThoughtWorks Studios is building next generation tools that embrace the recent advancements
in our industry, and bring us up to date with the best ways to develop software.
ThoughtWorks Studios’ Application Lifecycle Management suite includes tools for project
collaboration (Mingle), automated functional testing (Twist) and software release management
(Cruise). True to the ThoughtWorks philosophy, our products are developed by teams
around the globe - India, China, US, Australia, UK and Canada. We strive to take Agile
businesses to the next level and help globally distributed teams deliver software of lasting
business impact. In the first year alone, our products have gained acceptance with more
than 70 customers (3M, Cisco, EMC etc.) in a dozen countries.
A
daily team meeting held to help
collaboration amongst team members.
Everyone communicates transparently what they
achieved and what's the plan for the day. The
underlying theme for daily stand-up meetings
is self-organisation which leads to better
productivity. Stand ups aid in sharing
commitment, communicating daily progress,
identifying obstacles and setting direction which
helps in team building.
Card Wall
/k rd w l/
A
dashboard used to visibly track stories
through their life cycle over a few
Iterations. User stories are written on
index cards, which are placed on the wall; the
location of each card on the wall provides
information about its status.
The wall tracks stories in the overall context
of a particular release.
Pair Programming
/per proh-gram-ing/
A
n Agile technique in which two people
work on the same code on one computer
- one writing code and the other reviewing.
The two programmers switch roles frequently.
The continuous discussion and review that pairing
introduces helps improve design quality, decreases
mistakes and makes more people familiar with
the code, which in turn increases productivity.
Dining Table
/dinin tbl/
T
houghtWorks is a “no-cubicle” office.
Each project team sits around a long
table. The project manager, developers,
architects, testers, and analysts share the table.
This “dining table” format enhances
collaboration, communication and teamwork. The
same seating format is used by the leadership
team as well as support functions like finance,
recruiting and HR.
Team Huddle
/tim `hd l/
A
short meeting intended to disseminate
important information or solve a
problem. These meetings could involve
some or all members of a team and can be as
short as five minutes.
Retrospective
/r tr `sp k t v/
A
quick feedback mechanism. This is a
meeting held by a team after a certain
number of iterations or at the end of a
project to discuss what was successful, what
could be improved, and how to incorporate the
successes and improvements in future iterations
or projects.
“Not Another Brick in the Wall”
Organic Innovation at ThoughtWorks
T
houghtWorks doesn't have a big budget "To Foster and Promote Innovation". Yet, Rohith Rajagopal
ThoughtWorks contributes a disproportionate number of innovative ideas to the Innovation Lead
software ecosystem. Witness the number of books written by ThoughtWorkers; or ThoughtWorks Services
the number of Open Source tools started by ThoughtWorkers; or the number of
conferences at which ThoughtWorkers are invited to present their ideas.
The key reason is that innovation here has its origins in people learning from their daily
work. Most Open Source tools created by ThoughtWorkers - including the popular ones
like CruiseControl, DBDeploy and Selenium - start off as an idea to solve a real pain
on a project. If it succeeds, then it gets tried on a couple of other projects and finally
gets open sourced. This approach has led to a host of tools from ThoughtWorks India
too - PerfERL for load testing, Sahi for testing web applications, White, SharpRobo,
SWTBot, Frankenstein, PoshZones, Migrator, etc. The same applies to books and
presentations too - most of them originate while solving our clients' problems.
While the organization provides visible support for innovation - time-off to contribute to
open source projects, venues like GeekNights and BarCamps to showcase new ideas
- the organization's biggest contributor to innovation is creating a melting pot of high
caliber individuals who value cool ideas and are eager to experiment.
The Technical Side of ThoughtWorks
A
Vivek Prahlad t ThoughtWorks, we pride ourselves at being on the bleeding edge of
Innovation Lead technology. We were one of the first to build a J2EE application, one of
ThoughtWorks Studios the first consulting firms to adopt .NET, and we are very early adopters and
contributors to Ruby On Rails. At ThoughtWorks India, we successfully completed
one of the first Rails projects in India in early 2006. We've also had a strong
tradition of coming up with Functional Testing tools such as Sahi, SharpRobo,
White and Frankenstein.
So why do we do it, just what is it about the bleeding edge that we find so
attractive?
It comes down to finding the best solution for the job. We're always on the
lookout for faster, cheaper, simpler ways of doing things, and besides, we all
love shiny new objects.
Our vision is to help our clients leverage the latest in technology to drive their
businesses forward. Though we all have our individual technology preferences, we
do try to be as technology agnostic as possible. We also take our productivity
very seriously, which is why we're constantly on the lookout for approaches,
techniques and tools that are the next step beyond the status quo.
Consulting ThoughtWorks
A
t ThoughtWorks, we are proud of our abilities in
consulting. For us consulting means working on
Sudhindhra Rao
challenging problems and helping our clients derive Consultant
benefit from their software. Our job does not limit us in
just delivering good software to solve the business
problem but also enables and transforms the client
organization which is going to use the software.
Our consulting technique focuses on empowering the
people we work with to help them make better choices.
As part of our engagements we also evangelize better
software development through Agile and don’t limit
ourselves to processes.
Consulting with ThoughtWorks is about delivering,
evangelizing, empowering and having fun with software
development.
Thought Luminaries
Martin Fowle
Fowler : Famous author and international speaker. Martin has written five popular books on
software development and spoken at numerous conferences. He is one of the original signatories of
the Agile Manifesto, having helped create it. Martin is the Chief Scientist at ThoughtWorks and an
inspiration to many.
www.martinfowler.com
Pramod Sadalage : Author and Evolutionary Database expert, Pramod writes and speaks about the
impact of evolutionary practices on database administration. He helps us understand evolutionary
design with regards to databases and makes it easy for everyone to use.
www.sadalage.com
Neal Ford : Software Architect, Neal is also the designer of applications, instructional materials,
magazine articles, courseware, video/DVD presentations, and author and/or editor of 5 books. He is
also an internationally acclaimed speaker, speaking at over 100 developer conferences worldwide,
delivering more than 600 talks.
www.nealford.com
Ola Bini : Core JRuby developer and author since 2006 and is the author of the book ‘Practical
JRuby on Rails’. His technical experience ranges from Java, Ruby and LISP to several open source
projects. He likes implementing languages, writing regular expression engines, YAML parsers and
other similar things that exist at the border of computer science.
http://ola-bini.blogspot.com
ThoughtWorks OpenSource
Srihari Srinivasan
Chris Stevenson
Owen Rogers
Vivek Singh
Jon Tirsen
Jason Yip
Alexei Vorontsov
Michael Two
Michael
Granger
Paul Hammant
Vivek Prahlad
ThoughtWorks Books
Dragos Manolescu
James Webber
Neal Ford
Joe Walnes
Alexei Vorontsov
Matthew Fommel
Pramod Sadalage
Mike Mason
Martin Fowler
* Many ThoughtWorkers & ex ThoughtWorkers are major contributors of Technology Books and the Open Source Movement.
Open Source Projects By ThoughtWorkers
SWTBot
By Ketan Padegaonkar
SWTBot is an open-source Java based functional testing tool for testing SWT and Eclipse based applications. SWTBot has a driver
and recorder to playback and record tests and integrates with Eclipse, and also provides for ant tasks so that you can run your
builds from within CruiseControl or any other CI tool that you use. SWTBot provides APIs that are simple to read and write.
SWTBot can run on all platforms that SWT runs on. Very few other testing tools provide such a wide variety of platforms.
http://swtbot.org/
PerfERL
By S R Karthik
PerfErl is an Erlang based load testing tool intended to replace the popular JMeter and overcome its drawbacks. This tool makes
use of Erlang’s built in concurrency mechanisms to easily distribute load generation across multiple machines.
White
By Vivek Singh
White is a tool for building UI-based functional tests for Win32, WinForm, WPF and SWT applications using the UIA .NET library
in .NET 3.0. It fundamentally acts as a layer of abstraction over UIA to providing a seamless, uniform and intuitive automation
interface. White also makes use of the Windows Messages to overcome limitations in UIA. White tests/programs can be written
in any programming language supported by .NET, even though White itself is built using C#.White is in an early beta release.
Development focus to-date has been on WPF/WinForm and this is where it has the richest functionality.
www.codeplex.com/white
Migrator
By Srihari Srinivasan
Migrator allows you to define incremental changes to your database schema using SQL and applies them using ANT. This also
makes distributing schema changes easy as Migrator’s change scripts can be stored in your version control system. All of
Migrator’s features are exposed as Ant tasks. The migrator works by applying a bunch of change scripts, essentially in SQL
and running them sequentially till the latest or a specified version. Migrator provides an added facility to extract changes between
any two versions of your schema.
http://migrator.sourceforge.net/
TW Immersion
ThoughtWorks University & Immersion
ThoughtWorkers!
tête-à-tête with ThoughtWorkers
T
hese range from impromptu over-lunch
discussions on topics ranging from Ruby
to comics to full-fledged hack-athons where
ThoughtWorkers compete to produce the coolest
app over a twenty-four hour period. Examples of
events include Hack Day, Master Class Series
and Geek Nights.
Fun @ ThoughtWorks
O
ur office space is unlike the conventional software development workspace. The intensely
collaborative and open workspace is a dream come true for any technologist. At the same
time, we have a lot of fun at work.
Choose between Age Of Empires, Unreal Tournament and Counter Strike. PlayStation 3 or
an X Box could be your weapon of choice.
Participate in skits, mad ads, dance, singing and perform for an office-wide audience
during away days and company outings.
Table tennis for the sporty folks.
Indoor cricket.
Salsa classes from professionals and personalized yoga is available as well.
Office events such as the treasure hunt, ThoughtWorks Oscars and ‘secret angel’
during Christmas celebrations.
Celebrate a variety of festivals and events with lots of enthusiasm and joie de vivre.
Pradipta Kundu
CARE Volunteer
A
t ThoughtWorks India, we believe that Corporate Social Responsibility is of vital essence.
We make a genuine attempt to build meaningful relationships between the company and the
rest of society. All of our practices meet, or exceed, the ethical, legal, commercial and
public expectations that society has of business. We have social responsibility as an integrated
part of day-to-day business, engaging all stakeholders and including strategies to support
individuals to make socially responsible decisions, conform to ethical behavior and obey the law.
At ThoughtWorks India we currently run with an initiative called as CARE (Create A Responsible
Environment). CARE runs two campaigns
● The Save Paper Campaign, in which we encourage ThoughtWorkers to use less paper and
avoid wastage of cards and stationary.
● In cooperation with an NGO called KiliKili, CARE is going to enable one of the local parks
in Bangalore to be a disabled persons friendly park.
- harnessing the brightest minds in I.T.
H
ome to arguably the highest density of top IT talent in the industry, ThoughtWorks is a global IT professional
services firm that has pioneered the development and delivery of complex enterprise-transforming business
applications using Agile methods.
ThoughtWorkers are defined by their attitude, aptitude and integrity. Their creativity, experience and devotion to customer success
generates a work environment that's high energy, results focused and fun.
ThoughtWorkers thrive on learning and applying next generation technologies quickly and effectively. This passion for new
technologies is balanced by an unflagging pragmatism, the company-wide commitment to building quality software and delivering
solutions that create unparalleled business value for clients.
ThoughtWorks India has pioneered the concept of Distributed Agile Development and Offshore Agile Delivery. We consistently
contribute to industry thought leadership through significant contributions to the Open Source community, speaking at leading
conferences and supporting IT community events.
ThoughtWorks values integrity, passion and innovation and believes that the best people make all the difference.