Flickr Badge

Saturday, March 12, 2005

Agile India - Ravi Mohan

One of the talks I attended was given by Ravi Mohan. Ravi described his experiences in applying Agile methodologies (XP in particular) to his project.

To start with, the project is not your typical everyday project. The project is in the AI domain, and is implemented in a combination of Lisp, Erlang and C, with Ruby as the glue between the three. The whole thing runs on a cluster of around 200 unix boxes with a parallel virtual machine layer above it. The entire project had a team size of one (Ravi himself).

Given a project like this, is it possible to apply agile methodologies to it?

The conclusion was that it is possible to apply some of the practices, but some of them crashed and burned. For instance, XP says that the customer should always be available to give feedback. That was impossible here. Another problem was getting unit testing tools for code in Lisp and Erlang. Yet another problem was that some functions were probabilistic in nature (for eg. return true 90% of the time), so if it gave the wrong output, it was often unclear whether it was because of a bug or because it was in the 10% when it was supposed to give another output.

Other practices like breaking up the requirements into stories worked very well. Continuous integration was another big success.

Overall, XP kindof worked, but not without heavy modification of the process (is it still XP then?).


Anonymous said...

It still is XP imho . at least it "feels" like XP . The disconnect comes from the fact that XP was created in an enterprise setting .When you have a project which is essentially R and D , where math skill is as important as programming skill. some of the assumptions of XP break down . for eg , XP assumes that requirements are *expressible* in English :-) . in my project this doesn't hold :-)

Anonymous said...

Sounds interesting. I'm wondering what's this project about? Is it some commercial venture (I'm guessing so from the 200 unix boxen). And why were so many languages essential?

Siddhi said...

It was an AI project for classifying some data for the defence dept. Basically involved taking a bunch of data and classifying certain pieces for further analysis. The idea is that the system should learn as it gets more information.

As such there is a lot of input coming in every sec, hence the parallel algorithms.

Erlang - for parallel processing code
Lisp - for the AI classification algorithm
C - for speed critical computation
Ruby - to glue the inputs and outputs between the above three modules

Use the best language for the problem, etc

Sankar said...

IEEE Final Year projects Project Centers in Chennai are consistently sought after. Final Year Students Projects take a shot at them to improve their aptitudes, while specialists like the enjoyment in interfering with innovation. For experts, it's an alternate ball game through and through. Smaller than expected IEEE Final Year project centers ground for all fragments of CSE & IT engineers hoping to assemble. Final Year Projects for CSE It gives you tips and rules that is progressively critical to consider while choosing any final year project point.

Spring Framework has already made serious inroads as an integrated technology stack for building user-facing applications. Spring Framework Corporate TRaining the authors explore the idea of using Java in Big Data platforms.
Specifically, Spring Framework provides various tasks are geared around preparing data for further analysis and visualization. Spring Training in Chennai

The Angular Training covers a wide range of topics including Components, Angular Directives, Angular Services, Pipes, security fundamentals, Routing, and Angular programmability. The new Angular TRaining will lay the foundation you need to specialise in Single Page Application developer. Angular Training