Showing posts with label project management. Show all posts
Showing posts with label project management. Show all posts

Wednesday, 10 October 2012

12 Common Project Management Mistakes--and How to Avoid Them

A very nice article, I think most of it is based on common mistakes that we face practically.Solutions provided also are practical and can be implemented.

In beief:
Project Management Mistake No. 1: Not Assigning the Right Person to Manage the Project

Project Management Mistake No. 2: Failing to Get Everyone on the Team Behind the Project

Project Management Mistake No. 3: Not Getting Executive Buy-in

Project Management Mistake No. 4: Putting Too Many Projects Into Production at Once.

Project Management Mistake No. 5: Lack of (Regular) Communication/Meetings

Project Management Mistake No. 6: Not Being Specific Enough with the Scope/Allowing the Scope to Frequently Change

Project Management Mistake No. 7: Providing Aggressive/Overly Optimistic Timelines.

Project Management Mistake No. 8: Not Being Flexible.

Project Management Mistake No. 9: Not Having a System in Place for Approving and Tracking Changes

Project Management Mistake No. 10: Micromanaging Projects

Project Management Mistake No. 11: Expecting Software to Solve All Your Project Management Issues.

Project Management Mistake No. 12: Not Having a Metric for Defining Success

http://www.cio.com/article/717321/12_Common_Project_Management_Mistakes_and_How_to_Avoid_Them?page=2&taxonomyId=3013

 

Thursday, 13 September 2012

Software Estimations : Introduction

You may be a good software developer but that doesn't qualify you to be a good estimator.
Software estimations are a totally different part and parcel and they don't have a much link with your development skill.
Estimation is a skill and you need to hone it to be a practioner.

But what's the need to learn software estimations?
The only reason I would say is a failed estimations lead to a failed project. If you want your project to succeed, get good estimators to work.

In these series of articles we will learn:
   Software Estimations : What it is?
   Software Estimations : Whats the need?
   Software Estimations :  Estimates Vs Planning
   Software Estimations :  Communication
   Software Estimations : Factors Influencing them
   Software Estimations : Good vs Bad
   Software Estimations : Creating a good estimate
   Software Estimations : Tips and Tricks
   Software Estimations :  Techniques
   Software Estimations :  Approach based on development methodology
   Software Estimations :  Estimating Schedule , Cost and Work
   Software Estimations :  Estimating Scope
   Software Estimations :  Estimating the phases
   Software Estimations :  Planning and Trade Offs
   Software Estimations :  Quality
 
   Lets begin our journey into software estimations.




Tuesday, 28 August 2012

Software Requirements- part I





To develop and deliver a good software, understanding requirements is very important.
Here I will try to give a very brief idea on requirements.
So to start with :
What is a requirement?
In simple english , requirements are nothing but description or specification of a system.
A system can be anything , a 'table', a 'chair' or a 'software'.
If I am told to create a table , but I don't know where the table will be used , I might end up creating a very beautiful glass top , oval dinning table when the user wants a very simple , square shaped , firm , wooden study table.Similar is the case with software , I might end up developing a automated travel booking system when I was expected to create a complete software to help user book holiday packages.
So, it is very important to understand the business needs , the functional and the non-functional requirements of software you are going to create.
Here we have introduced three terms: Business needs, functional requirements; non- functional requirements. So what are these?
Business requirements: These generally define those characters that can enhance the business value of a product/software.
Functional requirements : These are the general functionality(behaviour) which the product/software being developed should possess.
Non-functional requirements :Non-functional requirements are characteristics that judge the behaviour(functional) requirements of the product/software.

Functional Requirements:
Functional requirements are general statements of services the system should provide.
A functional requirement is stated by a definite(or set of definite) input(s), a definite behaviour and an expected output.



Functional requirements define 'What' a system should do.
examples of functional requirements(for a banking software) :
1. Logging into a system
2. Transffering Money
3. Issueing e-checks
4. Viewing statements
5. Logging out of the system.
Non-functional requirements:
These are characteristics or behaviour of a system.
Non-functional requirements support the functional requirements.They define How a system should work.These are the behavioural attribute, quality attribute or constraints on a system.
examples of non-functional requirements:
1. Usability
2. Testability
3. Maintainability
4. Scalabilty
5. Performance
6. Security
7. Availability
8. Auditability
9. Licensing
10. Extensility
11.Portability
12. interoperability
13.Reliability
14. stability
15.Quality etc.
Business Requirements:Business requirements are too typical to a particular client.
These requirements generally run over business rules , metadata etc.
For example : Calculation of a interest over a particular loan may vary based different clients.
Business requirements at time also cover the ToM(Time to Market) and TCO (Total cost of ownership.)
Question:Can you tell if Installability ,Synchronization, help files are functional, non-functional or behavioural requirements?Justify your answer.
Installability :In my view installability is a non-functional requirement.
Reason : installability basically says on which platforms application can be installed.
Synchronization:I will classify synchronization as a functional requirement .

Help :Help again is a part of documentation and training , which comes as a non-functional requirement.
Characteristics of good requirement:
Following are characteristics of a good requirement, I call it 5C-OF-UMV.
1. Correct
2. Complete
3.Consistent
4.Cohesive - One requirement should only speak about itself.
5. Complete
6. Observable - Requirement is observable if no assumption with internal logic/architecture are stated.
7.Feasible
8.Unambigious
9.Mandatory : In absence of the requirement product/software is unacceptable unless stated otherwise.
10. Verfiable
Who should define requirements?
Ideally requirements should be defined by all stakeholders for a product including beneficiaries and customers.
Who should know the requirement?
Ideally whoever is directly or indirectly linked to a particular product/software being developed , ranging from Product Manager, Project Manager , to developers and testers everyone should have a clear picture of what is expected out of a product.
Does requirement change?
Generally high- level requirements do not change, they remain same from start of a product till the product is in market but at times the features for some of the requirements might change.
For example , if my requirement is a software which does arithmetic calculations for me is my requirement. My requirement may change from a basic calculator to a scientific calculator but my base statement of requirement of a calculator hardly changes.


In this article I tried to explain the very basic things about requirements , in next article we will see requirements in further details.



Monday, 20 August 2012

Tips: A successful Project Manager



Way back in school days (primary school), everytime before the english exams my mom used to make me write an essay on discipline.
I started writing on disciplinr right from when I was in the 2nd grade. Unknowlingly writing those essays helped me embibe discipline all through my student life.When joined my first job , I don't know why but during the 3rd year of my career in IT I felt for first time that life was completely controlling me.I had no control on anything at all.
When I got married (thanks to my hubby) I found my life back.His Discipline got me disciplined and I am back to action.



Lack of disicipline is the cause of failure in people, families, careers, and business than everything else combined.Ultimately, all discipline must be self discipline. Nothing else will have any real lasting benefit.We must learn to discipline ourselves to do what we nedd to do, when we need to do it, whether we feel like it or not…

How can discipline help us in successful project management I read a few tips at pmi.org
I am listing them here:

- Plan the next work week's activities a day or two ahead of time.
- Confirm activities the day before
- Conduct daily reviews of what you did or didn't accomplish
- Follow through on your commitments
- Avoid time-wasters, such as unrelated conversations
- Practice staying within the time allotted to the meetings, tasks and activities
- Hold yourself accountable for your own deliverables by using a daily tracker document
- Communicate with stakeholders and sponsors regularly, regardless of the results
References:
Happened to read following at http://randomthoughtsonlifeblog.com/2012/07/10/the-lack-of-discipline/

Tuesday, 24 July 2012

Critical Path : Why is it Important


What is critical path?

Critical path method is a process that :















CPM includes:












Why is critical path so important?

Using these values, CPM usually calculates the longest path of planned activities to the end of the project, and the earliest and latest points that each activity can start and finish without making the project longer. This process determines which activities are "critical" (i.e., on the longest path) and which have "total float" (i.e., can be delayed without making the project longer).


The critical path consists of the longest sequence of activities from project start to end that should be started and completed exactly as scheduled to ensure the project is completed by a certain date in the future. The activities on the critical path must be very closely managed. If jobs on the critical path slip, immediate action should be taken to get the project back on schedule. Otherwise, completion of the whole project will slip. Imagine that you have a project that will take 300 days to complete. If the first activity on the critical path is one day late, the project will take 301 days to complete, unless another activity on the critical path can be completed one day earlier. So the critical path is simply all the tasks that determine the end date in your project schedule.

There can be more than one critical path in one project, so that several paths run in parallel. For instance, in our case, “choose a picture” and “hang the picture,” as well as “buy the screws,” “screw in the screws” and “hang the picture” form other task sequences that also are important for us to complete the project.

The critical path may contain all the important activities on the project, or it may not. In fact, sometimes the activities on the critical path are not the most important parts of the project. At the same time, there will be tasks that are not on the critical path, but still determine your project’s success. Understanding the critical path involves determining which activities are critical to complete on time. But other activities, lying outside of critical path, also may be very important and require extra diligence and focus.

How to find the critical path?

Step 1: Identify the activities
Step 2: Sequence the activities
Step 3 : Draw a network diagram
Step 4:Estimate completion time for each activity
Step 5:Identify the longest path
Step 6: Update the CPM diagram as the project progresses

Example

Let’s take a simple, real-life project: hanging a picture on the wall. What should you do to complete this mini-project successfully? First, we need to define and list all the tasks that have to be done, so that the whole project is completed.

Choose a place on the wall
Buy the screws
Choose the picture
Drill a hole
Screw in the screws
Hang the picture

When we think of these tasks, we realize that some of them cannot start before the others are finished. That is, some tasks are dependent on the others.
When we think of these tasks, we realize that some of them cannot start before the others are finished. That is, some tasks are dependent on the others.

The actions “drill a hole,” “screw in the screws” and “hang the picture” form a sequence of tasks that must be performed in a specific order, one right after the other, to ensure a successful result. Such tasks are called “sequential” activities.

So these three tasks, together with the start of our project (“choosing a place on the wall”) in our example, are the most important critical steps that must be taken to arrive at the proper solution to our problem. These actions will be placed on your critical path for this project. So the essential concept behind Critical Path Analysis is that you cannot start some activities until the others are finished. These activities need to be completed in a sequence, with each stage being more-or-less completed before the next stage can begin.






















Now.let us create the schedule for this, it looks something like:



Limitations

  • CPM is not suitable if projects cannot be broken down into discrete activities with known completion times. For example, on a new project, activity durations may be hard to estimate.
  • Critics note that it takes too much time to identify all activities and inter-relate them to get multiple project paths. This causes user frustration ahead of the project.
  • PM stops working in practical situations in which employees are often re-allocated across projects and activities. This reallocation changes activity completion time and disrupts the CPM plan.
  • Identifying a single critical path is difficult when there are parallel paths with similar durations. Project teams may disagree on which path to choose or which activities are more critical than others.

Project Time Management



Whenever we work in a project , the project is generally targeted either for a market or to automate some process at the back-office which needs immediate attention.
If the project is not delivered on time not only there is a financial loss incurred it also lead to a great damage in image of the party who failed to deliver.
When we talk about commercial project we always talk about them in three 
paradigms : COST , QUALITY and TIME.

TIME is the most talked about factor whenever a project is unsuccessful , even when a project is successful most of the time we see project managers cribbing about the schedule part. Have you ever thought why most of the time we cry about schedule , why most of the time there are schedule overruns?


The reasons:
a. Its easy to measure time.
b. Time passes very quickly
c. We never take into account scope when we talk about time
d. Most of the time when scope changes , the change in schedule is overlooked.




So how can you make sure you do a proper scheduling for your project so that overruns can be avoided?
To do a proper scheduling you need to follow certain sub-process
    
Activity Definition Process
Activity Sequencing Process
Activity Duration Estimation Process
Schedule Development Process
Schedule Control Process
Following are characteristics of an activity

An activity always 
a. Consumes time
b. Requires Resources
c. Incur cost

Step 1 to schedule a project is defining the activity.
Now that we know what an activity is.
We should understand how can we define an activity.

An activity is identified by DECOMPOSITION and is related to at-least one of the rows of WBS.


WBS and Activity have a n...n relationship.

Now that we have identified the activities ,step 2 is sequencing these.To do this first understand the dependencies between the activities.
Dependencies are of three types


There are two ways in which the dependencies can be identified better:
a. Precedence Diagramming Method (PDM)
b. Activity Diagramming Method (ADM)

 Precedence Diagramming Method (PDM) : This is also called Activity on Node(AoN)

The precedence diagram method is a tool for scheduling activities in a project plan. It is a method of constructing a project schedule network diagram that uses boxes, referred to as nodes, to represent activities and connects them with arrows that show the dependencies.
Critical tasks, noncritical tasks, and slack time
Shows the relationship of the tasks to each other
Allows for what-if, worst-case, best-case and most likely scenario



Key elements include determining predecessors and defining attributes such as


An arrow diagramming method (ADM)
This  is a network diagramming technique in which activities are represented by arrows.
It is used for scheduling activities in a project plan.
The precedence relation between activities is represented by circles connecting to one or more arrows. The length of the arrow represents the duration of the relevant activity.
Sometimes a "dummy task" is added, to represent a dependency between tasks, which does not represent any activity.
This is not widely used these days.

Once , we have identified the activities and sequenced them properly, now we need to do Step 3, that is activity duration estimation.

In this step we estimate the time required for the individual activity.
We add relax time to this .
The relax time is added for contingency purpose and should not be disclosed to the team members.

Now that we have identified the activities , sequenced them appropriately and have also have came up with the estimation for duration.
Now, we need to take up Step 4 ,Scheduling the project.
Resource distribution should be done evenly.


Once the schedule is created , it should be revisited , if required it should be crunched.
Always remember ,
Adding resource may not help all the time
9 women cannot get pregnant to deliver baby in 1 month.Resources if required should be added at correct place.

Schedule can be crunched taking into consideration:
a. Leveling of resource : add less resources at start, add more during middle and slowly reduce ,use inverse for schedule.
b.Fast Tracking:Dangerous but may be used. Start modules in parallel.
c. Least incremental Cost: Schedule and resource should be redefined using the least-incremental cost approach.
d. What-if analysis and simulation 
What-if analysis is a brainstorming approach that uses broad, loosely structured questioning to:
Postulate potential upsets that may result in accidents or system performance problems
Ensure that appropriate safeguards against those problems are in place. 

We have learnt 
a. What an activity is
b. how to sequence them
c. Estimate the activities
d. Create a schedule for the project

but then,SCHEDULE SHOULD WORK IN REALITY. The scope of the project changes , the requirement changes so obviously we cannot say that the schedule won't change ever.
Schedule also goes through changes and for that purpose we have step 5 schedule control.
The first , foremost and most important thing is COMMUNICATE the changes in schedule early and clearly to the stake-holder and to do this you need to track the project closely.
Following the above process can help you be on time.

Thats all about the project time management for now.

Monday, 23 July 2012

Project Time Management - PMP Questions


1.     Activity Definition is typically performed by which of the following:
a.     Project Manager who created the WBS
b.     Project Team Members responsible for the work package
c.     Project Officer
d.     Project Stakeholder

2.     Which of the following is not an activity attribute:
a.     Person responsible for the activity
b.     Location where to perform the activity
c.     Time when to perform the activity
d.     Leads and Lags

3.     Which of the following does NOT generate changes to the Project documents:
a.     Define Activities
b.     Sequence Activities
c.     Estimate Activity Resources
d.     Estimate Activity Durations

4.     Which of the following may generate a milestone list:
a.     Define Activities
b.     Sequence Activities
c.     Estimate Activity Resources
d.     Estimate Activity Durations

5.     In PDM, which of the following relationships is rarely used:
a.     Finish-to-Start
b.     Start-to-Finish
c.     Start-to-Start
d.     Finish-to-Finish

6.     A schedule activity may begin 10 days before the predecessor activity finishes. This is an example of:
a.     Finish-to-Start
b.     Start-to-Finish
c.     Start-to-Start
d.     Finish-to-Finish

7.     A schedule activity may begin 10 days before the predecessor activity finishes. This is an example of:
a.     ADM
b.     PDM
c.     A dependency with lag
d.     A dependency with lead

8.     The following BEST describes a subnetwork:
a.     Precedence Diagramming Method [PDM]
b.     Arrow Diagramming Method [ADM]
c.     Fragment Network
d.     Activity-On-Node [AON]

9.     A Project Manager in-charge of a Software Development projects is creating a project schedule network diagram for the code development component of the project. This is an example of:
a.     Precedence Diagramming Method [PDM]
b.     Arrow Diagramming Method [ADM]
c.     Fragment Network
d.     Activity-On-Node [AON]

10.   What-if scenario analysis is done as a part of which process:
a.     Sequence Activities
b.     Define Activities
c.     Develop Schedule
d.     Control Schedule

11.   AON refers to:
a.     Precedence Diagramming Method [PDM]
b.     Arrow Diagramming Method [ADM]
c.     Fragment Network
d.     Mandatory Dependencies

12.   AOA refers to:
a.     Precedence Diagramming Method [PDM]
b.     Arrow Diagramming Method [ADM]
c.     Fragment Network
d.     Mandatory Dependencies

13.   Activity Resource Requirements is an input to which of the following processes:
a.     Estimate Activity Durations
b.     Control Schedule
c.     Estimate Activity Resources
d.     Sequence Activities

14.   Dummy relationships or dummy activities can be used in which of the following Activity Sequencing techniques:
a.     Precedence Diagramming Method [PDM]
b.     Arrow Diagramming Method [ADM]
c.     Fragment Network
d.     Schedule Network Templates

15.   Which of the following is NOT an input to the Sequence Activities process:
a.     Project Scope Statement
b.     Activity Attributes
c.     Activity List
d.     Change Requests

16.   Which of the following is a technique for Sequence Activities:
a.     Precedence Diagramming Method [PDM]
b.     Arrow Diagramming Method [ADM]
c.     Rolling Wave Planning
d.     Mandatory Dependencies

17.   Reserve Analysis is a technique for:
a.     Define Schedule
b.     Sequence Activities
c.     Estimate Activity Resources
d.     Estimate Activity Durations

18.   Resource Leveling is a technique for:
a.     Develop Schedule
b.     Sequence Activities
c.     Estimate Activity Resources
d.     Estimate Activity Durations

19.   Following can be BEST described as a kind of dependency that can create arbitrary float values and limit scheduling options:
a.     Mandatory dependency
b.     Discretionary dependency
c.     Start-to-Finish dependency
d.     External dependency

20.   Critical path method is used in which of the following processes:
a.     Sequence Activities
b.     Define Activities
c.     Develop Schedule
d.     Estimate Activity Durations

21.   Parametric Estimating is done as a part of which process:
a.     Sequence Activities
b.     Develop Schedule
c.     Estimate Activity Resources
d.     Estimate Activity Durations

22.   Identification of Mandatory Dependencies is BEST done during which process:
a.     Sequence Activities
b.     Develop Schedule
c.     Define Activities
d.     Estimate Activity Duration

23.   Resource reallocation from non-critical to critical activities is an example of which Project Scheduling technique:
a.     Critical Path Method
b.     Schedule Compression
c.     What-if Analysis
d.     Resource Leveling

24.   Knowledge of best practices in a particular area is MOST likely to give rise to which of the following dependencies:
a.     Finish-to-Start dependency
b.     Soft Logic
c.     Mandatory dependency
d.     External dependency

25.   A Project Manager is preparing a Project Schedule network diagram. During the diagram development, she removes a dependency between two tasks that was defined in an earlier stage. After the network diagram is completed, she updates activity attributes for the two tasks. This is an example of:
a.     Define Activities
b.     Sequence Activities
c.     Develop Schedule
d.     Lack of change control

26.   Reserve Analysis involves:
a.     Estimating by multiplying the quantity of work by productivity rate
b.     Incorporating time buffers into the activity duration estimates
c.     Developing project schedule with contingency reserves as a recognition of the schedule risk
d.     Adding resource reserves to the activity resource estimates

27.   Which of the following is not true for Resource Leveling:
a.     Project schedule is build with resource buffers to prevent schedule slippage
b.     Project’s Critical path may be altered
c.     Resource based scheduling method
d.     Reverse resource allocation scheduling


Brown : Is what I selected
Green : Right answer
for the question that have only brown are correct