Friday, February 6, 2009

Agile Project Management for IT Projects (ppt)

Traditional Project Management techniques are not always able to implement a project successfully because of continually changing requirements.
And also due to current global recession many companies are finding it difficult to maintain positive profit margins through traditional approaches and thus are focusing towards stringent cost cutting measures.
Information Technology is one of the biggest affected areas and thus it becomes relatively important to reform the existing traditional ways of handling projects so as to maximize the profits, both in terms of cost and time.
This research extensively targets the Agile Methodologies in Project Management and how their implementation can prove beneficial for the companies.
This would provide guidance to the companies to figure out which projects can be more productive with implementation of agile methodologies and also ways to, effectively switch, from the existing project management methodologies to agile methodologies.

I have uploaded a presentation on Agile on the following link: http://www.slideshare.net/rachna_nainani/agile-project-management-for-it-projects

Thursday, January 1, 2009

A big misconception-Agile Methodology involves no planning

When you study about Agile, in the initial stages it seems that agile does not include any planning. This misconception generally relates to lack of understanding of agile approach. Most agile team spend as much, if not more, time planning their projects. The difference is that this planning effort is spread throughout an entire project as opposed to being compressed into the beginning of the project. As opposed to extensive, upfront planning, agile development simply follows an incremental approach to planning, which allows for initially planning at high level and iteratively planning at lower levels as more and more knowledge is gained.
If we look at the actual results of the traditional project plans, detailed, task based project plans created at the beginning of software project oftentimes quickly fall out of sync with the technical and business realities of a project. Overtime, significant energy is expended in reconciling the original plans to these current realities. On the other hand, agile development accepts this volatility and instead replaces detailed upfront planning with “continuous planning”
Given that the technology, requirements, business demands, people, issues, risks etc are almost in flux in virtually all software projects, this type of continuous planning approach provides the team with the necessary process-based ammunition to much more easily and efficiently adapt to change. In addition, teams are also able to incrementally optimise their plans as new information emerges.

Visitor Managememt System-Start Up

In this assignment we are following rational unified process for implementing Visitor Management System. Till now we have implemented only two phases one is inception and other is elaboration. We did inception phase in two iterations but still we could not realise that we were unnecessarily making the system design too complex. Then in elaboration phase we realised that our system design is becoming complex and we need to make some major changes which will almost change our whole system.
When you do such kind of practical exercises then you actually come to know what can be the intricacies of designing and implementing a system. You really have to think like a customer who is a layman and then at the same time you have to think like a developer, business analyst and project manager. These kinds of exercises are really helpful.

Things I found weird about Extreme Programming? And the explanation which I got for those weird things…

In extreme programming the scope is not fixed which means that the system should be designed in such a way so that it can incorporate any changes (which are required) in future. But one of the core value of extreme programming is simplicity which means when you are programming for a requirement you just check whether that requirement if getting fulfilled or not. You do not program for future requirement. I found both of these things a little contradictory. Because when you are talking about unfixed scope then your system should be flexible enough to incorporate changes but when you talk about simplicity you yourself are making your system rigid by not taking the future requirements into consideration.
I asked Parag sir: if in some project when you are doing the requirement analysis, you see that “def” requirement is also important and you will have to implement this also in the system. Then while coding for “abc” requirement why won’t be code in such a manner so that when you code the “def” requirement it becomes easier to implement. Then he said when you say that the scope is not fixed that it is also not fixed that after “abc” requirement “def” requirement would be implemented. It can happen that after sometime you realise that “pqr” requirement is more important than “def” requirement. Or may be it can also happen that you decide not to implement “def” requirement in future. That’s why simplicity is followed in extreme programming. And it is very rare that because of some future requirement you have to start working on the system form the scratch.

Fact which I learnt in RUP workshop

I have got placed in ICICI Prudential for the profile of project manager. And in this workshop I realised that I do not fit in this profile. Infact I realised that till now I do not know what profile will suit me. Whenever Parag sir gives us an example that a project manager has to do these things I really do wonder how I will do all those things. I am more towards business analysis but still I will do project management. This recession left us with no choice actually, whatever profile came I grabbed it.
Now when I am into project management, can anyone tell me what all I need to learn (other than coding) for it? Is it really mandatory for a project manager to know coding?