Sharing Info

As Projects continuously grow in size in a dynamic country like India , attrition can not be stopped. So what do you do ? First Reduce Attrition.

And Capture as much info as possible. Capturing info is not just documentation.

  • Training Sessions (peer2peer ) and otherwise
  • Post Project Examination (post-mortem)
  • Summary across Projects.
  • Post Project Personnel Interview
These are just some tips. You will need to Innovate anyways

Project Estimation


The hardest thing is in successful project development is estimating the size and hence the time correctly. There area wide verity of formal methods. Most important factor , IMHO , is the experience of the the team. I have always felt that if the Project Managers can put their head together to estimate the task durations, their vast experiences will finally start having some meaning as it will become a valuable resource for the organization.

This also means that the knowledge of the experience Project Manager will be shared across the team making other equally skilled.

After all , when we share knowledge we multiply it. Live , Learn and Pass it on.

OffShore and outsourced Projects

Off-Shoring Projects
Projects are offshored for many reasons such as derth of people in a given technlogy, cost , location of client and a whole lot more. For whatever reason you are outsourcing it, the key factor is successful implementation.

There are two varieties of outsourced / offshored Projects
  • Self-mananged and
  • Client Managed.

In Both the models start out wiht having faith.

Don't Fire people in the first week : They need to audjust to your style of doing things.

Language: People mess up when they speak. Dont watch the words. Understnd the meaning.

Adopt small mouldes .Use Xtreme Pograming or Agile techniques to get control over the tasks.

Last but not the least Have a Mentor.
To achieve success start with the best foot forward. Have Faith ! Oh yes !

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