twimes

24
THE TWIMES OF INDIA ThoughtWorks News & Views in a Nutshell A decade of excellence Saturday October 15. 10. 2011 T interests, we’ve put together a bunch of articles and thoughts, that we hope you will all enjoy. ThoughtWorkers, both from India and abroad, have written about things as varied as test load balancers, Agile planning, life experiences and random musings, which prom- ise to entertain. Don’t forget to check out what our all-knowing Agony Uncle has to say! Thank you for being here to celebrate the wonderful ten years that have passed, and to hope that a more fabulous decade is ahead of us. Have a good read, and don’t forget to party your socks off! TWI has come a long way since 2001. From bringing Agile to India, to creating one of the most enviable work environments, TWI has really revolutionized the software industry in its own right. We take great pride in the fact that every TWorker is unique; each one is opinionated, innovative & wildly obstinate. This variety of personalities has come together to make us what we are today. To cater to this vast range of For internal use only Vignettes of TWI Growth and Leadership - Matt Simons Editor’s Desk were two main reasons for this. One was that as a new entity, it was hard to imagine what TWI would someday become - those first few years had the distinct feel of an experiment that may or may not work out. You could probably argue it still feels that way sometimes. The other reason I struggled to provide guidance to people searching for growth was that I myself was trying to answer that question - being relatively early in my career it was difficult to tap into the needed perspective to provide good advice. Recently I received an email announcing some new leaders in one of the offices. I was pleased to recognize most of them as long-serving TWers, many of whom had asked me how they could grow, long ago. That got me thinking about how I would answer 'the growth question' today, after observing the growth paths of many current TWI leaders and racking up a few more years of experience myself. Here are some things I think matter a lot: Patience. Leadership traits develop over a series of substantive experiences with different teams and a variety of client or internal challenges. Each experience could take 6-12 months to play out and it takes a number of them before even the sharp- est cookie can reliably get out of the details and start to recognize patterns. Many of the current set of TWI leaders have been through 6-8-10 years of growth experiences at TWI. While there are excep- tions, planning for growth on that timescale surely sets the most reasonable expectations. Resilience. In almost all cases, the trajectory towards TW leadership is not linear and includes a measure of negative feedback if not outright failure along the way. When we are at our best, TW is a fantastically forgiving environment that allows people to totally blow it and (as long as they genuinely learn from the experience) recover and return stronger. Going through that fire of failure tempers some but melts others. Leaders don't melt. Balance. Consulting at ThoughtWorks is an intense experience that requires constant attention to the tensions between. TW/Client/Self. Too much focus on any one at the expense of the others is often harmful. The leaders of today have figured out how to think through each situation and strike the right balance for the context they are operating in. en years ago I moved to Bangalore to help start TW India. What was originally an intent to spend a few months grew into a rich and rewarding 10+ year relationship (exceeding even my marriage in longevity!). One of the things that always strikes me about working with TWI and TWIers is the intense interest in growth and devel- opment. There is a strong theme running throughout the organization about taking on new and challenging career opportunities and developing leadership skills. Of course, as with many things in India, you can also find many counter-examples (people happy to be excellent at what they do and skeptical of anything called 'leadership') - - but that is not the point of this article! The point of this article is that I always really struggled to answer people who asked me what they could do to grow their careers at TWI. There Talent. Clearly the talent bar is high at TW, but each of the TWI leaders of today distin- guished themselves over the years by being consistently excellent at something core to our business. Often (but not always) this manifested in demonstrating poly-skilling and an ability to take on a wide variety of roles, whether or not previous experience had prepared them. Stewardship. TWI is a unique and special part of a unique and special organiza- tion. TWI's leaders have always understood that, and have given freely their time, energy and passion to keep that fire lit amongst generation after generation of noobs. They have all been accessible, caring and engaged year after year. I have enormous respect for this, especially given the pace at which we have grown as an organization. It is one of my greatest pleasures to be able to return to TWI year after year and see folks I remember as wide- eyed grads or energetic newbies achieving that growth that many of them were searching for. I look forward to meeting future generations of TWI leaders at the 10th Anniversary Away Day. Con- gratulations and Happy Birth- day TWI! 1 0 t h Y e a r A n n i v e r s a r y A Decade Of Excellence

Upload: rajiv-mathew

Post on 29-Nov-2014

661 views

Category:

Business


3 download

DESCRIPTION

 

TRANSCRIPT

  • 1. Saturday October 15. 10. 2011 THE TWIMES OF INDIA ThoughtWorks News & Views in a Nutshell A decade of excellence 10 Editors Desk th nniversary rA TWI has come a long way since 2001. From bringing Agile to India, to creating one of the most enviable work environments, TWI has really revolutionized the software industry in its own right. We take great pride in the fact that every TWorker is unique; each one is opinionated, innovative & wildly obstinate. This variety of personalities has come together to make us what we are today. To cater to this vast range of A Decade Of Excellence Growth and Leadership T en years ago I moved to Bangalore to help start TW India. What was originally an intent to spend a few months grew into a rich and rewarding 10+ year relationship (exceeding even my marriage in longevity!). One of the things that always strikes me about working with TWI and TWIers is the intense interest in growth and development. There is a strong theme running throughout the organization about taking on new and challenging career opportunities and developing leadership skills. Of course, as with many things in India, you can also find many counter-examples (people happy to be excellent at what they do and skeptical of anything called 'leadership') - but that is not the point of this article! The point of this article is that I always really struggled to answer people who asked me what they could do to grow their careers at TWI. There For internal use only Ye a interests, weve put together a bunch of articles and thoughts, that we hope you will all enjoy. ThoughtWorkers, both from India and abroad, have written about things as varied as test load balancers, Agile planning, life experiences and random musings, which promise to entertain. Dont forget to check out what our all-knowing Agony Uncle has to say! Thank you for being here to celebrate the wonderful ten years that have passed, and to hope that a more fabulous decade is ahead of us. Have a good read, and dont forget to party your socks off! - Matt Simons were two main reasons for this. One was that as a new entity, it was hard to imagine what TWI would someday become - those first few years had the distinct feel of an experiment that may or may not work out. You could probably argue it still feels that way sometimes. The other reason I struggled to provide guidance to people searching for growth was that I myself was trying to answer that question - being relatively early in my career it was difficult to tap into the needed perspective to provide good advice. Recently I received an email announcing some new leaders in one of the offices. I was pleased to recognize most of them as long-serving TWers, many of whom had asked me how they could grow, long ago. That got me thinking about how I would answer 'the growth question' today, after observing the growth paths of many current TWI leaders and racking up a few more years of experience myself. Here are some things I think matter a lot: Patience. Leadership traits develop over a series of substantive experiences with different teams and a variety of client or internal challenges. Each experience could take 6-12 months to play out and it takes a number of them before even the sharpest cookie can reliably get out of the details and start to recognize patterns. Many of the current set of TWI leaders have been through 6-8-10 years of growth experiences at TWI. While there are exceptions, planning for growth on that timescale surely sets the most reasonable expectations. Resilience. In almost all cases, the trajectory towards TW leadership is not linear and includes a measure of negative feedback if not outright failure along the way. When we are at our best, TW is a fantastically forgiving environment that allows people to totally blow it and (as long as they genuinely learn from the experience) recover and return stronger. Going through that fire of failure tempers some but melts others. Leaders don't melt. Balance. Consulting at ThoughtWorks is an intense experience that requires constant attention to the tensions between. TW/Client/Self. Too much focus on any one at the expense of the others is often harmful. The leaders of today have figured out how to think through each situation and strike the right balance for the context they are operating in. Talent. Clearly the talent bar is high at TW, but each of the TWI leaders of today distinguished themselves over the years by being consistently excellent at something core to our business. Often (but not always) this manifested in demonstrating poly-skilling and an ability to take on a wide variety of roles, whether or not previous experience had prepared them. Stewardship. TWI is a unique and special part of a unique and special organization. TWI's leaders have always understood that, and have given freely their time, energy and passion to keep that fire lit amongst generation after generation of noobs. They have all been accessible, caring and engaged year after year. I have enormous respect for this, especially given the pace at which we have grown as an organization. It is one of my greatest pleasures to be able to return to TWI year after year and see folks I remember as wideeyed grads or energetic newbies achieving that growth that many of them were searching for. I look forward to meeting future generations of TWI leaders at the 10th Anniversary Away Day. Congratulations and Happy Birthday TWI! Vignettes of TWI
  • 2. The TWimes of India ThoughtWorks News & Views in a Nutshell Identify the ThoughtWorkers below 02 (answers on the last page) 1 2 7 8 9 10 11 12 13 14 15 16 17 18 20 21 23 24 19 3 4 22 5 6 If you were to direct an ad for Which celebrity would be the ThoughtWorks, what would ideal brand ambassador for be the tagline? ThoughtWorks and why? Habib - "Here is the entire ad. [In a TV commercial] Jez Humble: Are you troubled by your CI glowing red in the middle of the night? Martin Fowler: Do you experience feelings of dread when you look at your codebase? Ajey Gore: Have you or your family ever seen a spook, spectre or ghost? Roy: If the answer is "yes," then don't wait another minute. Pick up the phone and call the professionals... Roy, Jez Humble, Martin Fowler, Ajey Gore: ThoughtWorkers Roy: Our courteous and efficient staff is on call 24 hours a day to exorcise all the ghosts from your code! For internal use only Roy, Jez Humble, Martin Fowler, Ajey Gore: We're ready to believe you. [lifted shamelessly from Ghost Busters :P]" Sameer Deans - We deliver better than even the dabbawallas Anand Krishnaswamy - Taut Woks!? Hot Works!? Haute Walks!? Whatever the pizza delivery guy hears, always repeat ---- drum roll in the background ---- ThoughtWorks! [Later just give him the directions] Gurpreet Luthra- "We hire those who are the best, and depend on them to do the rest." Habib - "Bruce Willis. Like Roy, he instills confidence in every role. We know that Bruce Willis will destroy the villains and quip his way through. Also like Roy, he is bald." Sameer Deans - Tom Cruise, because we make every project into Mission Impossible! Mahadev Prasad - Upendra, since he gives feedback without filter. Srijayanth - "I think Kashi Reddy sort of fits the bill. Oh wait, celebrity you say... TN Seshan perhaps...he'll certainly be taken seriously when he talks about three pillars. Kaushik Ghosh Spiderman, since we seem to be into Web big time! Sri Prasanna K - Guy Kawasaki. That dude knows how to do take a company from deep down to the top. Manish Krishnan - Barack Obama. Because Agile is about embracing change. Anand Krishnaswamy Julian Assange. He is the reason we don't have any documentation! ;-) Aman King - eh? We already have Roy, don't we? No one represents "ideal" TW better than him. Vignettes of TWI
  • 3. The TWimes of India Thinking Derek Johnson ThoughtWorks News & Views in a Nutshell The Art of Persuasion: A helping hand from sales Elena Yatzeck I f a man builds an ugly & unstable house, would you put his tools on trial? Or would you analyze his foundation, his use of shortcuts, the team he had helping him build and his inability to see the big picture while building? There are many things involved; yet as people we boil so much of our existence to the religion or philosophy that our neighbor or we choose. Is religion alone enough to build the person? Or does each man still have to make righteous decisions when alone? Surround yourself with people determined to help build and not destroy you. I don't want to preach; I just hope we can elevate the conversation beyond dogma and see each other as works in progress. We need to recognize that tools like religion or philosophy can be used for both good and evil, depending on the intent of the "builder". STOP blaming the hammer for EVERYTHING that's wrong with the house! Im just venting; I'm challenging my own views; and I thank all of you who challenge me to THINK! Uttam Kinis Facebook status: BCCI gives a crore to each player. 50 lacs to each support team member. 25 lac to each national selector. Going by that, it owes me at least a hundred bucks for supporting the team and wearing the team t-shirt to work For internal use only 03 I recently stumbled onto this really great article from Steve Martin (not the comedian) in the Harvard Business Review on "Personality Traits of Top Sales People." The article had some surprising revelations, most of which I realized could end up helping almost all of us in our daily lives in one way or another. It's a quick read, so do please run off and read it. But I had a couple of thoughts about how Steve could help the rest of us out. Professional sales people are role models to all of us in at least one crucial thing: the ability to persuade. Sales people get their targets to do two very hard things: make a decision, and commit money to be spent on that decision. In our lives, we may feel we have had a "big win" if a decision maker we work with tentatively agrees to go along with a suggestion we have made for a while on a trial basis (while planning to disclaim all knowledge if it goes south), so long as it doesn't cost anything. Now picture that deal if it had been handled by a real professional: the decision maker would have committed to the idea in the budget! Perhaps a supportive email would have been sent! Hands could have been shaken. That's what I'm talking about! How do we get there? Surprisingly, to me (sorry, professional sales friends), it's not by being ostentatious or even friendly. The top traits are: 1. Modesty 2. Conscientiousness 3. Achievement Orientation 4. Curiosity 5. Lack of Gregariousness 6. Lack of Discouragement 7.Lack of Self-Consciousness. Actually, when I compared this list of traits to the personalities of people I know are top sales people in my company, I realized they are very true, but I hadn't recognized them before. So thank you HBR! Additionally, though, I had a couple of thoughts about this, in terms of persuasion you or I might need to do on a daily basis: If you are a person who likes to get her way, (and who isn't?), then here is a behavior strategy to cultivate in a work setting: internally, be a man or woman of steel. Determine your goals in a way you can measure (brush up on S.M.A.R.T. goals), and then pursue those goals doggedly, sloughing off discouragement and self-consciousness. This advice encompasses traits 2, 3, 6, and 7, above. But externally, be modest, quiet, and somewhat aloof, coming out of your shell only to ask a lot of questions (1, 4, and 5, if you're keeping track). This combination of behaviors tracks remarkably well to rules of thumb given to consultants when dealing with clients anyway. It is the business of a general to be quiet and thus ensure secrecy; to be upright and just, and thus maintain order. In particular, understand that self-deprecating humor may not be the thing here for you or for your client. I don't mean to be sexist, but I think especially of my women friends with this point. Any of us who try to be friendly and non-scary as our primary communications mode may want to rethink this strategy in a work environment where we hope to be persuasive. If we are trying to achieve anything in particular, we need the respect of our clients (or coworkers), not their friendship. Martin says that you need to keep your emotional distance to stay in control: "Dominance is the ability to gain the willing obedience of customers such that the salesperson's recommendations and advice are followed. The results indicate that overly friendly salespeople are too close to their customers and have difficulty establishing dominance." Lastly, be like Tigger (from Winnie the Pooh); don't be self-conscious; learn to bounce. As Woody Allen famously said, "80% of success is just showing up." Stay focused on the goal, and don't let small setbacks get in your way. Because selling is what Tiggers do best! Why Delhi Belly (the movie) rocks Rajiv Mathew 1. There is no interval. The story is seamless and captivating. An interval would have spoilt the carefully built up tempo. 2. Slick editing. Every scene is vital for the movie to proceed further. Aamir has gone into the details as far as editing is concerned. 3. Great songs. Also no song is forced into the movie. Bhag DK Bose is already a cult favorite! 4. Great sequences like the Burkha robbery, Orange Juice & Ja Chudail dance provided the zing. 5. Side characters like Disco Fighter, house owner & Kathak dancers add the icing on the cake. Vignettes of TWI
  • 4. The TWimes of India ThoughtWorks News & Views in a Nutshell 04 Introducing Agile Planning with Apples, Chikoos, ity calibration, we had one Raspberries, Jackfruits and Watermelons iteration whose velocity was JK Werner JK Werner is a BA/IM, who currently works out of London. He spent a considerable time in India last year as a TWU trainer. learnt while doing the relative sizing: L earning a new concept or process works best when done in a simple situation. Once you have mastered the process, you can apply it to more complex situations. I've made the mistake before of introducing relative sizing and velocity calibration to a group with the actual stories that were going to be used for the project. Though we've managed, there has always been a challenge of re-explaining the process throughout and pausing to discuss edge cases. In a recent inception, I decided to introduce the concept first with an abstract example - fruit. I had worked this through in my head, and was happy that it would introduce the basic concepts and make the actual relative sizing and velocity calibration much easier. I was right in that sense, but it also did much more. We were able to see many real world examples and pitfalls come to light which made the actual relative sizing and velocity calibration process much easier. Relative Sizing To start with I had written about 30 different pieces of fruit down on story cards. Rather than relatively size the stories based on the effort it would take to develop them, we were going to relatively size the fruit based on the effort to eat them! Here are some of the lessons For internal use only The Technical Story Things were moving along well and the team was making good progress through the sizing of the fruit. Then came the kiwi... someone commented, "We need a knife". I asked them what they should do. The team wanted to raise a story to buy a knife. I asked what would happen if they played the knife story, and then the business decided not to play the kiwi story. They quickly agreed that if we never played the kiwi, buying the knife would be a waste. This led us to making an assumption that the kiwi story would include buying a knife, hence more effort. When we later hit the pineapple story, we assumed that we already had the knife. There was a brief discussion about what happens if the kiwi is deprioritised and the pineapple is not, and everyone was comfortable that the assumption of already having the knife would then be wrong and we would resize. The learnings: Do not create stories that will introduce technical infrastructure. Include the effort to do this in the first story that needs it. If multiple stories need it, make sure to assume the one that will be played first and assume in the others that it is already in place. If those assumptions change, you resize the stories. The Unknown Story There were two other fruits that caused us trouble. The jackfruit and the dragonfruit were both unknown to the team. The jackfruit was easier to resolve. One of the team members knew what it was and was able to describe it in enough detail for the team to size it relatively to the other fruit. The dragonfruit was much harder. Soon, someone got an iPhone out and looked it up on Wikipedia. The learnings: The team should support each other by sharing knowledge about the stories, allowing them to come to an agreement on the size of the story. When the team doesn't know the answer immediately, the BA should go away to discover the information. Set the unknown story aside until the information is found. Capture any assumptions that you make. The Duplicate Story Though we didn't do this at the time, I've since realised that you could very easily include duplicate stories in the exercise. Depending on where you are from and where you have travelled, finding fruits with multiple names may be a challenge. Two examples are: carambola & starfruit, and chikoo & sapodilla. This would be a nice way to set everyone's expectations that there will be duplicates and to keep an eye out for them. Velocity Calibration After the relative sizing, we moved on to velocity calibration. We decided on a team size of two pairs and decided that we would have 4 iterations of 15 minutes each. We asked the team to select the different fruits that they felt they could eat in each iteration (with the assumption that they had a chance to digest their fruit between iterations). Besides learning the basic concept, we also encountered what happens when you try to include your Too Big stories. The Too Big Story As we were doing the veloc- quite a bit bigger than the others. No prizes for guessing which fruit was included in that iteration. After a bit of a discussion it was easy to see that we shouldn't include the watermelon in the velocity exercise. In fact we realised that the watermelon could be broken down into smaller pieces - think of the number of times where you have seen a half or quarter of a watermelon for sale in the produce section... The learnings: Exclude your Too Big stories from velocity calibration. Break your Too Big stories down, resize them and include the smaller stories. Summary: When we repeated the exercise with real stories, the BAs and SMEs were aware that they needed to answer questions on the unknown stories, we excluded the Too Big stories from the velocity calibration, and the team was diligent at capturing assumptions. Numerous times I heard someone say "we need a knife for that story"! Most importantly, though, the entire team had done the fruit exercise. SMEs, PMs, BAs, QAs and Devs were familiar with the process before going into the actual sizing and calibration. For the devs, the benefit was obvious, but the understanding from the other members of the team was invaluable. Even though the other team members recognized that they could no longer participate with the exercises, they were engaged and involved throughout. They took turns facilitating, answering questions when they could and rarely challenged what the developers decided! What is feedback in Hindi? Khilao piche se! Hahahah - Rajaram Mallya Vignettes of TWI
  • 5. The TWimes of India ThoughtWorks News & Views in a Nutshell 05 TLB: Rocket boosters for your build JJ, a chemical engineer by qualification, has been a developer at ThoughtWorks for over four years. He currently works with Studios out of Bangalore 2, on the Go team. Janmejay Singh Ruby testing tool) among source, BSD licensed tool that splits the load of test execution to make several chunks(that we call partitions), hence allowing your tests to execute in parallel, across several physical machines or VMs, with each one executing only one small chunk(one partition). M ost devs and testers would agree that keeping code well covered with automated tests is an essential recipe for driving a software project to success. Such a test-suite prevents software regression, helps flush out the design, allows collective ownership of complex and logic-heavy code, acts as a functional and executable documentation for new project members, allows easy code refactoring and clean-up as well as frequent releases - the list could just go on and on. However, the number of tests a project has is usually directly proportional its features, complexity and maturity, and the numbers for these quantifiers are always headed upwards. Obviously, as tests increase, the time it takes to execute the suite goes up too. This is especially true for Integration and Functional tests because these typically take longer to execute than Unit tests. At some point, teams decide not to run these tests for every commit because running the whole suite starts to take way too long. I dont intend to enumerate bad things that can happen to your project once it starts slipping down that slope, so lets step back and consider a better alternative. So you have a big test suite that takes over 10 minutes to execute and you wonder if there is anything you can do to help make it faster? Here is something we have been working on for over a year now and we call it TLB (an acronym for Test Load Balancer). It is an open- For internal use only So heres what the tool can do for you: Say you have a project with a thousand test-suites that takes about ten minutes to execute. By changing a few lines in your build script, and using four more computers to deploy the job, TLB can help you bring the total time down to 2 minutes. We call this timebalancing. It partitions your test in such a way that each partition takes an equal amount of load in terms of time. This implies that all partitions take almost the same time to complete, and given that each partition only runs one-fifth of the whole, it takes only one-fifth the time, which is 10 minutes/5, which brings us down to 2 minutes. Similarly if you have a test-suite that takes 5 hours, it can be cut down to just 20 minutes with 15 machines to parallelize it. Lets understand what TLB does not do. It does not launch multiple processes across machines. It does not invoke your build task nor does it manage machines for you to run your build on. There are very good tools around that can help you do all of that. You can use the tool of your choice to invoke build task, i.e. ant test, rake spec or buildr test etc. For instance, the launching of processes across different physical machines at the same time can be offloaded to a CI server (like Hudson or Go) or a command-line driven tool like Capistrano or Cluster-SSH. Once the build task is triggered on multiple machines, each one of these processes executes only a part of the whole set of tests. By design, TLB is really non-intrusive; all that changes is a few lines in the build script of the project. other features. The only other piece that you need in addition to invoking your build task is a daemon that we call the TLB Server. This is a repository where data captured while running tests (like running time, result etc.) is stored. Some algorithms (eg. time-based partitioning or failed-first orderer etc.) depend on such data. TLB can work against an instance of either the TLB Server or the Go Server. TLB server is a part of the TLB project and is available to download. You can download the latest TLB distribution from http://code.google.com/p/tlb/ downloads/list. Ruby support is available as rubygems (namely tlb-testunit, tlb-rspec2 and tlb-rspec1). The archive named setupexamples bundles tiny projects we use for demonstration purpose. Each project is a unique language, testingframework and buildframework combination and has a shell-script named run_balanced.sh that can be executed to have TLB make partitions of the test-suite and execute them serially, one after another. The shell script, in short, just starts the TLB server and executes test-task with the appropriate environment variables set. In a real world situation, each one of these partitions would be executed on different machines/process-trees in parallel. Multiple partitions of a build obviously need to use the same TLB server instance, which means the TLB server must be reachable over the network from all machines that are to execute partitions of a projects test suite. One TLB Server instance can be shared by several projects or multiple builds of the same project. This means all projects and builds can share a single organization-wide or office-wide TLB server. TLB server binds to port 7019 (unless overridden), so youd want to unblock that port for inbound traffic on any firewalls/filters on the server machine. (Similarly youd want to unblock it for outbound traffic on machines that are going to execute the partitions). I emphasize this here because sometimes firewalls can be really nasty and confusing. The Java support library in the latest release of TLB (version 0.3) supports popular Java build tools like Apache Ant and Apache Buildr. The Ruby library bundles support for Rake. On the testing framework side, TLB has support for widely used Java testing tools namely JUnit and Twist, while the Ruby library bundles support for two of the most popular testing frameworks, Test::Unit and RSpec (both 1.x and 2.x). The next TLB release (0.4) will include support for Maven(a Java build tool) and Cucumber(a Note: Because TLB does not have the necessary data to partition tests accurately (using a time-balancing algorithm) when the very first invocation is made, it uses a count-balancing algorithm, you need to run the script twice to actually see if it is time-balanced. Expect this behaviour on your actual project as well. The distribution archive named tlb-complete bundles all TLB artifacts (java support library, TLB server, alien support library, setupexamples etc). Other archives bundle the subset of the whole. Please refer to TLB website for exhaustive documentation and other details. Should you have any questions, featurerequests, feedback or suggestions related to TLB, feel free to reach us. So go ahead give your test-suite rocket boosters and watch it fly by. Happy TDDing! Vignettes of TWI
  • 6. The TWimes of India ThoughtWorks News & Views in a Nutshell Price, Value, Perfection Age Of Empires Strategies by ThoughtWorks Gamers Pankhuri Agrawal Kiran Prakash So... You have an image in your mind. That perfectly clear image. That one perfect piece of art. Wherever you go, you subconsciously compare every artifact with that image. Mostly, nothing comes near it. You smirk. You sigh. You carry on. Then, behind a showcase of an odd shop... you see something that resembles that image. You can only see it from few angles. But it looks like a match. You feel curious. Even excited. You enter the shop. You ask for the price. Of course its going to cost you more than youre willing to pay! After all, it was the only artifact so far that looked promising. What do you do? Do you buy it? You say, let me have a closer look... When you do take a closer look, seriously consider buying it, you start seeing the mismatched shades, unexpected curves. You realize that the so called clear image you had in your mind was not clear enough. You overlooked small details while imagining it which are quite surprising in reality. Did you want that particular color to be there? Or is it spoiling the way youd like it? Do you buy it? Do you not? It depends on both, the price and the value of the artifact. Are you afraid of the high price? Or is the perfect image so valuable to you that nothing less is acceptable? "The best part about the movie BodyGuard is the one liners on the tee shirt of the fat guy" - Ankit Dhingra For internal use only S ince the fall of the Atilla Empire circa 20042005, some of the lesser kings have been fighting hard to protect the TW-AOE Empire. Here are some of the commonly observed AOE strategy patterns used by my fellow ThoughtWorkers. The Storm Patrol : This strategy is favored by Storm AKA Ketan. While attacking, use up all your initial economy to make an army as large as you can and let them scout around the wonder base. Specifically near the gates, so that none of the other defenders can enter the wonder base. The Phil Entropy: This one's straight from the barracks of IIT Roorkee, practiced religiously by our philanthropic Philosopher AKA Ankur. Remember/practice a list of AOE shortcuts which far exceeds your Resharper/Intellij ones; use them to create an economy which is at least 5 times that of your nearest rival at any given point. Donate resources liberally among your teammates during the battle and pray that they play half as well as you do. J(F)ake it : Pioneered by The King Jake AKA Jake. Seconds before the game starts, quickly change your civilization from 'Random' to 'Koreans'. 80% of the time your rivals are busy adjusting their headphones or stuffing the last bit of Haldiram's Matri into their mouth and they wont notice. And do shout out the obligatory phrase "Oh sh**!! I am Koreans again!! once the game starts. Make some onegars and spend the rest of your time killing harmless villagers. The Gameover Escape: Employed successfully by Gameover AKA Chetan Venkatappa. If you see a thick forest outside the wonder base, make a siege onegar and few Trebs and hide it deep inside the forest. Launch some fake attack and let the enemy wipe you out (the idea is to drag the defending army out of the wonder base) . Meanwhile quietly clear a small patch through forest and unpack the trebs on wonder, while your enemy is still busy feasting far outside the wonder base. The Badmash Defense: Invented by Badmash AKA Mujir. It works really well when you are defending with Turks. Build a wall around the wonder and put some 10 cannon pushers behind it, when the enemies attack with their Trebs, the cannon pushers under the protection of the wall will take down the Trebs easily with their +2 range. The Frag's Bait: This has been proven to be working wonderfully well when Storm's in your rival team, Pioneered by Bob AKA Fragbait. While the other team is busy defending the wonder base, send some army (preferably huskrals as they are good against buildings too) to your rivals base. Put them on Aggressive stance. Once they bring their economy to dust, go and calmly takedown the wonder. If people notice your heroics after the game give a sheepish smile and act as if it was an unintentional. The Persian Attack: Favored by yours truly, works well when attacking with Persians. Just focus on building a massive economy (using 150-160 villagers, leave creating army to your 06 teammates) when theres about 100 years left, pump some 30-40 war elephants using 3-4 castles, and beg your teammate to open up a gate/wall on a side of wonder base where there is least activity. Take all your elephants and click on wonder, and pray that your enemy dont have any halbedier left. And yeah some of the classics like 'Jansankhya gambit'' and 'ThunderBird TakeOff'' have stood the test of time and are still being practiced religiously. Statue! The way to meditation Manoj Tharayil J ust try this out! During any activity, just freeze and be still for 100 seconds. This is a great way to understand your inner thought processes. As children, we used to play this game and now we seem to have forgotten it without realizing its intrinsic value. Many people have recommended the "statue" method, one of them being Osho Rajneesh. He is generally "misguided", in my opinion. But nobody can disagree with ALL the views of another person. But I do agree with him about the statue method of mediation. Another way is freezing during any cardio exercise, like jumping up and down, or running. The contrast of what you are doing is important. The contrast between physical activity and complete absence of physical activity is what leads to a state of meditation. Vignettes of TWI
  • 7. The TWimes of India ThoughtWorks News & Views in a Nutshell Social Networks Martin Fowler is our Chief Scientist and a popular Twitter celebrity. Martin Fowler I wasn't cool enough to be in the first wave of invitations, but I have now got onto Google+, the Maybe Next Big Thing in social networks. It seems somewhat appropriate to mark this Momentous Event by writing a little bit about how I've used social networks so far, and some uninformed speculation about the impact of Google+. My initial reaction to social networks was suspicion. At heart, I'm a misanthropic hermit with enough intelligence to put me on a veneer of sociability. So I was never tempted by the early social networks like MySpace, and I still regularly refuse any requests to LinkedIn. I'd kept half an eye on Twitter, but was slow to get involved. Someone registered the name @martinfowler and started feeding my blog posts into it. I was worried that it may be a squatter, but it was actually a nice programmer who happily handed over the account when I asked for it. Eventually my colleague Doc List got me going on Twitter and now it's a regular part of my life. Shortly afterwards, I joined Facebook too. I use the two networks quite differently, which is partly the function of my fate of being a geek celebrity. Twitter is a public facing stream, where anything I tweet goes out For internal use only to 35,000 followers. With Facebook I only link to people who I know personally. At a simple level I can think of Twitter as my professional side and Facebook as my social side but that's a bit of a stretch since many of my friends are also professional links. Twitter is a fascinating social construct. It's a mix of features that I can't imagine someone would design up-front [1]. The 140 character limit is one of those silly technology fiats, yet it works well. As Elliotte Harold tweeted of Google Buzz: "Favorite Buzz feature: I'm not restricted to 140 chars. Least fave Buzz feature: everyone else not restricted to 140 chars :-)". Similarly the asymmetric follow (35,000 follow me, but I only follow 300) coupled with mentions (which get my attention) works better than I would have ever thought if someone described it to me. All in all, it allows me to keep a good sense of connection without drowning in the flood of text. Almost all the people I follow on Twitter are people I know personally. I read pretty much all the tweets from people I follow or people who mention me. I check the stream pretty regularly, several times a day most days. I post a few times a day when at home, a bit less when travelling. I choose my public posts carefully, conscious of the fact that I have so many followers. I try to post things that are interesting to my perception of that crowd. Mostly these are links to interesting articles, which naturally include anything I write. I reply a bit more casually when I see things from friends or mentions. I find Twitter a useful source of web links to read which supplement my regular blog feeds. I also enjoy the feedback on my own contributions that appear whenever I tweet a new post. With Facebook, I know that people who see my posts are only people I know reasonably well. The other difference is that my non-geek friends don't use Twitter but many do use Facebook. I don't check Facebook so often, usually only once or twice a day. My posts there don't include geek stuff, mostly they are either interesting social things we are doing. One issue for me is how to deal with people who are on both services. My approach is to almost never post the same thing to both places, along the geek/social divide. But several of my friends copy all posts to both services. I'm still unsure how to deal with that, I could block them on Facebook, but then I'd miss some conversations. I use a consistent avatar photo on any site that I use. People are used to recognizing faces, so I think it's only reasonable to use a regular face photo as an avatar. It's frustrating when someone posts and I can't remember who it is because I haven't learned to match their face to their name yet. [2] Overall I've come to be very glad of both services. The nature of my life means I have friends all over the globe and it's good to keep some low-level regular contact with them. I was never one for sending off emails, and have always disliked phone calls. Posting short messages about what we're up to work well for me. So how will Google+ fit into this? Of course I don't really know; there's no sensible way of predicting the outcome. The question for me is whether Google offers something that the current Twitter/Facebook combo does not. From the small amount of use I've put it to so far, it looks well put together. Circles seem to me to be a very useful feature that matches how I see most people's social interactions. [3] (Although as George Dinwiddie pointed out remember that Google (and Doubleclick) are in all your circles.) On the whole I'm very happy with Twitter and will need a lot of persuading to shift off it. Facebook, I'm less excited about and could easily see me moving. The circles notion could be just right in that context. But the key issue here is that it doesn't matter what I think or do, it's what all my contacts do that counts. I mostly have a 07 Facebook account because people I want to keep in contact with have a Facebook account. If they don't move to Google+ I'm staying with Facebook even if Google+ is nicer. That's why Google+ has a huge mountain to climb, especially since I don't want to check Yet Another Social Network. I suspect there may only be room for one of Google+ and Facebook. So far this makes Google+ only marginally interesting to me. It's rather like Wave was - a cool idea but of little use if nobody else is using it. What may be the difference is tying in with Gmail. I always got the sense that the Wave and Gmail teams weren't on speaking terms; hence their software never seemed to be either. Google+ allows you to link to people who aren't on Google+ but do have your email address, your posts go to these people as email. I could do with this already for some non-Facebook friends, and it could be an important booster to getting people to use Google+. In general there seems to be a determination with Google+ to tie in with other Google services. This may be the lever they need to shift Facebook, other than their obvious advantage, but it will still be a big challenge. [Footnotes: 1: I'm sure that somewhere on the web is a really interesting article on the evolution of Twitter's features and their impact on social interaction. When you find it, please tweet it to me. 2: If you do use a face as your avatar, please use full face only (not head and shoulders) otherwise it will be too small to see. Also make sure there's enough light on your face to be able to see it properly at that small size. 3: I've heard some people say that circles are a big innovation. I find that astonishing, surely it's obvious that people interact differently with different groups of contacts? I think the fact that Facebook didn't do this is that they are fixation in their view of the world that people should be public - which also explains their regular missteps over privacy.] Life begins at the end of your comfort zone! - Sri Prasanna K Vignettes of TWI
  • 8. The TWimes of India ThoughtWorks News & Views in a Nutshell Little Law, cycle time & throughput Paulo Caroli w way. At home, I have 12 bottles of whisky at my bar. In average, I finish (and purchase) one whisky bottle every two months. What is the average time each whisky bottle stays in my bar? From the problem statements I can get the following parameters: hile sitting at my dining table I was thinking about a way to explain Little Law, cycle time and throughput. This idea came to mind once I poured myself a glass of whisky. It was the last dose of a Macallan 12 bottle. I removed the empty bottle from the bar, and made a note to buy another one. - The inventory or WIP is 12 bottles. (Problem statement A and B) - Throughput is 6 bottles per 12 months (Problem statement A) - Average Cycle time is 2 months per bottle (Problem statement B) - And the question is the average lead time Problem Statement A: At home, I have 12 bottles of whisky at my bar. I consume and purchase an average of 6 whisky bottles per year. What is the average time each whisky bottle stays in my bar? I will solve the problem in two ways: Problem Statement B: Lets state the problem in another Solution 1: WIP = Throughput x Average Lead Time 12 bottles = (6 bottles /12 months) x Average Lead Time, Portuguese in Gurgaon Shweta Sharma Shweta is a BA who works out of the Gurgaon office. She is half a year old at ThoughtWorks. A few months ago when I joined Thoughtworks, the Gurgaon office was this fledgling office, working out of this temporary building space that did not match up to the rest of the ThoughtWorks offices. When asked about the coolness quotient of Gurgaon by a few folks from the Bangalore office, I struggled to find something that distinguished it from the other offices. Now, however, times have changed and how! Apart from having a swanky, bright and cheerful office space (which will surely set the trend for all the offices to come), Gurgaon suddenly has all these activities and events lined up week after week, which is creating a buzz and making the office a fun place. Now, with the commencement of Portuguese classes in the week of the 15th of August, and with a third of the office attending the class, the office For internal use only is set to be the one TWI office with the maximum number of people speaking a foreign language The excitement generated by the Portuguese class has prompted me to write this article. I would have loved for it to be in Portuguese, but sadly I was not born a super computer with the ability of becoming adept at a language by attending a single class. But in the future, you can definitely expect some blogposts in Portuguese from Gurgaon ThoughtWorkers! It all started with talk of us bringing a major account from Brazil and executing it out of Gurgaon, and a few folks said they would like to learn the official language of that country. Once the idea spread and more people showed interest, we sought Sahana Chattopadhyays help,and got a few people to the office who Therefore, Average Lead Time = 24 months Solution 2: Average Lead Time = WIP x Average Cycle Time Average Lead Time = 12 bottles x (2 months/bottle) Therefore, Average Lead Time = 24 months The formulae used on both solutions are equivalent: WIP = Throughput x Lead time Lead Time = WIP x Cycle Time Here are the definitions for these equations parameters: Lead Time is the time between the initiation and delivery of a work item. Cycle Time is the time between two successive deliveries. Throughput is the rate at which items are passing through the system. WIP - Work in progress; the could take classes, and zeroed in on a language professor from JNU, Professor Manjula Sharma. We sorted out the hows and whens : two classes a week, lasting two hours each, after core working hours. We also thought about the few unlucky people who might not be in office on class days, and setup a video conferencing facility for signees to join in from other place. Not an ideal situation for a language class, but it was the best we could do. The first class was taken on the 17th of August. The students (including Nitin and Mukesh sitting as obediently as eager learners) were all present there in the Parliament room (our big conference room) in anticipation. We were gearing up for a boring rote class with monotone looming large. To our joy, we found that our professor was entirely different from what wed expected. The class started with a small history lesson on Brazil and the Portuguese colonization to help us appreciate the cultural 08 number of work items in the system - work that has been started, but not yet completed. Although these formulae are intuitively reasonable, it's quite a remarkable result. And this is the main theorem in the Queuing Theory, which is also known as Little Law (It was described by John Little in 1961): The average number of work items in a stable system is equal to their average completion rate, multiplied by their average time in the system. The average completion rate can be represented by either throughput, or its inverse, average cycle time. This duality is shown at problem statements A and B. These equivalent statements are made in terms of, respectively, throughput and average cycle time. I dont know about you, but before digging into Lean, I was a little confused with throughput and cycle time (and I did not measure it). I hope this article has helped you understand it. I also hope more people start measuring such important parameters (I cant believe I did not use these before going Lean!). nuances that affected the Portuguese language spoken in Brazil. I must say I have not seen such a vibrant history class before; no one dozed off and people actually probed for more information! Prof. Sharma then worked with us on alphabet pronunciation and made us spell our names. Spelling out my name has never been such fun! We moved then to learning to introduce ourselves and others, and in the process realized that it is very different from the largely gender-neutral English language. Portuguese has different words for a girl and a boy, be it adjectives, pronouns or even a simple thank you! You say Obrigado if you are a guy and Obrigada if you are a girl! All in all, it was a great start. Our spirits were so high, that even the teacher enthusiastically extended the class by 30 minutes to cater to our enthusiasm!! As we proceed, we will keep you all posted about all the interesting language nuances, constructs and the song-like pronunciation - We hope you will stay hooked. Until thenat amanh !! Vignettes of TWI
  • 9. The TWimes of India ThoughtWorks News & Views in a Nutshell Happy Hampi Sam is a QA based out of the Chicago office. He spent 6 weeks in India for ThoughtWorks University 19 last year. Sam Hotop anyway, but man, everybody I was standing in a 3000 year old temple, completely naked and still dripping from the river water. It was at this moment, as I looked over the boulders and destroyed columns, that I realized Hampi had been calling me all along. A true adventure that began with a bus ticket, a backpack, and a couple bottles of rum. Our first week in India had been packed with new information, new people, new food, and really what amounts to a new way of life in a country that, on the surface, is strikingly different from my own, but, with greater and greater frequency, gives me glimpses of a life full of the same passions, fears, desires and joys as my own. We decided to go to Hampi for the weekend. We figured we'd just take a bus up, see some ruins and head back. Friday was a long day. I ran home at 7.30, packed, and then headed over to a party my colleagues were having. There were only three of us going to Hampi that night, but we made an appearance at the party nonetheless. It was a good time. I drank. Took some sweet videos. And acted like an idiot. Typical party Sam. Around 9:30, headed to the office to catch a cab for the bus station, where the crazy-meter began to make its gradual shift upwards. Little did we know that the crazy-meter would continue to inch upwards over the course of the next 48 hours. The bus station was totally packed with people. I mean, there are just millions of people everywhere all the time For internal use only and their brother was heading out to take a bus Friday night. The three of us ended up in the last three seats, in the last row of a "semi-sleeper". Admittedly, I found this naming convention a little suspicious. Couldn't I just normal sleep? How exactly does one semisleep? Our saving grace, alcohol. We knew that no matter how bad this 8-hour bus ride turned out to be, we had booze. And if we drank enough of it, we knew we'd eventually make it to drunksleep. I think the three of us took some classes in drunksleep in college, so this would be a piece of cake. No. It was not a piece of cake. It was a piece of whatever is the opposite of cake. The trip started out great. We started mixing some drinks. Yeah! Party! Sweet! The plan was working. For a while. Problem one. Urine. There was no bathroom on the bus and we were about 2 hours in. Then I learnt what they meant by semi-sleeper. It means a regular bus with no air conditioning and a back window that doesn't work. Problem two. Tom. Tom's a really nice dude from the UK. Drunk Tom is a whacked out lunatic that may get you killed. At some point, Drunk Tom's personal crazy meter started to crescendo and as the normal human beings on the bus lay in slumber, Tom turned his headphones all the way up. Then he started to play the drums on his legs. Then he asked me about 50 times, in pristine British fashion, "Have you ever heard of Oasis?!" I mean, this was already hilarious on so many levels, but the kicker was that Tom's voice was louder than the really loud bus engine and the blaring music from his headphones. We tried to politely ask Tom to keep it down a bit (it was 3am!), but that seemed to make him rage a little, and a raging white dude in a bus full of Indians in the absolute middle of nowhere was definitely not a path I was about to head down. Problem three. The road. About 6 hours in, the road went from decent to totally ridiculously horrible. Now I'm not some pompous westerner who's too good for other countries roads. These roads were insane. Every single second there was another brainrattling crash that just destroyed the vertebrae in my back. Even better was when there was a really bad one, Tom would yell in the most cliche'd British accent you can muster. This old lady was totally giving him the death eye and he had no idea. I started looking through my dictionary for ways to say "Take him. He's not with me" in Hindi. Luckily, there was no mutiny. We eventually did bounce, rock and roll into Hampi. Only, however, after we missed our stop and had to call the guide, try to explain what happened, and then finally really freak out the bus driver by asking him to talk to someone he never met. "Hi, I'm a 6'5" white dude and I'm lost in India. I know you can't understand anything I'm saying, but would you mind talking to this guy?" Extends hand holding cellphone. It worked though. Basava, our guide, was awesome. The bus parked and we got out. Then, we wanted to jump back in because immediately there were eleven billion people shouting at us. You want post cards? You need guide? You want a taxi? You want a rick? You want a room? I just said uhhhh alot. I did buy some nice post cards though. I said, "We're looking for Basava." Silence. Basava's a man with a plan. People don't mess with his tourists. And like a shining knight on a white mare, there he was. He got out of an air conditioned Nissan Ultima, shook our hands, and we'd never be the same. After some rest, we headed out. Tom was still drunk and looked like death. I just smiled a lot. That's my thing. We went to some ruins and got some really good panoramic photos of one of the sites from pretty high up. We descended down the back side of this 09 slope toward a market and the main temple for that area. The market was bustling and we got to see some really cool stuff. This place had awesome animals. The first one we saw was a cobra. It was just like the movies. There was some old guy playing one of those recorder things and the cobra popped its head out of a basket and started dancing around. It was crazy. We were walking along the street and everyone kept trying to sell us bananas. They all seriously insisted that we buy their bananas. So we bought some. So here we were, walking down the street with these bananas. I happened to glance back and in the distance I saw this cow walking through all the people. Funny. Cows just walk around here. Little did I know that this cow had a plan. I glanced back again and noticed that the cow was picking up speed, knocking over little children, and heading towards, well, us. I didn't think too much of it until I turned around a third time and saw the thing full trot right towards Nolan. It wanted the bananas! Give 'em your bananas Nolan! Run! Oh my god!! We're all gonna die! It was so funny. The cow chased Nolan right into the temple. At the entrance to the temple there were more aggressive animals. Monkeys. They'd jump down, smack their palms together as if to say, "Bananas. Now.", and then do their little monkey chirp thing. We handed the monkeys some bananas. Oh but that wasn't all. The cows had our bananas, the monkeys had our bananas, and as we walked through the gate, a giant elephant was asking for bananas. And not only that, it wanted money too! Apparently the elephant does blessings as well, but only for cash. And the more cash you give, the longer it blesses you. I had to try this. I handed its trunk 10 rupees, not really knowing what to expect. It took the cash, put it in a bucket, and then plopped its trunk on my head. It just kept it there for about 8 seconds. I was hooked. After I jumped down from taking pictures with my new fuzzy-trunked friend, Nolan told all the children that I was a giant and that I could bless them too. I was bent over putting my shoes on and when I looked up, there were about 15 pairs of eyes staring at me. I started laughing and they all thought I was hilarious. Vignettes of TWI
  • 10. The TWimes of India Basava took us around to some wonderful places. He was so knowledgable. Hed studied archaeology and ethnography in college and made his living taking to people like us on these adventures. He knew exactly what we were looking for and it wasn't the typical tourist traps. Before we knew it, we were straight up Indiana Jonesing it down this river in a buffalo skin boat called a coracle. We paddled down the river and listened to Basava tell us about Hindu gods and the temples that had been carved into the cliffs. Feeling adventurous, we went for a swim in the river and climbed soaking wet up into one of Shiva's temples. It was here that I stood, flailing in the wind, peering out over the great divide. Conan. Conqueror. Terminator. We climbed down, paddled on, and eventually docked. There was an old lady on the shore making chai, so we stopped for a drink. Delicious. Later that night, as the sun went down, we climbed another majestic temple. We talked about how crazy it would have been to see this place in its heyday. There were bathhouses, giant platforms for music and dancing, markets, dining halls, even a small temple for beheading people. It was awesome. At one point, we descended into this pitch black underground lair where people were chanting. It was kind of scary. We didn't want them to know we were there, so we tiptoed through and out the other side. We watched the sun go down atop the tallest temple. You could see everything. It was beautiful. That night, thanks to Basava, we had a real sleeper bus for the trip back home. I had my own bed. Nolan and Tom had to share one. Bwhahahahahhaha. We each took some sleeping pills and the next thing I remember was a loud "Bangalore! Last stop! Everybody get out!" Took a rickshaw home and slept. A grand adventure indeed. I am working on this guy -Jatin For internal use only ThoughtWorks News & Views in a Nutshell Recognising a geek! Shweta Shetty 10 Shweta is a developer who works out of the Pune office. She blogs at shwetakaleidoscope.blogspot.com is when you bend to turn on/turn off the pc or take a trip to the kitchen to get a drink. If you are a health freak you probably do those 'chair exercises' where you stretch your legs in front of you, rotate your feet and think ou know you are a "Wow, aerobics is tiring..." computer geek when: 5. You have weak eyes. Do 1. You hear trees and think try to take a break every hour children, binary search and and stare away from the recursion and not about those screen. brown and green thingies on which fruits grow. 6. You speak 'Geekanese'. This language contains 2. To you 'Windows' is a sentences like swear word (or 'that other OS' if you are polite). You never "I think its time to refactor my look out of them. No wonder cupboard." you dont know what trees "Those newbies are having a really are. flame war and adding noise to my list." 3. "Google is a search "I just submitted a patch by engine"- to you this sentence skipping the tarring and is akin to blasphemy. Thats simply gzipped the code." coz Google is your dictionary, (I am unable to present an spell-checker, translator, English translation of the postman, problem solver, above sentences as Google calculator, convertor, locator, translator does not support publisher, editor, artist.. Pretty Geekanese yet) much the thing your life revolves around. 7. You hero-worship some and identify each one of the 4. The only exercise you get following people: Larry Page, Y Linus Torvalds, Chris Mason, Valerie Aurora, Avi Kivity, Daniel Philips, Martin Fowler, Martin Odersky, Guido van Rossum et all. 8. You are terrified of bugs because you know there is no pest control agency on the planet that can come around and zap them out for you. 9. You are more comfortable chatting online or texting than phone conversations. ("Its cheaper" is just an excuse. Stop fooling yourself) And real conversations with real people is a rare event. 10. You have read through (and understood) all the above points and the only thing going through your head is "What?? This aint normal/expected/regular behaviour?" Welcome to the world of computer geeks! Actually you were already here. My first glimpse of snow Soumya Swaroop I was seated in the window seat of the plane. When I looked out, all I could see were clouds, so dense and vast, that the earth was not visible. The plane started its descent. After a while, patches of earth started to become visible. If my eyes were to be believed, I was seeing a huge lake, and soon I could see more in number. My brain refused the thought. Surely, there cannot be so many lakes so close by. Slowly, the vision became more clear and I realized that this was actually my first glimpse at snow. Which song do you associate ThoughtWorks India with? Shweta Shetty - We will, we will, rock you! by Queen Srijayanth - Hai Huku Hai Huku Hai Kaushik Ghosh - Lyrics from Dum maaro dum..."Unche se uncha banda, potty pe baithe nanga." It's in line with our Sameer Deans - Comfortably philosophy of equality and lack of hierarchy :) Numb by Pinku Floydu Habib - Bhaag D.K. Bose...especially towards a project deadline :P Manish Krishnan - If I were corny, I would say "Saare Jahan se Achha". Anand Krishnaswamy - Munni badnaam hui . You didn't ask me to justify my choice, so no explanation provided. No... No... No! Vignettes of TWI
  • 11. The TWimes of India ThoughtWorks News & Views in a Nutshell 11 Why MapFaire.com? Sudhir Jonathan T he first question I'm asked when I tell people I'm writing and launching MapFaire is Huh? Why? Isn't that like Google maps or Places or something? Fortunately, no, it isn't. Here's why. Google Places is a directory. And the whole point of Google encouraging people to come add their businesses on to Places is basically a way to ensure that their own directory is more complete, accurate and up to date. You give Google more data; and we all know how good they are at doing things with data. Along the way, businesses get more exposure and traffic from people looking up whatever keywords are associated with them. When people search for stuff they'll see your business (along with every other business in the area). So how is MapFaire different? First of all, this isn't some massive public directory. It's your map! It has your name on it. It looks like you made it. It shows your businesses only. It has (well, not yet, but it will soon) your color scheme, logo and icons on it. It's like an extension to your website that you can make without bothering with all the technical things that people who make websites and program maps need to bother with. So if you've always wanted to create a store locator for your stores, a great looking map of all your restaurants, a map of all your outlets to give to your customers, or anything of that sort, then you'll find MapFaire a great way to do it. Do let me know what you think when you try it out. It's still under construction and your feedback will be probably shape MapFaire in the days to come. PK & Akshay Negi practice Pear Programming "Some people drink form the fountain of knowledge, others just gargle" - Kirti Agarwals Gmail status Conversations Akshay Dhavle Akshay is a senior BA from Pune. His website is akshaydhavle.com. For internal use only I have observed over the last few weeks (as part of the Staffing team) that a lot of my tasks these days are conversations. They are in the format Talk to [x] about [y]. I remember my first project as a Business Analyst. There were 5-6 client stakeholders to talk to everyday. One of the patterns I had used effectively was to note down everything I wanted to cover with every person. Then I could have a single meeting with every stakeholder and cover all the topics that needed his attention. I used Microsoft OneNote for this at that time. I felt the need for a similar software application. Yes! One story can change the project. Shakir A Shakiel "Noodles Remind me of Noodles"- K10 H Having an Android phone, having a need and wanting to write an Android application came together in the form of Conversations. Its an Eclipse project. I have used MotoDevStudio because I have a Droid (Milestone) and Rajat Vig (lead consultant, TW Pune) said it works much better. Of course, the solution could have been simple post-its on my Mac, but that would be so uncool! Thanks to Shishir Das (lead consultant, TW Pune), I got over the initial hurdles. Im looking forward to writing more Android applications. Vignettes of TWI
  • 12. The TWimes of India ThoughtWorks News & Views in a Nutshell 12 What being a Project Manager means to me Vishal Bhalerao see with the different sets of stakeholders that a Project Manager deals with on a day-to-day basis: A Be very clear and concise in what you are trying to achieve while starting a conversation. Set the boundaries of the conversation. Give enough context always assume that there is someone new to the group that is reading or listening to it. Ensure that there is enough content in what you are communicating to arrive at a decision. Keep it open enough for opinions to be floated around it. At the end of it, make sure there is a conclusion. Summarize everything that has been said and considered in this final conclusion. Be open to suggestions and be humble enough to accept some ones point of view. I have experienced that the most interesting insights come from the least expected quarters. Be ready to accept something radical. Be prepared with all the facts. You might need to satisfy different perspectives and expectations as a follow up Having said all of above, lets look at what kind of communication you would typically For internal use only Key things to remember: Always state facts to the team. Be the first one to share In a distributed environment information. If the team finds where the teams are split out from someone else, they across continents, communi- might lose faith in you. cation becomes key to being Have the courage to successful. The customer accept your mistakes and cannot see his team in action, speak about them in front of and so he or she is always the team. Keep talking to the anticipating that something team members in groups and will break. Since they dont individually. see you, they tend to not Before making any readily trust you. changes, make sure you build a consensus amongst your Key things to remember: team. Its easier to push for certain things when you have Be very honest. the ground ready. Provide all the facts, and Give the team the whole data to back up the facts context. Always provide a At times, do not hesitate possible solution to the to bring your emotions to the problem you raise. Clearly conversations. state what is expected of them. Be prepared to back up If you need help from your feedback with real data. the customer, ask. Ive had better experiences when I did Management: not hesitate to ask the The internal management is a customer plenty of questions. very crucial stakeholder. At The analogy that comes to my ThoughtWorks, the support I mind is weird but looks apt. have from the management is The development teams are unbelievable. It gives me the like residential schools to courage to make the right calls which customers send their and do the right things. At the children (ideas/products) to be same time, they need to be shaped up to face the real privy to all the information in world (the market). At the end a nutshell on the project to of the day, the child is still make the right calls theirs. So when you ask for help in specific situations, Key things to remember: Understand the kind of they will always come. Own up when you goof up. Never information the management shy away from the mistakes is interested in. Talk on a regular basis youve made, and be proactive in accepting them and to the management team and communicating them to the keep them posted on the customer. They are a lot more happenings on the project. Escalate things which forgiving when you accept, rather than when you try to you think will have adverse cover up and they end up impact, but dont go to the discovering them themselves. management for every small issue. Dont go to them only Team: with issues. Think up possible The team looks up to their options. When you present Project Managers to provide options its easier for them to them guidance and direction, think through and guide you in because PMs have direct the right direction. conversations with the other stakeholders, and at times also Outside people (not in the have more contextual infor- team but on the same floor): mation which the team needs to be privy to, to make the You will be surprised to see right calls. On Agile teams if why this set of people is you want your team to be important. While you are self-organizing, the mantra running a project, there are should be Be truthful and times when a project hits a Customers: s a Project Manger, a major chunk of my time is spent communicating with various stakeholders; be it the customer, the management, the team or people outside the team. Lets look at what the general guidelines can be for such communication: honest. rough spot and the team goes through a downward spiral on motivation. When you are not too happy, you tend to share your feelings. The information spreads like wildfire that the project is not a good to be on and that people are unhappy. There are several aftereffects when you need to staff your team with new people who did not want to be part of the team. This is a difficult situation to be in as a Project Manager. The team does not realize that their frustrated rants have actually got them in a situation wherein they cannot roll off, because the people they ranted to are still under the impression that its a bad project to join. It is important for the Project Manager to take care of this negative perception and keep talking to this external audience. Key things to remember: Talk to people outside of your project on a periodic basis. Take a random sample and gauge what they have been hearing about your project. Correct the information they have if you get an opportunity. Give them context of the situation to help them to set right their views of the project. Encourage them to have a follow up conversation with their source of information. Celebrate your teams success; send out emails to the entire floor about the same Encourage people to come and work with your team for a day. It has always helped me when I followed the these guidelines. Life has been a lot simpler, purely from the standpoint of connecting with stakeholders, as I gained trust by communicating effectively. Let it bite, then well write Vinay I am trying to imagine men bathing PK Deepali: I went through the devs! Anay : They seem kinda porous! Vignettes of TWI
  • 13. The TWimes of India ThoughtWorks News & Views in a Nutshell Coopers Corner Select observations from Khushroo Cooper F ound a weird Distribution List at my workplace, ThoughtWorks India (TWI). The DL is called TWI_Massage_Group, no mention if its about giving or getting. If someone doesn't want a cake on their birthday, is it okay to give them a loaf of bread to cut? I admire the PM of India for being the only one who is taking Anna Hazare's blows when all the actual corrupt politicians are cowering in their hideouts exhibiting radio silence. WTF Moment: There is a Taare Zameen Par II Deepak Paramasivam situations. Once, during my early days in the hostel, with the intention of going home, I acted as if I was suffering from an unbearable stomach ache. In front of my principal, I crouched down, clutching my stomach and crying at high pitch. But she was unmoved; youd think she was stone hearted. From then on, till the end of her tenure, she made me represent my school in all mono-acting competitions. I was sitting with my sister in her class, 2nd standard, section-D. Even after spending a year in school, I was still homesick. My class tutor dropped in, as usual, to drag me back to my class. That was a regular scene; during one such struggle, I tore her sari. Today she was aided by a maid servant, so I had no other go I bit her hand to run away from them. My parents had had enough of my pranks, both in and out of school, and I was packed off to a boarding school from 1st standard. Till the end of my schooling, I didnt have a teacher like Aamir Khan. So I devised my own strategies to escape from For internal use only Chandru was my best pal. He was more loyal than a friend. Wed share my Sunday lunch that came from home. In those days, we considered Sunday lunch a life saver, after being forced to bear with our hostel mess food. We even start fasting from Friday evening so that we could enjoy Sunday lunch better. Most of the time, Chandrus parents failed to visit him on Sunday. 192-page book called "Teach Yourself Twitter in 10 Minutes" by SAMS. Seriously...a book?Of 192 pages? In 10 Minutes? I need a haircut, badly! Look like a Mowgli. Flipping through British Airways Sky Shopping catalog, came across Hello Kitty stuffed toy. The description read "Suitable for all ages". Really? All ages? WTF moment @ Heathrow. Group of about 30 school kids comes in. Most guys had larger bags than the girls. Such an anti-pattern! General perfume ad themes. Pour Femme: Some skinny delusional female doing some fingers to punish us. Other teachers would just make me kneel down outside the class (which I loved, because from there, I could look at my first crush, Subha, sitting in 4B). I was always irregular with homework and class work. I preferred eating in our hostel mess to writing! In class, whenever my science teacher would check my homework, Id keep changing my place. He would act as if hed not noticed, and at the end of the class, hed call me specially, check my homework which used to be incomplete, and go on to punish me with the pencil drill. Chandru, although he didnt like it, use to back me in local gang wars between the fans of Shakthimaan and Superman. On a particular Sunday evening, Chandru felt sorry for me and offered to complete my science homework. Since there was plenty of work to do, while he was writing, Id kept telling him sardonically that it would be impossible for him to finish the work, with the hope that it would make him write faster. After a point, he understood my intentions and stopped writing for me. I convinced him to write for me again after long hours of begging for pardon. To my satisfaction, the work was finished. Our science teacher is the only person I was ever afraid of. He was the only teacher who used a pencil drill between our In science class, I acted the way I always did. At the end of the class, with the usual pride and sadistic expression, 13 weird moves while constantly giggling or running away from something. Pour Homme: Some goofy guy spraying it on himself and then getting surrounded by women who cannot keep their hands off (and do stuff to) him. Anyone else doubt their employment status upon not seeing any emails from the workplace over the weekend? Why do the newspapers appear shocked on the death of a 95-year old? Was anyone *NOT* expecting it? If your company's Resource Manager is silent about your next project, tell him that you want to go on a vacation. Your phone will ring in less than 20 minutes :) the science teacher called me and checked my homework. He grunted. When I was about to get back to my desk, a light flashed above his head, his face brightened This handwriting is too good to be yours, he said. Come on, little punk, tell me who did it for you, and he took out the pencil. There was no escape. DimDim (urf Diptanu) : Dude! I come with my own package! Lets write bad code and finish this! Diptanu A UI dev is like a broad band connection Prabhu Akshay on Diptanu : He always finds a pair except while coding! Today even I am wearing pants Diptanu Don't call me unfair. Thats racist! PK Ravi P (on the phone) : Hey the voice is echoing Simanta : Is it ok now.. is it ok now.. is it ok now..!!! Vignettes of TWI
  • 14. The TWimes of India ThoughtWorks News & Views in a Nutshell 10 random tech learnings from Sears Fitness Aman King H ere are some of the things our team has experienced so far: 1. Rails 3.x ActiveRelation is squeaky clean but methods like include?, size, and count can have unexpected results: check the Rails codebase 2. Ruby gem parallel_tests can help reduce build time drastically: from 55 mins to 5! 3. 960 grid system is the reason why many websites don't take up the entire screen width! 4. A graph db like Neo4j can make you think very differently about data 5. Facebook integration is convenient for end-users, and fun for developers 6. If your web app is usercentric, beware: the User class will bloat like crazy! 7. SASS definitely helps manage stylesheets better 8. Akamai DSA improves performance but note: DELETE and PUT http verbs aren't enabled by default! If you use them, put in a request before going live! 9. ATDD is worth attempting in your team: will lead to more green builds than red 10. Never undermine the value of learning a language well, whether Ruby or JavaScript Step 2: Understand some cool techniques/concepts about movie making. You can drop these into your conversations and your audience will be in awe of you in a jiffy. T his article will help you sound like you are some sort of movie geek of Roger Ebertish proportions. (If you missed the Roger Ebert reference, then you have some way to go). A conversation could go like this: Oh that movie used an unnecessary MacGuffin, however the Deus Ex Machina saved the script at the end. Where a MacGuffin is a plot element that everyone in the movie is after. Such as the bag of diamonds in Delhi Belly, the real identity of Aamir Khans character in 3 Idiots or the briefcase in Pulp Fiction. And Deus Ex Machina is a Follow these simple steps and plot element whereby a difficult problem is suddenly solved due you should get there sooner: to the intervention of some character or incident. Such as, Step 1: Register on IMDb. in a love triangle when one The website is a haven for couple is paired off, a sudden movie geeks. If you are regis- appearance of another character tered, you are already on your helps soothe the heart of the way to movie geekdom. When rejected suitor. Quite like when youre talking about any Juhi Chawla made a special movie, just say Man! You appearance in Kabhi Haan must check out the trivia on Kabhi Na. IMDb for this movie! or Man! The message boards for Step 3: Be prepared to answer this movie on IMDb are hilari- the question What are your top 5 movies? ous! Thats it. For internal use only 10 myths about DevOps and the group Rashmi Mishra Bonus point: To keep things exciting, continue sharing opinions and challenging yourself... and don't forget to have fun! This is awesome man, the entire body is clickable - Sadique after seeing a new Mac mouse for the first time 3 steps to sounding like a movie geek Apoorv Gawde 14 The answers can vary from the dumb response Huh? to the ultra ambitious response: Do you mean from amongst the ones that I have directed or the ones that I have written? My preferred dialogue in such a conversation is as follows: Movie buff: Hey Apoorv, what are your top 5 movies? Me: In what language? Tada! You will see the jaw drop and you will have achieved another level of Movie Geekiness. On a Skype video call, Sri Prasanna (from TW Gurgaon) was standing with his back to the window. Pune ThoughtWorker on Skype video: Hey Prasanna, there is lot of bright light coming from your backside!! Pune is a suburb of Model Colony Prasanna Vaste 1. DevOps is a buzzword and Ajey Gore came up with it. 2. It is another name for a glorified build monkey. 3. DevOps group can be reached at 8600 4. There is no development work in DevOps. 5. IS grows up to be DevOps 6. DevOps practices in your project are a "nice to have" 7. DevOps does not increase "reproducibility" http://devopscloud.net/2011/04/ 20/top-10-reasons-for-having-a-configuration-management-so lution/ 8. DevOps practices have a steep learning curve. 9. DevOps and the cloud are interchangeable terms. 10. DevOps is all work and no play. "Chandan Jog is so chocolatey" - Ashutosh Vivek to Ausmarton: Dude you are funny when you don't crack jokes! "I want to paint the town brown." - Arvind Awte "Phata hua scene hai" Sameer Deans cliched line "In TW, you don't ask for permission you ask for forgiveness" Mahadeva Prasad Vignettes of TWI
  • 15. The TWimes of India Durability Ranjan Sakalley W hen I got married in 2009, I bought a bunch of consumer durables a refrigerator, a washing machine, a microwave oven and more. Although it created a big dent in my pocket, I chose to go for premium vendors. I was confident that my decision to do this was a good long term solution. However, during the last few months, I am having trouble with these automatons. To the extent that I have come to believe that at least one person is evil in this realm. For the record, I am not against things breaking, not even when they belong to someone else. But these things cost me money, quite a lot of it. I picked up the phone and yelled, and eventually got some service. We got things fixed for some time, and then again after some days I noticed people eyeing a couple of stains on my whites. I called them again. Long story short, I was induced to buy an extended warranty and a service agreement with that vendor, and then again with another. I was fairly doubtful that people would believe me if I told them I preferred wearing beige these days. Not surprisingly, these agreements cost more money. I was sad for a while. Then the naive businessman in me, for a moment admired the business-model - build cheap, sell maintenance. I was annoyed. Understanding the nuances of how one is getting shafted is not a funny moment. Its like a daemon at the back of your mind but keeps following a schedule to pop up once in a while when you are down. But all this is not about me. Its about all of us. As software service providers, independent consultants, vendors and what not, how much time and money do we spend on creating a durable product? Personally, I believe this whole outsourcing business gets a bad name because of the aforementioned quackery and bad designs that follow. Most businesses end up paying multiples of the wads they paid for building, for maintenance. I am a bit For internal use only ThoughtWorks News & Views in a Nutshell thick, but eventually I get the pain of customers worrying about all this. If maintenance contracts are a pain for me, they are a pain for them. It is inevitable that a flaw will crop up once in a while, but designing your revenue model, as a vendor, based on tomfoolery like this, is downright risky. The infinite improbability drive might just go faster by a couple of light years/second when you think of building a 100 year company this way. But frankly, a lot can be done to ensure you produce something durable. Its not all that tough if you are not lazy. There are three parts to it. Good design, great quality assurance and a pinch of foresight. In what measures you would need a good design I leave to your intelligence. But you need some good developers and a couple of great ones. If someone is still using IE6, chances are that they never thought long term. Spy on their file system - if their folders are modular, chances are that they think long term. They might componentise your system, and thus increase the shelf-life. When you say Facebook, do they start talking about data architectures, or do they send you a friend request? Ask them what they think of Twitter. If you get a tweet mention, thats bad. If they start telling you stories about architectural evolution of Twitter, it might be a good sign. Do they discuss Ruby or Python over lunch, or are they worried about Monica Bellucci's next motion picture. There's nothing wrong with worrying about Monica Bellucci. But you get the picture. You don't need just a good architect. You need good developers passionate about craftsmanship. And not more than two of the cowboy variety. Do they know how to crash the JVM? Great quality assurance. Books have been written about this. But these books are all like religious books. Theoretical and dogmatic. When some people follow them by rote, they are living in the past. You need good QAs, diligent QAs and then some people who just can't think straight. And a couple of people annoyed with those developers as well. Innovation in this stream of work is highly. You need to test things as soon as they are checked-in, not three months later. Building a good automation framework might be a good idea. Releasing software every once in a while has been proven to have quite a good effect on software quality. Think not about twice a year, but twice a month. It doesn't need to be on a consumer box, it just has to be releasable. People should be worried about those kinds of things, at least more than they are about their next trip to the park. Are they proud of the product? Foresight. Difficult. Being progressive is important to build durable products. I cannot explain much about why it seems intuitive to me. Whatever little I can, in a short sentence is - if you don't know what the future of computing is, the longevity of your software becomes a probability (a fairly low number), and not certainty (fairly close to the real thing). Someone in the team should be reading blogs. Others should be reading some books about technology. 15 What was your most memorable incident at TW? Habib - Late night gaming sessions at the guesthouse in Delhi where Arvind Awte would invariably shout "Jockey on me!" or "Heal me! Heal me!" every few minutes. Sameer Deans - It was one of the team outings we had on the CIT Goldspike team where a number of people got drunk and gave long sermons extolling the virtues of certain others on the team. Kaushik Ghosh - I mishit a TT ball, which went right up, hit something and a huge bulb suddenly came crashing down on the TT table. Incidentally Roy was visiting Pune at the time and was sitting just a few meters away wondering what was going on. Srijayanth - When we tried making Vishy a trending topic on Twitter and Puneet Goyal pitched in with this gem: "Vishy is so old that he has seen Mr B with a full head of hair". And Gogo responding: "Vishy is older than that. He has seen Roy Enough said. Life's too short with a full head of hair." to keep squabbling about incompetence. Lets build Aman King - Getting birthday better products. bumps from everyone in the team (and it was a large team!). I don't hope to have another Hemanshu to Manish: such moment though! I dont see chick flicks. I like romantic Praveena G - The time when comedies. everybody from my team had called me up when I was sick :) Excerpt from Ravindra Shirsaths Facebook wall Awte: Ravi, are you done with work? Ravindra: No yaar, I will be late today. Ill come home by 8. What about you? Awte: Fine. Btw, Chandan Jog has left for Bihar! Ravindra: Yes I know We will have party tonight! Apoorv: Stop talking like married couples!! Next you will say, Dont wait for me for dinner!!! Anand K - When I spooled the toilet paper in the loo and hit the flush handle, Vivek Singh (or was it Gogo?) walked in and chided me for wasting paper! Never mind that I was in the loo with my pants down holding a madly spinning reel of toilet paper! Jannet Thomas - My first 12 weeks in TW trying to get Visa for my intl assignment to UK, then to Oz, but finally Canada. Yes, that exotic location that every US citizen dreams of finally getting to visit! Amirdha Gopals Gmail status Self service is the best Service Vignettes of TWI
  • 16. The TWimes of India ThoughtWorks News & Views in a Nutshell S*!t my Architect Says Habibullah Pagarkar raise a ticket to provision a showcase environment: Instead of doing that lets use the Cruise instance of our app as our showcase environment. What follows is an extract from various conversations with a real life Architect. Yes boys and girls, this breed does exist. This is the truth, the whole truth and nothing but Architect to dev team: .NET the truth. So help me god. Oh MVC cannot be installed on please help me god! prod. It is a security risk. Dev, being snide: Yeah, and Dev has just joined the we are on Windows. No project. security risks there. Architect: You are new here so Architect, very serious: Yes. let me tell you how things No security risks there. Okay, work. We practice Agile and I have to find a way to have Continuous Deployment. MVC without MVC. Architect: Okay, so when a build is complete; the Architect after thinking DLLs are checked into SVN. very hard for one whole day: Then somebody goes into the Yay! I got MVC working QA environment and takes an without MVC. svn update! Dev: So apart from dropping Dev: So you go into the QA in the DLL in the bin folder, environment and physically what else did you do? type svn update? Architect: Architect: No, I simply raise a ticket. I keep raising tickets Architect to dev: Could you and the app gets deployed re-order the DDL so that when continuously. I do select *, I see my chosen Dev is stunned after hearing 3 columns first? the intro speech: We need to automate that. Dev to Architect: Hey man, Architect, sounding surprised: the new migration you