Some Best Practices In XP

  • Let it Sync

  • Mentor your Team

  • Don't Force Pair Programming

  • Continue to Test

  • Refactor Code

  • Backup your code
  • Last but not the least -Innovate -Every project has it own challenges.

Roles In eXtreme Programming

Two Main Roles
On-site customer
Supporting Roles
Team Lead (Coach)
Tracker Checks in every now and then. do you have this checked in yet?
Project Manager

The Rest Of the crew is not seen and is above the PM.

Steps In eXtreme Programming

User stories are written.
In this phase, a 'Small Spec' is written out. It often includes the developers too.Not just the functional team.

::FACT:: There can huge advantages of not writing a whole lot in the Spec. That does not mean you miss conveyaing the requirement. This is because the reality in Project Management is that People Know what they really want only after they see half the piece.

It is a bit like shopping for the decoration items for you house. It takes a while before the customer can see what he wants. This is very true if the company /project is less than 10 years old. And the fact is there are a lot of them.

:: FACT :: Dont Jump Into Coding ! Read the User Story.

Iteration Planing Plan a small increment /changes
Helps Make Make frequent small releases.

Release planning creates the schedule.

Small releases Help Track Bugs and helps you to plan for them.

Note : Track Your Project :: But Don't Mess up the happyness of your developers! Have faith in them. ::

Note :: Plan Buffers and track Buffer Absorbtion a the Project Level. ::

Agile Project Management Vocabulary

Customer: the person or group defining the need for the system.

Story: a feature or capability of the system that a customer values.

Estimate: the cost (usually time) to implement a story. In XP, estimates are relative; a story is estimated as costing 1 to 3 "story points."

Programmer: the person or group that estimates and implements stories.

Team: the customers, programmers, and managers who are jointly working on the system.

Release: delivery of system (usually to end users).

Exploration: part of the release cycle: when customers create stories, and programmers estimate them.

Iteration: part of the release cycle: a fixed-length time for implementation of stories. An iteration is time-boxed: if all stories can’t be completed, stories are dropped rather than the iteration extended.

Release Plan: a flexible, overall plan that tells which stories are expected in which iteration, for a whole release.

Iteration Plan: a small plan that tells which features are expected in the current iteration.

Java Generics

Generics: is a Mechanism in Java 1.5 (aka JDK 5) that allows us to template paramters while using Java Objects. What this does is tremendously reduce code to typed in.

import java.util.*;
public class Test { public Test() { }

public static void main(String[] args) {

List words = new ArrayList();


for (Iterator i = words.iterator(); i.hasNext(); ) {
String s =; // Look MOM not CASTING !!!

String s1="";

// new Kind of Looping with Generics

for(String x : words) // read as: For each x in Words
{ s1+=x;
System.out.println("s1 is " + s1);

System.out.println(s1); }

AutoBoxing : Tiger [a.k.a Java 1.5]

AutoBoxing :
Formerly we could not do stuff Like

Integer a = 6;

instead we did a :

Interger a =new Interger (6);

This is now automatic.

We can also do
Integer b = a *5 +1; // compiler unboxes for reference

Neat dont you think .

If you use JDK 1.5 specific features ,needles to say, you will need the same or better runtime engine.

Warning : This Messes up you Interview / SCJP preperation study !!!

On the other side it save you a lot of text while coding . A small price to pay.

Java: Not Just a Technology

Java And Xtreme Programming are a Two to Tango :

Xtreme Programming: is the result of certain Amount of settling down that takes palce in the SDLC models. It can be skinny or Massive . The Process is after all defiend by you

Java: has been around for a while and most of us know it as a programming language alone. The Programmer will be quick to tell you that it is a Language. That is true ! But that is not all.

Java is :
IT is a Programming Language
An Embed Systems
and Virtual Machine

and for many of us a Entire new way of Thinking.

Most of the people would tell you 'I Love it ', and I'm no Exception :) .

The Most Happening thing these days (Mar 2005) is J2SE 1.5 (a.k.a )

Tiger (Lots of new Trick with this cat.)


and a Interoperablity between Java and .NET

J2EE on the other hand is a Java Standardization method for Enterprise Apps

I will soon Be soon adding some Info on my site / this blog . Keep reading