Agile India 2006 (BANGALORE)
Bangalore, 5th-6th May 2006

Keynote - History and Evidence - Iterative, Evolutionary and Agile vs the Waterfall

Craig Larman

Introduction to Agile
This talk will introduce the values and principles of Agile using Theory of Constraints and Lean Thinking. At the end of this session, the audience would have a better understanding of how Agile addresses some of the major roadblocks to effective software development.

Naresh Jain

Agile MDD
Agile software delivery methods and Model Driven Development (MDD) techniques are two separate and equally powerful forces gaining momentum in the software industry today. To date, however, Agile methods and MDD have been, at worst, seen as incompatible and, at best, considered uncomfortable bed-partners. We however, believe these techniques to be entirely complementary and, from our first-hand experiences, we see Agile MDD as presenting a compelling value proposition to software development organisations that put a priority on satisfying their customers. In this paper, we elaborate on this position, exploring how an Agile interpretation of MDD and an MDD-inclusive Agile development process lead to better solutions. We also present, in some detail, how we have implemented Agile MDD as an integral component of our overall delivery model, known as Sapient|Approach (S|A), backing theory with real-world examples.

Erik Gottesman

TDD, Refactoring and Dependency Injection: Agile's answer to "big up-front Architecture"
Agile suffers from perpetual accusations that it cannot compete when situations demand "big up-front architecture" (BUFA). Agile practices and Dependency Injection are more than a match for a protracted design stage popular in other methodologies. Paul Hammant, outlines how this works in practice.

Paul Hammant

Design And Implementation of Robotics Languages
In domains like Robotics, language construction is a necessity.Considerations of space and time efficiency, concurrency and real time requirements, and the absence of full toolchains (assembler/linker/c compiler) for most hardware makes language design challenging. Given an array of custom hardware, and the need for imlementing ai algorithms, how can adeveloper design and implement an appropriate language? How far is the agile approach applicable to such a task?

Ravi Mohan

Agile Approach to Bootstrapping a custom Firmware for Lego Mindstorms
Lego Mindstoms is bundled with a programming environment that does not give much cotrol or flexibility. Custom systems (LeJos, BrickOS, pbForth ) created by the community works at various levels and provides programmable systems with differing capability. Given a micro-controller like Lego Mindstorms RCX, with its assembly language known, how can one bootstrap a custom Firmware from scratch? This session shares the experience report of applying agile principles to bootstrapping experiment.

Rajesh Babu

Fixed Bid Agile

Panel I

Keynote - Agile Development with DSDM
Agile development is often seen as something relatively new. In fact many of the practices expounded have been around for quite a few years. Ten plus years ago IT professionals were, of course, experiencing many of the issues that agile methods hope to prevent – the wrong system being developed in isolation from the business and taking much longer than planned. In an attempt to counteract this, and also prevent a movement into a chaotic, hacking world, 12 leading companies including BT, IBM, British Airways and Logica got together to create an independent agile method which also ensured quality and control, that method was DSDM.
This session will discuss:
* The problems DSDM helps to solve
* The key working principles within DSDM and how they merge nicely with the Agile Principles
* The key techniques DSDM offers to ensure timely delivery of solutions that truly meet business needs and provide business benefit.
* How DSDM is a good fit with project management tools such as PRINCE2.
* How DSDM can be used together with the PMBOK.
* Some case studies of projects the speaker has carried out, with both the successes and areas to watch out for.
* The applicability of the method to offshore projects – the subject of a recent DSDM white paper co-authored by the speaker.
* The future for DSDM and Agile.

Steve Messenger

If software development teams do not spend enough time to review, share and learn from past experiences, organizations lose out on a key benefit: increased capability. Every member has a piece of the story and very few know the whole story. Perhaps several individuals know a better way to do things, if only they had dedicated some time for the retrospectives. Organizations that don't do retrospectives are leaving money on the table when it comes to increasing their capability to build quality software and deliver on time.
Retrospectives provide teams a chance to capture the experience of a project and generate team learning. They support deeper learning than can be achieved by simply making a 'what went well' and 'what didn't go well' list or holding a short 'post project review' meeting. Now that I firmly believe that 'over-communication' is one of the key factors of a successful agile project, I see retrospectives as vehicle for effective communication.
It is people who make or break projects. Processes do matter. But the combination of people with proactive attitude, and agile process always work. What's more important is the attitudes of the people involved. The right attitude of a project team is to get engaged in effective communication. And retrospective proves to be an excellent medium. In this case study, I discuss how we successfully used this practice to save a distributed agile project, which was bound for failure.

Bapiraju Nandury

Cultural Impact on Agile Processes
Enterprise software development is a team game. Agilists realise this fact. Agile manifesto puts people above all others to achive significant gains for software development. Major pitfalls can be avoided in adopting agile if we also realise that most of our behaviour is influenced by our upbringing and surroundings. While there is excellent literature around regarding agile principles and practices, most of it is grounded in western beliefs and culture. Understanding the impact of culture and situations on team effectiveness is first step towards becoming agile. KD is a science graduate from Andhra University.

Dakshinamurthy Karra

XP in Product Support Environments: An experience report
This will provide an insight in to how Subex supports its installations after deploymnent. It would cover the aspects of how the product/ Features are developed in Roadmap team,Delivered by the Customer Delivery team with customizations as needed and finally supported by the Support team. The guiding factor will be how XP's processes and Principles helped.

Prashant Shah

The Deployment ProductionLine
Testing and deployment can be a difficult and time consuming process in complex environments involving components such as application servers, messaging infrastructure and interfaces to external systems. Deployments sometimes take several days, even in cases where teams have used automated builds to ensure their code is fully tested. In this talk I'll describe principles and practices which allow new environments to be created, configured and deployed to at the click of a button. I'll discuss practices to follow to fully automate your testing and deployment process using a multi-stage automated workflow. Using this 'deployment production line', it is possible to deploy fully tested code into production environments quickly and with full confidence that you can fall back to a previous version easily should a problem occur.

Jez Humble

Conference Retrospective
A Retrospective of the conference with the delegates, organizers and volunteers which looked at the conference organization, content etc and came up with feedback, suggestions for future events.

Organizers and Volunteers

Demonstrating DSL like capabilities of Ruby
In the recent past there has been a lot of buzz surrounding the concept of Domain Specific Languages. Words like Internal and External DSLs, Language Workbenches and the sort float around the blogsphere. We would like to share with you the results of our attempts to understand some of these concepts. We would like to use the Ruby language to illustrate some of these concepts due to it's dynamic capabilities which allow expressing these ideas succintly. We will do this by using said features of the language to create a simple DSL to solve a simulation problem.

Lakshmi Narasimhan Sudarshan and Badrinath Janakiraman

Testing Web Applications with Watir
No self respecting 'Agilist' would let java code go out of the door without heavy and frequent testing. So why write web based front ends without and equally rigourous approach to testing.
After years of expensive and difficult to use front-end testing tools,a small set of open source tools are now giving developers the option to easily run automated tests for their web applications. Watir, a ruby based web testing tool, is one such product that has been drawing rave reviews recently.
The elegance of Ruby ensures that writing tests in Watir is easy AND maintainable. This session will take the audience through the process of creating a test suite with Watir. We will, in the process cover
* The basic approach and design of Watir
* The essential syntax of Watir commands
* How to put together a Watir testcase
* Watir based capture tools
The session will primarily consist of a live demo, where we create a Watir testcase and run it against a web application.

Avik Sengupta

Challenges in implementing XP
How should an organization go about implementing XP? There are many challenges that an organization faces in implementing XP.
How many (and which) of XP practices to begin with in adopting XP? Going whole hog with all the practices of XP in one go would be too ambitious and impractical. How to decide which practices to begin with? And how to implement them?
How to get the top management buy-in for some of the difficult-to-digest-initially practices such as pair programming, incremental design, etc.?
How to negotiate the contracts with customers for XP projects? How to convince the customers for small release cycles?
How to explain to the developers the benefits of XP and its practices, such as test-driven development, pair programming, etc.?
How to coach the team before adopting XP for a project? How to actually go about working with really small release cycles? How to work with weekly iterations within release cycles? How to set guidelines for pair programming? How to make programmers really like writing tests before code?
These are some of the questions which would be addressed in this session.

Pradyumn Sharma

Agile Within
This paper describes the successes and challenges of adopting the Agile Scrum project management methodology for a global software product development company. What was the need, how did we identified the criteria, selected an approach and started using it. This all was done within the organization with no external or management influence, lays the foundation of 'Agile Within' research paper.

Kanwarjit Singh

Sahi - a Web Automation and Test Tool
Sahi is an automation and testing tool for web applications, with the facility to record and playback scripts.Developed in java and javascript, this tool uses simple javascript to execute events on the browser. Features include, in-browser controls, text based scripts, ant support for playback of suites of tests,and multi threaded playback. It supports HTTP and HTTPS.
Sahi runs as a proxy server and the browser needs to use the sahi server as its proxy. Sahi then injects javascript so that it can access elements in the webpage.This makes the tool independent of the website/ web application.
* Recording of browser actions.
* Playback of recorded/scripted actions.
* Accessor Viewer for identifying html elements for scripting
* Easily editable scripts (text files)
* Simple APIs
* Integrates with ant builds
* Logging/reports
* Script is in javascript hence supports concepts and constructs that javascript supports
* Support for global variables stored across pages in a test and across tests in a suite.
* Script refactorable into functions and files.
* Scripts runnable through url. Bugs can be recorded by testers and the sahi script can be published on a web server. This url can be included in bug reports. Developers can reproduce the bug by pointing to that url in the bug report.
* Scripts automatically available to others through HTTP
* Very lightweight
* Tests do not need the browser window to be in focus.
* Suites can run in multiple threads thus reducing the test execution time.
* Supports external proxy and HTTPS.

Narayan Raman

Bringing Innovation and Design - I
As Kjell Nordström and Jonas Ridderstråle describe in Funky Business. The 'surplus society' has a surplus of similar companies, employing similar people, with similar educational backgrounds, coming up with similar ideas, producing similar things, with similar prices and similar quality. The only way in which companies can differentiate themselves, is by bringing radical differences in what we offer to our customers. This can be achieved only by bringing innovation and design. Though these words are spoken at every board room and part of every company's vision statement, there is no clear process created so far to make that happen.

Henry Jacob

Bringing Innovation and Design - II

Henry Jacob

Active Record Internals
Recently the software community has been abuzz with talk about the wunder-software known as 'Ruby on Rails'. Not a week goes by without some new application using Rails making its debut. While there is a lot of material to be found for the aspiring coder-cum-web-app-developer, relatively less has been said about the internals of this very nifty piece of software. One cannot develop a Rails app without relying on something called 'ActiveRecord'; but how much do developers know about how ActiveRecord works? Will they be able to come up with ActiveRecord in another language if they so wish? Or tweak its properties? This session aims to take developers into the engine room of the Rails factory and show them how the steel is really forged.

Manoj Easwaran Govindan

Inventing an Agile Flavor
We all now know that agile is the way to reduce risks in projects, reduce cost, improve quality, etc. But do we really need to follow a particular flavor of agile like XP, Scrum, etc to reach the above said goals or can we invent our own flavor which works for our organization and succeed in implementing it. In this presentation I would discuss a case study of the project(onsite-offshore model) where we faced challenges in setting up of agile team, how we were able to change the traditional development mindset of the team towards agility,etc. During this process, you would get an insight into steps that could possibly work for you to become agile in your projects

Venkatesh Krishnamurthy

Frankenstein, functional testing for SWING
Frankenstein is a functional testing tool for Swing UIs. Basically, the tool works with FIT like scripts that can drive the user interface.
The major features are:
- Generates simple, human readable scripts that are meant to be shared within an agile team
- Support for multithreaded applications.
- Record and playback support.
- Fast script execution, with no arbitrary waits / pauses required.
- Allows extension for supporting custom components.

Vivek Prahlad

Developer Testing - An introduction
XP popularized developer testing through the concept of Test driven development. This topic covers basic tenets of TDD and Associated Tools and Techniques. It will also cover the tester's role in an XP Project and "Incremental Testing - an insight in to the process followed by Subex development teams."

Ajmal Y

XP and C++ (Workshop)
This workshop will focus on the usage of CPP Unit and the application of agile practices to C++ code.

Subex Team

Strategies for Testing J2EE Components (Workshop)
The intent of this session is to expose the participants to different strategies for testing J2EE components, their strengths and weaknesses, as well the tools that facilitate their implementation.

Nothing can make a developer more comfortable than a fully automated suite of tests covering all components of the system. Because of the dependencies that J2EE components have on the container hosting them, testing J2EE components is much more difficult than testing standalone, regular Java objects. JUnit alone is not enough to test them simply because JUnit was never intended for integration tests.

Fortunately, several solutions are available. This tutorial presents two strategies for testing J2EE components:
1. Out-of-the-container testing using mock objects. Attendees will learn how to use mock objects to test J2EE components in isolation.
2. In-Container testing using in-container testing frameworks like Cactus, JUnitEE and Patang. Attendees will learn how to test J2EE components inside the container.

This tutorial will cover the benefits and drawbacks of each approach. This session will not cover Spring, PicoContainer and NanoContainer.

Naresh Jain and Bhavin Javia

XP Game
Learn iteration planning essentials via an exciting game.

ThoughtWorks Team

Selenium / Agile web testing (Workshop)
Selenium offers a range of ways that web applications can be tested. Whether PHP, JSP, ASP, Rails or Python, webapps can be tested on Mac, Linux or Windows in Firefox, IE, Safari and others. There has never been a time when Agile testing of web applications has been more easy or comprehensive. Paul Hammant will introduce then lead the audience (those that have brought laptops) through some testing of a supplied web application.

Paul Hammant


2005-2017 Copyright © Agile Software Community of India
Website designed and hosted by Agile FAQs