It has been a nothing short of life-changing experience. As a matter of fact, it is with these changes that I have decided that in order for me to push even further, I will have to go out and look for good opportunities that can help me, rather than waiting for them to happen. As I going through the projects, my expectation on what I can do on the project has changed dramatically.
When I first joined, I was just happy if I can merrily write my tests, be happy about the 40-hour week and that the CEO is not trying to cash in one million dollars every quarter when the company stock is not going anywhere (like some company that I have worked for). Now on my last day, I have found myself comfortable coaching agile software development and influencing project management. I have experienced all the things a senior developer can do in a project, and even have had a short taste of being an IM and PM. I have been to China, twice, to lead projects. I have been on more and more discussion and presentations that involve more than "TDD" or "patterns". I am even pulling an effort with several others right now to write a book that we hope can be published.
Like my fellow Borlanders showing me the way to be a good developer, my fellow ThoughtWorkers have helped me understand what it takes to have a success project, besides technical execellence. I created this blog for my experience in ThoughtWorks. I have grown fond of it over the time and I am going to keep it up for my experience in applying agile practices.
So to wrap it up:
First several books that I read as a ThoughtWorker:
- Enterprise Application Architecture
- Domain Driven Design
- pragmatic Project Automation
- Tipping Point
- Blink
- Build to Last
- Blue Ocean Strategy
- Crystal Clear
Things I enjoyed doing in ThoughtWorks:
- Talk to Roy (don't worry about subjects)
- Meet old timers, they will show you why the idea that "employee managed company" has a chance in ThoughtWorks. (If someone was surprised that you were not one, it is a compliment)
- Meet at least one ThoughtWorker from each office from other country, especially the noisy ones.
- Request traveling to other country for a project.
- Tell Obie that ruby won't fly because it does not have an IDE like IntelliJ and it is not type safe. (well, maybe not anymore since he has been fighting that battle for a while and getting very good at it)
- Tell Hammant that you love Spring
- Buy beer around the table and ask for airplane takeoff and landing stories
- On beach for more than two weeks
- Travel weekly with connection flights each way.
- Stuck in an airport for a delayed flight for 7 hours
- Stuck in an airplane on the ground for 3 hours
- Saying goodbyes
- On your last day, be notified that you won't be covered by medical insurance anymore (So much for chilling out before the next job), even though you have accumulated over four weeks of vacation, and you could technically take your vacation before you send in the two weeks' notice, getting covered and accumulate additional vacation at the same time. The reason? You are not worth risking the liability anymore, now that you are not going to make money for the company and all. (Not in that word but I get the message)
- Learned Dvorak
- Created open source projects: http://www.shaneduan.com/opensource.html
- Read books