One month milestone
I just experienced my first month in ThoughtWorks, in fact I decided to record my feelings and thoughts even before I joint this incredible company, I believe it would be a unforgettable period of my life. And right now it's the time for me to do it! To document the different and special places of ThoughtWorks from a developer's/geek's eye.
Culture in ThoughtWorks
My first time pair experience was the interview taken place in ThoughtWorks Xi'an office, which gave my mind a strong shock and I felt I learnt and improved so much just after half hour's pair programming, in other words: "level up":) (Actually it drove me to make the final decision to join ThoughtWorks), so I was really expecting the pair opportunities before I joining, because I always believe in "everyone can be my teacher because he/she has his/her expertized knowledge domain!" and "two heads are better than one!". Now one month passed, I paired with every teammate, and the result absolutely proved my belief!
This is the second one of The ThreePillars of ThoughtWorks, and it is the one myself deeply believe in and wish to conform! Actually I immediately realized that people here are really trying the best to achieve this point! We spent significant of time in reviewing, thinking and refactoring our code, even testing code! And our CI process cannot tolerance a method without testing code, the test coverage must be 100%! Wow!
Pure code, no comments!
After looking through the project code I was working on, I noticed that I barely saw comments, and one time I was pairing with a co-worker, I just supposed to add some comments, my pair told me people here opposed to write comments because human-readable method name/variables/class names make enough sense, if sometimes you are considering to add comments, you've probably written not so readable code, or in other word: bad code, you'd better consider improve/refactor. Yes! It is reasonable! I recalled one of my motto, said by Chief Scientist of ThoughtWorks Martin Fowler: "Any foo can write program that a computer can understand, good programmers write code that human can understand..
Agile, BDD, continues integration/delivery
ThoutghWorkers deeply believe in agile software development, and I experienced a complete process of BDD/TDD, CI, I really enjoyed the advantages the process provides, in fact, that's one of a lot of reasons I joint ThoughtWorks, during my past three years in HP and SAP, the projects I worked on have UT coverage less than 20% by average (few are 0% actually, what a shame...). In ThoughtWorks, this will NEVER happen, everyone here strictly follows process of BDD or TDD, i.e. test code first!, and the CI ensures the test coverage to reach 100% otherwise will fail to complete, in additional, the static code analysis tools such as and JSlint will help to improve the code quality! Yeah, I love and deeply believe in all of those stuff, I am confident with the code I've written thus I can sleep well! And so does other teammate:)
Indeed! People here are smart! Even beauty programmers:)! I didn't overstate, many people here are really passionate in developing, coding and innovation! Thinking rapidly, typing fast, elegant/scalable solution, programmer's jokes and flying shark:).
Xi'an - the capital of 13 Dynasties
Xi'an is an amazing city, so many historical buildings, comfortable climate and delicious food. I visited Terracotta Army, Tang Paradise, Giant Wild Goose Pagoda, (I posted few photos above and a whole album was shaed on my Skydrive), and I definitely will visit more:)
How and why I work for ThoughtWorks
In fact I nearly decided to stay with my family in Shanghai and abandoned this opportunity to work for this great company, my "little tiger" is only 15 months when I received the offer. But @盈盈水天 talked with me over the phone for 10 minutes and sent me an convictive and passionate email, after I reading her email I decided to consider more, I thought and investigated for one whole day, I read links listed below:
- ThoughtWorks Chosen Among Best Companies to Work For in 2011-2012
- Why work at ThoughtWorks
- ThoughtWorks Overview
And I summarized attractive points of ThoughtWorks for me below:
- I am eager to learn and improve! I failed to find a satisfied platform for me to learn & improve in SAP and HP. I believe ThoughtWorks is the great platform!
- Real geek culture. I've experienced this during my interview. Pair programming, sharp interviewers, the light with programming APIs integrated with CI!
- Many opportunities to travel. I believe "You can learn more by travelling a thousand miles than by reading a thousand books".
- Pursuit of excellence and social impact. The former is my creed and the later is my goal in my future career!
- Happy, just happy! Because of above reasons, I will be happy everyday, I will enjoy working here, nothing is more important than this!
So eventually I decided to follow my heart and take the challenge! Now one month pasted, I think this is an absolutely right decision! I would absolutely regret if I missed it!
I think I've finally found my "organization" in ThoughtWorks, I feel really excited and happy to be a ThoughtWorker! I love to work, learn and improve with colleagues here! I wish I could achieve my dreams here, and I wish I could contribute my effort to ThoughtWorks in the near future!
At last, my special thanks for my dear wife, my decision led she cannot live with our "little tiger" and me for 6 months, life for her would become much harder without we two! Whereas she agreed, understood and supported me to follow my heart, I couldn't appreciate more! Honey, to the world you are an ordinary person, but to me you are my world! I promise I will work hard, try my best, and compensate you:)