Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
India Innovation Newsletter

May 2011
NBN - Greenfields
Playup - Games
Playup - PSX
Playup HTML Prototypes
Simulation for testing a mobile-based applicati...
A New Beginning
Dear ThoughtWorker,
Welcome to the first edition of the ThoughtWorks India Innovation newsletter. Innovati...
NBN - Greenfields

Contributors: Puneet Goyal & Jagbir Singh Lehl
What was the need:

Playup - Games

Contributor : Rajat ...
Simulation for testing a mobile-based



Prashanth Narasimhan & Ramesh

What was the ne...
Capability Application

Contributor: ######

JBehave Navigations

The Capability application is geared towards increasing ...
Cutting Edge Testing

Acceptance Test Driven Development
Contributor: ######

Contributor: Anay Nayak
What was the need: I...
Large visible release planning wall to aid SMEs
in visualizing the breadth of scope of the product and to view relative fe...
Build parallelization
We had a regression test suite that ran for about 2
hours. This delayed the feedback that developers...
Mobile App Development
Contest at Bangalore
The worldwide market for mobile application development is buzzing and keeping...
Upcoming SlideShare
Loading in …5

Innovation Newsletter


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Innovation Newsletter

  1. 1. India Innovation Newsletter May 2011
  2. 2. Index NBN - Greenfields Playup - Games Playup - PSX Playup HTML Prototypes Simulation for testing a mobile-based application Devops in Jigsaw From SAS EMEA to SAS GLOBAL - How we did it! CAPAPP Innovation #### JBehave Navigations Database Subsetting using Jailer Acceptance Tests Acceptance Test Driven Development Featured Project: Integrity OSR (Online Sales Rack) - Sears 1
  3. 3. A New Beginning Dear ThoughtWorker, Welcome to the first edition of the ThoughtWorks India Innovation newsletter. Innovation is one of the key differentiators that we are known for in the market. The key motivation behind compiling this newsletter is to keep ThoughtWorkers abreast of the various innovations done on projects at a ThoughtWorks India level. We also plan to feature some of the next-generation technologies & state-of-the-art emerging concepts that ThoughtWorkers are passionate about. We all know that tons of innovations keep happening on a day to day basis on our projects and we want to highlight these learnings to various teams at ThoughtWorks. We hope that this newsletter will inspire you and help you to think think out of the box while innovating on your respective projects. Regards, Editorial Team Waat Interview For internal use only. Please do not distribute. 2
  4. 4. NBN - Greenfields Contributors: Puneet Goyal & Jagbir Singh Lehl What was the need: Playup - Games Contributor : Rajat Vig The client team (some members) were really skeptical about offshoring and the impersonal connect through voice calls was exasperating the problem. We needed a way to bridge the gap. What was the need: Since we were working on daemons and Rails applications, sharing data model definitions and migrations across services was becoming an impediment to delivery. What we did: Started conducting stand-ups with What we did: the onshore (including client) team on Skype with Video. We used a GEM for sharing data model across services. How it was useful: We combined the models into a GEM allowing us to reuse the code across Rails and daemons How was it useful: Through the video conferencing feature of Skype we were able to create a connect with the customer as well as ThoughtWorks onshore team. The client gradually showed more tolerance towards offshoring, better relations with the ThoughtWorks onshore team leading to better co-ordination Playup HTML Prototypes Contributors : Chauhan Mubasher Nadeem & Amitendra What was the need: A mechanism to share the HTML prototypes across geographies for review and feedback. Playup - PSX Contributor:##### What we did: What was the need: ############## ################################### ################################### #################### What we did: We changed controllers to return only JSON instead of HTML and allowed HAML processing on the client side. How it was useful: Mobile Web Development was simplified; as now it was a matter only changing the client HAML (and some JavaScript tweaks) but no changes on the Controller. Did you know? that Balaji Damodaran's cricket based FaceBook app (named Rummy) is very popular among our admin/recruitment folks and some PS folks too! We used ProtoShare; an online prototyping and collaboration tool. How was it useful: Being an online collaborative tool, the static interactive HTML prototypes created with ProtoShare were available to ThoughtWorks and PlayUP teams across geographies for review and feedback. The prototypes helped in sharing a common understanding amongst distributed teams. The prototype was also used as a reference for stories, to provide more context. This online tool was easy to learn and use. Did you know? that Prabha Pattabiraman worked on her Bharatanatyam software (with help from Alex and Danny and presented it at XConf? For internal use only. Please do not distribute. 3
  5. 5. Simulation for testing a mobile-based application Contributors: Rajamani Prashanth Narasimhan & Ramesh What was the need: CycleTel is entirely an SMS based application. We had to have a SMS gateway provider interface to build that would handle all messages coming from users and send appropriate responses. Since we did not have a SMS gateway provider finalized, we did not have a test account to connect to. What was done: We ended up mocking that with 'Fake SMS'. This was a simple test page that would receive the message from the user, route it to the interface and get back the appropriate response from the application. How it helped: Testing the application from a simulator test page was more intuitive than from the back-end. It also helped us capture certain details like messages not being split properly, messages getting garbled, application not being able to handle other languages etc. From SAS EMEA to SAS GLOBAL - How we did it! Contributor: ########## What was the need: Being an integration project, we had to build our application to interact with 4 different sources/systems. Each of these systems was being developed by different sets of client teams across the globe. The challenge was that these systems behaved in a unique way for different countries supported by our application. Initially, with one or two countries in the app, we had written dedicated code for each country. But with more number of countries coming in, we realized that this approach was going to be tedious. What we did: We built a framework that would take in just a set of database configuration for the new country and work with all the interaction points smoothly. This includes information like screen configuration on the UI, how to read data from one interaction point, how to pass it on to another and how to invoke another interaction point. How it helped: This saved us a lot of dev/QA time. This was well recognized by the clients, that what we served for EMEA region can now be extended globally, with adding just db configuration scripts that finishes major junk of the integration! Did you know? that Sumana Biswas and Sridevi Ramoo, our recruitment folks, have been attending Agile Foundation sessions to learn more about how we work? Devops in Jigsaw Contributor: #### Chanting the DevOps automated deployment mantra, we did the following so as to make things neater in terms of best practices: 1. Replacing cron jobs with Rufus-Scheduler 2. Externalizing application configuration to a file rather than system environment variables Did you know? that Sudhakar Rayavaram, Rekha, Kalarani, Yekkanti Kishore, Ananth Kasillingam, Vivek Raghunathan are working on Android Apps? Few have been released to the market too. Some of them have started sizing and responding to Android proposals. How it helped: It helped in easier maintenance, faster deployment and as a team we were able to give continuous releases. Did you know? that Boojapathy Chidambaram wrote an article in Jan 2011 that appeared in Groovy Magazine? For internal use only. Please do not distribute. 4
  6. 6. Capability Application Contributor: ###### JBehave Navigations The Capability application is geared towards increasing focus on developing individual capabilities of all Thought Workers in Chennai. It is a tool where people can answer a few questions, which provide insight on the individual's expertise. The reports will help us to know where we stand as an office with respect to customer engagement. It helps to identify the gaps for different roles, which helps to plan further steps in improving the same. Further plans to add feedback in the application for the sessions conducted based on the areas, which were planned to be improved. Contributor: Aman King What was the need: Navigation between JBehave stories and Java step implementations was cumbersome. What we did: Wrote an IntelliJ Idea plugin that made navigation easier. You can check out the code at How it helped: ###### ######################## ###################################### ######## Story Grouping Contributor: Manjari Sharma Database Subsetting using Jailer Contributor: What was the need: At the time of inception, we realized that the business was not exactly clear about what they wanted and there was not enough information available to come up with a Master Story List just yet. The features were at a high level, and were not sufficient for us to plan the iterations or estimate. Also, the business didn’t have time & was not able to prioritize at the story level. What we did: We came up with “Chunks”. Chunks are a group of stories relating to the same area of functionality. They have almost the same size and fit in one iteration. The idaea was that the business would only prioritize chunks & not stories. How it helped: It ensured that at the end of an iteration, the business was delivered a complete piece of functionality and not just a set of possibly unrelated stories. Did you know?that Ramanathan Balakrishnan presented his ZFS talk at XConf Bangalore based on the work he tried to introduce in his project? Ajit Joglekar What was the need: We needed a local database for working at offshore as production data was getting replicated on to dev databases daily during offshore hours. This hampered the productivity significantly. What we did: We created a local subsetted database to provide stable instances for devs and QAs using an open-source tool known as ‘Jailer’. You can download it at How it helped: This required considerable on-going effort but we managed to have a local database, which helped us in regaining the lost productivity. Did you know? that Ashish Kumar Mishra created a Youtube extension called Smart Video, which has more than 24,000+ users (out of which 4,500 are on Firefox and the rest are on Chrome)? For internal use only. Please do not distribute. 5
  7. 7. Cutting Edge Testing Acceptance Test Driven Development Contributor: ###### Contributor: Anay Nayak What was the need: In the C4 project, the CMS (TeamSite) has been enhanced to allow building a page through a module-picker, which allows the Editor to choose components that would define the page (such as Related Links, Latest News etc). While this approach provides tremendous flexibility to the editor, in our application, the existing framework tightly coupled the view (StringTemplate) and the model (content defined by the Editor) to the selected module. These modules (teamsite + business logic + view files) are shared and used by different teams to build & support multiple websites. What we did: We now have acceptance tests, which verify existence of different page elements through xpath. These are similar to db-based tests, which insert test data and verify the content rendered on the page by the st files. They run very quickly and give us instant feedback about any changes done to the modules by other teams. We practiced Acceptance Test Driven Development for automating the automatable functional scenarios, wherein Quality Analysts paired with Business Analysts and the business and determined the requirements and converted them into the Behavior Driven Development functional scenarios using the “Cucumber Framework”. The same functional scenarios were picked up by the developers and they developed the feature based on the steps mentioned in the Cucumber scenarios. At the same time the Business Analysts and the business also went through the scenarios, which helped them to understand the behavior of our application. The strong collaboration between Quality Analysts and Developers helped us to automate the 100% of the automatable acceptance and edge case scenarios, which turned out to be a great success. Did you know? that Puneet Kataria & Sapna Singh for the 1st time ever, created a “User Experience Zone” at the recent Martin Fowler event, where they simulated the ThoughtWorks office environment, and thus got a tremendous response from the attendees of the event. Did you know? that the Finance team has moved from Tally to PeopleSoft, thus being able to pull reports 50% faster? Also the Recruitment team has moved from Lotus Notes to the very cool Avature platform? And the IS team have moved our infrastructure environment to a more stable data centre at Sify. Did you know? that Srihari Srinivasan runs an aggregator website called “Systems We Make” which has garnered more than 35, 000 page views in just 5 months! Did you know? that Anush Ramani contributes to Step Up Travel by helping governments across the world improve tourism in the rural sector and also by generating tourism analytics. For internal use only. Please do not distribute. 6
  8. 8. Large visible release planning wall to aid SMEs in visualizing the breadth of scope of the product and to view relative feature priorities Featured Project: Integrity Integrity Digital Solutions is a 8-person start-up based in sleepy Temple, TX. They got engaged with ThoughtWorks to develop a revolutionary Electronic Medical Record (EMR) product for Eye practices in the US. This makes Integrity a player to reckon with in the niche Ophthalmology EMR market. Integrity will probably be the only specialty EMR product that offers an intuitive, cloud-based solution with very little start-up costs for doctors to get up and running. This, in an industry where the norm is a high installation cost and thick client applications with ugly user interfaces, is a good place to be. The window of launch of the product is designed to allow doctors to take advantage of the HITECH Act, which offers a $44K reimbursement for EMR implementation. Below listed are the new things that was done on this project: Use of Ramdisk to reduce integration test times Our integration tests (that are part of the dev build) were particularly slow to run (a limitation of the tech stack). After trying a number of different methods to reduce build times, we had a 22-minute dev build. We decided to use the excess RAM on the laptops to run the build and reduce build times. Using RAMDisk software, we were able to mount some RAM as a separate volume and run the tests off this. The entire code and infrastructure are mounted on RAM. This reduced our build times to about 12 minutes. (Bharani) Use of screen capture tools and narrations to explain scenarios and questions to SMEs Being a distributed project, our SMEs were remote. Often, our only interactions would be through emails and the occasional Skype chat. While this worked, sometimes, emails were misunderstood and caused even more emails to fly around. Until we started using screen capture software with background narration (We used Jing) to walk SMEs through the different scenarios. Our application being fairly UI heavy with a lot of screen elements, this proved very helpful to have our SMEs understand our queries correctly and give us an answer accurately. Towards the end of our first release, we were busy discussing the future development roadmap of our product. The SMEs were having a lot of difficulty visualizing the different features and prioritizing them relative to each other in a timeline. Our onsite team came up with a huge physical release-planning wall with the cards having just enough detail so that the SMEs could look at it and physically move things around. This helped them get a much better picture of the big picture and in the end resulted in much better prioritization decisions. Ipad compatibility - code splitting When initially started, the ipad was not one of the supported devices on which our app was designed to run. However, it became an important device to support, especially since it has a lot of traction in the medical profession. Our app is a GWT AJAX app, so a lot of JS code is downloaded when the app runs for the first time. We found that our app crashed in the ipad browser because of the size of the JS code being downloaded. We resolved this by code splitting - essentially downloading only part of the JS when the app started up. When the user would browse to other tabs, the new JS for these tabs would be downloaded and the JS for other tabs unloaded. This helped keep our browser memory consumption low and enabled our app to run on the ipad and be showcased at an important industry conference; which was a huge success for our clients. ToUI and FromUI (aspect oriented programming) Instead of writing code to create domains from models we came up with a AOP script that would automatically create domain given the model. This reduced a lot of boilerplate code both in the model and in the domain. Skype channel to discuss issues and have a common chatroom for the team We were facing a lot of issues with communication between our distributed development teams (we are a co-sourced distributed development project spread across Chennai and USA). After trying many different things, we converged on creating a common Skype channel to keep the communication flowing. Team members would post important changes they made on to the Skype channel as well as post questions to leverage the hive mind. We also found that this increased the communication within the team (which had suffered a little bit when the team ramped up by nearly 100% over a period of 1.5 months). For internal use only. Please do not distribute. 7
  9. 9. Build parallelization We had a regression test suite that ran for about 2 hours. This delayed the feedback that developers required. So, in trying to reduce the build times, we decided to parallelize the setup that runs the regression tests. We created another Hudson instance and ran the regression on the slave process. We also overcame some issues relating to Firefox crashing when too many Twist instances were run in parallel by allowing some time between instances of Firefox starting up. This parallelization allowed the regression test to complete about 50 minutes. X.509 certificate based authentication We have a link device that is co-located in the practice LAN. This device needs to communicate with our application that is deployed in the cloud. We initially thought of securing the channel by using a standard username/password but dismissed the idea due to security concerns. We solved this by issuing a selfsigned x509 certificate and only distributing the public key to the link device. This way we could securely manage the communication channel between the link and the EMR application on the cloud Did you know? that Jaya Chakravarthi and Arvind Srinivasan recently shared knowledge about testing mobile apps at the Chennai office? Did you know? that Sudhakar Rayavaram, Kishore Chakravarthy and Krishnaswamy Subramanian are working on an RFID based library book checkin/checkout system? Did you know? that Vinay Venkatesh & Pavan K Sudarshan have created a “Scenario Analyzer” on Twist as a pet project, which goes through all the tests in a test suite and allows you to weed out duplicates. Vinay also created Twist scenarios, which would fill in his time sheets. Online Sales Rack The idea was to consider how we could partner with Sears and provide them with 'ideas' that could be converted into a solution in a short span of time. This would have to be a solution that will give them an edge over their competitors. The challenge was how to make the sell. We came up with an approach of making a sell with a quick prototype, which gives something tangible to the stakeholders to play with. Also OSR was the first idea that we presented to Sears amongst others. OSR is an iPad app that intends to provide a very user engaging experience to a shopper, getting him/her to reach what they want to buy quickly. The coolest part of the project has been coming up with the prototype. A lot of people came forward and contributed to the prototype on their personal time. Sears was very excited with the idea. In the first release, the target customer base was women; helping them with shopping apparel. We will be going live end of May 2011. We are also building Targeted Content Platform, a backend that will have the provision to cater to multiple front-ends, OSR being one of them. Did you know? that Sharath Kumar has submitted articles to InfoQ, Tejas Dinkar has been in the core organizing committee for FOSS for the last 7 years, Tejus Datta presented at the Microsoft Microfinance Leadership Summit & IS Ram runs an open source environment called Belenix. Did you know? that Preethi Dasa recently made a video in Kannada for SIMPA’s end users, thus setting an example on how we can go the extra mile for the customer. SIMPA is a client under our SIP program. For internal use only. Please do not distribute. 8
  10. 10. Mobile App Development Contest at Bangalore The worldwide market for mobile application development is buzzing and keeping this in mind, we ran the Mobile Application Development Contest at TW Bangalore; so as to trigger and kick start capability development in this area. We had 10 application submissions across various platforms (iOS, Android, WP7) and are in the process of announcing the winners. Each team is being evaluated on various parameters such as usability, market potential, code quality, automation, technology & robustness. Thanks to Prakash Subramaniam, Nandha, Jive, the Evaluation Team and everyone else involved in driving this initiative. Please note that these applications are prototypes and currently are works in progress. Please send in your feedback to the respective teams, so that they can improve their application. Smart Shopper: This iPhone application synchronizes your shopping experience/shopping list with a group of people; developed by the team comprising of Lucy Kurian, Hari B, Mahadeva Prasad & Balaji Devarajan. Go Feeds: This Android application is a Continuous Integration tracker or a feed reader for Go feeds that the Go server publishes; developed by the team comprising of Rajesh Muppala, Anandha 'Jake' Krishnan, Sachin Sudheendra & Adarsh. Video Trimmer: Unable to edit videos on your cell phone? This application allows you to edit mobile videos on the fly; developed by the team comprising of Kiran Pratap, Rayala Udayakumar, Kaushik Chandrashekar & Satish. Blip It: This app uses geo location data to help people who are in need by channeling aid through various service providers; developed by the team comprising of Kalyan 'Buddy' Akella, Diptanu Choudhary, Chetan Venkatappa & Kiran G. The team posted this idea on the Mobile Active user forum, and have got many positive responses from humanitarian & philanthropic organizations. Panacea: This picture application uses real time face recognition technology & lets us leverage augmented reality in the enterprise; developed by the team comprising of Ritesh Nayak, Navneet Kumar, Manohar Akula & Nikhil Nulkar. App Market: This Android based application gives the user valuable insights by combining the data from the app market and elements of social networking; developed by the team comprising of Alok 'Luka' Simha, Venkatesh Munireddy, Nandhakumar Ramanathan & MLN. BuildMonit: This application has been exclusively developed on the iPhone platform and lets you easily monitor your continuous integration server Go; developed by the team comprising of Arvind Kunday & Usha Chinnathambi. Proximie: This application is a location based messaging system that sends you alerts based on which location you are at; developed by the team comprising of Pradeep Sashidhara, Avinash Chugh, Vineeth Venudasan & Jijesh Mohan. Kannada 4 Android: This application uses Optical Character Recognition technology to understand regional languages such as Kannada, developed by the team comprising of Rajeev Nair, Hariharan T, Shriram Sridharan & Antony Raj. The team has presented this mobile application at “Mobile Camp Bengaluru” at IIM Bangalore and have also been featured in Bangalore Mirror. Salta: This application allows you to access your contacts on the cloud and thus enabling easy and real time contact management; developed by the team comprising of Amiruddin Nagri & Rajveer Singh Rathore. Congratulations to all the teams and coming up with these applications and may the best team win. The Editorial Team This newsletter was compiled by the blood, sweat & tears of Chetan Agarwal Rajiv Mathew Sanjay Sudhakar Mukesh Kumar For internal use only. Please do not distribute. 9