Saturday, March 31, 2012

Seema Sonkiya: Project Schedule Important Points

Based on PMI and Agile methodology
Here my emphasis is only to describe important points; those are not covered in PMBOK 4 in detail. This article can be considered as an interpretation of PMBOK 4 along with incorporation of agile methodology good practices.
A project is in existence to achieve one or more strategic business objectives.  A project is initiated due to either internal business needs or external influences. When project is initiated means we have already done high level analysis that project will be successful given all identified constraints of schedule, cost, budget, quality, human resources, risk and availability of suppliers if project demands.

Project is initiated and now we are in planning, first step is to identify project and product scope this includes characteristics of product, service or result and work that need to be performed to get those features and functions.

Project and product scope can be managed with increments, and it may be defined progressively for each increments. When scope is defined and approved next step is to plan project schedule and establishment of schedule baseline either for whole project or for current increments, schedule for other releases may be still in high level and it can be defined in greater detail in next iteration of planning.

Schedule development is iterative process even for same release. Iterative development is essential for achievable and realistic schedule so that we can execute this to satisfy project requirements as per defined plan, which also includes approved project schedule and serve as a realistic basis for monitoring and controlling of project schedule.

Why schedule development is iterative process even when we are doing greater level of planning only for current release will be explained at the end of this article.
Steps to develop a realistic and achievable schedule, Here steps are specified for planning processes not for initiation process where high level schedule is developed:
1.       We need schedule methodology to develop project schedule. It is provided by organization process assets in mature project organizations and tailored to specific needs of project. If it is not present then it should be developed because we need to understand how to plan before actually doing it and in addition common understanding of planning approach should be developed and discussed with project team members and other relevant key stakeholders like customer who are involved in planning.

2.       We have schedule methodology and to plan project schedule we also need complete and clear project and product scope that is scope baseline developed either for complete project or for current release whatever is applicable.


3.       Scope baseline comprise of approved project scope statement, WBS and WBS dictionary.

4.       Scope statement is needed to review deliverables. Lowest level of WBS defines work packages that are basis of scheduling, costing, quality planning and controlling. WBS dictionary further explain work package. We define in schedule methodology that whether schedule will be developed at activity level or work package level. PMI says that schedule is developed at activity level. In case project is very large then there may be thousands of activities and in that case project managers find difficulty to draw network diagram and they prefer network diagram at work package level. Here I will follow PMI guideline.


5.       Define Activities: According to PMI work package decomposition result in activities. In agile functional requirements are converted in user stories. These are set of scenarios or transactions tied together with a common user goal.  So as per PMI we call result of work package decomposition as activities and in agile these are scenario of a use case (in case of functional requirements). Use cases are developed only for functional requirements.
a.      We need to identify activities using decomposition of work packages. Work packages are deliverables and activities are actions to complete those deliverables.   
b.      Activity attributes are identified needed for schedule development.
c.      During activity identification, Level of effort, Discrete effort and apportioned should be carefully identified.
d.      I have found very excellent definition during my research:
                                                               i.      Discrete Effort (DE )is measured based on defined tasks or activities identified as work and planning packages resulting in a particular product or service.[
                                                             ii.      Apportioned Effort (AE)is a task interdependent to an appropriate DE work or a planned package, such as a review or an inspection, and is measured as part of that task that supports the results in a product or service
                                                            iii.      LOE is “effort *work+ of a general or supportive nature which does not produce definite end products and cannot be practically measured by discrete earned value techniques.
e.      If we would like to differentiate which project management activity is LOE and which one is Apportioned we can use following logic:
                                                               i.      LOE is supportive project management activity and effort of this activity is dependent upon corresponding discrete effort activity. For example inspection of discrete effort.
                                                             ii.      Apportioned is independent from discrete effort, for example daily standup meeting in scrum project management methodology.

f.        Activities should have unique names. For example – ‘Displaying the details’ it’s not recommended instead it should be written like as ‘Displaying the details on order page’. If names are unique, we would be easily able to find mistakes and we can understand them outside the WBS also.
g.      Activity names generally use a verb or something equivalent as these are specific action to complete work package and work package define a deliverable both project and product deliverables.

6.       Define relationships: We have defined activities and it’s time to define dependency between activities. Dependency determination affects the pattern and usage of resources. Agile methodology says that during sprint planning meeting, we give emphasis on common understanding of work (in PMI activities) and team members are encouraged to select work as per their interest and skills to promote team building. This is an example of self organization in agile. Here I would like to add that during resource allocation in sprint planning we need to also consider dependencies of activities and resource availability as per need of schedule of that activity. Co-location in WAR room is perfect place to discuss these items and WBS may be pasted on WAR room walls.
a.      So we are in process to identify dependency of activities to define network diagram, and first step is to identify dependency or logical relationship between activities. There can be four types of relationships: FS, SS,FF and SF. SF is not used because it forces successor of an activity to put before predecessor.
b.      Important note is here to note when are in process to scheduling of activities, we also do that for scheduling of milestones.
c.      Each activity or milestone except first and last has at least one successor and one predecessor. If it not true then it’s very difficult to identify any influence of that activity to others or from others.  In this case some of the activities may be out of network this works against the reality of the project work and in result schedule will not be realistic and performance information and delay analysis will not be realistic.
d.      If an activity does not have any predecessor or successor then it should be connected to either start or finish milestone. If an activity does not have predecessor then it can start on first day of the execution, if it’s not true then we have not identified some relationships.
e.      Each Activity should have at least one FS or SS predecessor and at least one FS or FF successor. Because start of an activity is influenced by its predecessor due to FS or SS relationship and finish of an activity influence its successor due to FS and FF relationship.
f.        Most of the relationships are modeled with FS relationships; the fact is that most realities are best modeled with FS.
g.      The most common use of SS is when we hear this: … and activity B starts at the same time as activity A… and we make an SS relationship for B. usually means that B has the same predecessors as A.  We will need to enter more relationships in this case. For example, if we have 16 predecessors for A, we will have to enter all of them for B. We can also use a milestone instead. Give all the predecessors to the milestone and make A and B the successors of that milestone.
h.      When we have lots of successors based on lots of predecessors, we actually have an important event and we’d better design a milestone for that. This kind of milestone is sometimes called a toll-gate milestone.
i.         Another example: activity A and activity B have 10 days duration, and activity B has a 50% overlap with A. We might use SS+5days for B; but FS-5days is a better one.  Refer point f.
j.         Always count the number of activities with FS relationships; if they are less than 90% of all activities our network logic is not good enough.

7.     Applying leads and lags:
a.      We should not use large lags; there is always an alternative to avoid large lags. It is recommended that lag length should not more than 5 days.
b.      We need to use lags as little as possible. Lags are not strong scheduling elements. It is not enough to limit the length of lags if we are using them in most activities. It’s not natural to use them a lot; lags should not used in more than 5% of activities. If it is hard to implement then we need to think about finding more relationships adding the necessary constraints (if any) and finally breaking down our activities to have more flexibility on relationships.
c.      We should be careful not to use large leads, because leads are usually misused and hard to manage. For example we are using FS relationship, later on we get behind schedule and we have to compress the schedule and relationship become FS-5 days. The same things happen and FS-5days become FS-10days, FS-15days and ….. This is misuse of leads as it can introduce risk because successor activity may need accurate information from predecessor to start.

8.       Determine resource requirement: Network diagram is completed and now it’s time to identify resource for each activity. We need to consider resource availability, their skills and competencies. Activity duration is determined after resource determination because resource availability, skill, competency considerably affect activity duration.

9.       Determine activity duration: Now it’s time to identify duration for each activity, duration estimate depend upon availability and quality of information. Duration estimates preferably estimated in range. In agile it is estimated in ideal days. I recommend whether we estimate in ideal or in man days, it should be in range especially for discrete efforts. Length of range indicates level of risk involved in activity. Activities should not have large durations, it’s also supported by agile. PMI says that we should not have durations longer than two control periods in any normal activity. If it is not possible then we need further decomposition.


10.   Now it’s time to finalize schedule, it involves:
a.      Schedule network analysis is performed; often it need review of resource and duration estimates.
b.      Critical path is generated. It is recommended not to have large floats. We do not have any direct control on floats. Large floats are just a symptom of weak relationships.
c.      Check activity floats; if they are larger than expected, we may realize that we’ve missed something. Perhaps some relationships are not implemented; maybe some of them are wrong, etc.
d.      Always try to make milestones for date constraints. Date constraints are special; they are reflecting an important event in our plans. We are used to seeing events as milestones, so why don’t we limit date constraints for milestones?
e.      Now, to finalize schedule we need to:
                                                               i.      Perform What if scenario to determine schedule feasibility under adverse conditions.
                                                             ii.      Resource leveling to optimize resource allocation
                                                            iii.      Schedule compression by crashing, fast tracking or re estimating.
f.        Schedule is finalized using schedule development processes, but complete finalization needs some more efforts like:
                                                               i.      We need to meet resource manager to confirm resource availability; schedule is preliminary until resource confirmation. Any change in this confirmation may need schedule change; it can be done without change request as schedule is not present as a baseline.
                                                             ii.      Adjust component of schedule as result of risk response planning, because some of the WBS components need to be change as a result of risk response planning. Again change request is not generated.
                                                            iii.      Give the team a chance to approve the final schedule; they might have estimated an activity, but they should look at the calendar allocations of their estimates to see if they are still feasible.
                                                           iv.      Conduct meetings and conversations to gain stakeholders buy-in and formal management approval, this time change request may be generated to change project charter preferably to update schedule milestones. This is the responsibility of project sponsor. Any change in project charter is the responsibility of project sponsor. Other change many be initiated like scope change in response to balancing the constraints.

11.  Schedule iteration, some examples but not limited to:
                                                               i.      During cost estimation after schedule development, it may be needed to alter project schedule in response to time sensitive information that effect project cost. Change request is generated as it is change in baseline.
                                                             ii.      Quality planning need schedule baseline as input, planning may identify quality activities, which can change components of WBS to manage schedule performance.
                                                            iii.      When resources are acquired, it may trigger change.
                                                           iv.      Steps third and fourth are repeated of previous point in case of iteration.


Realistic schedule development is very important for the basis of monitoring and controlling.

Seema Sonkiya

Sunday, March 25, 2012

Seema Sonkiya: Scope Change Control


This article is based on PMBOK4 & AGILE project management methodology. Change management is very important in agile methodology as scope is managed using frequently delivered increments.I met many people who consider scope change only includes change request from customer.  I am writing this blog for those to put view regarding reason of scope changes and control.
1.       Project requirement is progressively elaborated from project charter and stakeholder register.
2.       Result of progressive elaboration is requirement documentation, project scope statement, WBS and WBS dictionary.
3.       Work that will be performed in near term will in defined in greater levels of details and future work will be in defined in high level of WBS.
4.       Project scope statement, WBS and WBS dictionary forms the scope baseline.
5.       Any changes to scope baseline need to be processed through integrated change control process.
6.       Grounds of scope changes:
a.      In largely undefined, uncertain environment scope is managed through frequently delivered increments.  For example in SCRUM agile methodology scope is identified in greater detail during sprint planning meeting for the selected stories. This is also considering form of progressive elaboration and scope baseline is updated through integrated change control process.
b.      Customer provided SOW for the project initiation and during planning we have defined approved scope baseline using project charter for which SOW is key input, it may be discovered later in monitoring processes that some of items present in SOW are not included in scope baseline. Though this is result of poor planning but after all it leads to change in scope baseline so we need to open integrated change control process.  How much of these items will be billed will be dependent upon how much in detail it is specified in the SOW.  It is important to realize that all change requests are not billed.
c.      During Monitoring and Control processes (Like Verify Scope) change request are submitted to repair defects. Means if we need to repair defects and this work will be included in scope baseline, so it should be included through integrated change control process.
d.      Monitoring and Control processes may recommended corrective and preventive action, any scope change due to these recommendation should be processed through integrated change control process.
e.      All stakeholders are not identified in project initiation. It is also important to realize that identifying stakeholder is an ongoing process.  Stakeholder’s identification mainly focused in initiation process i.e.  Initiation of each phase.  Any late recognition will lead to increase in cost and timeline.  For example if legal department as stakeholder is not identified in initiation process, which may result in delays and increased expenditures due to change request to accommodate legal requirements.  Incorporating changes less costly if identify early.  The ability to influence cost is greatest at the early stages of the project, making early scope definition critical.
f.        Customer request changes, we need to harness changes if they are logical, often for the customer competitive advantage. Customer can change their mind about identified requirements or they can request to add scope also.  These entire change requests are processed through integrated change control process.
Here we need to identify that scope includes both project and product scope. Project scope means work that need to be performed to deliver product, service or result with specified features and functions and product scope means features and functions of a product, service or result.  Any change to scope baseline need to be processed through integrated change control process and only approved changes need to be incorporated in scope baseline to maintain the integrity of baseline. If integrity is not maintained then there will not be any basis to measure scope performance.
Seema Sonkiya

Saturday, March 24, 2012

Seema Sonkiya: Project Estimation Important Notes:

This article is based on PMBOK4 estimation approaches.

1.       Project estimation is done through progressive elaboration process as accuracy of estimation is highly dependent upon availability and quality of information.
2.       Whenever we need to do estimation, strategy and approach is influenced by the fact that where we are in project life cycle.
3.       Approach should be communicated to appropriate and relevant stakeholders. During early stages accuracy is normally ROM which is +-50%, during planning accuracy goes normally +-10% and during execution it can increased to -5 to +10%. All these estimates should be appropriately supported by documented assumptions and recorded for later review; this review is part of risk analysis. In Risk identification process risk are uncovered to identify consequences if assumptions go wrong.
4.       If project in not initiated and if it is asked to provide estimates that will be included in proposal which will serve as official offering from the company to the customer. In most of cases this estimation is done based on the historical information and expert judgment.
a.      High level risks are considered to make estimates as realistic as possible. Risks are considered high level because at this stage we can use only limited resources and information is normally less defined.
b.       Analogous estimation is well known approach in this scenario, which is based on historical information and expert judgment.  Using this approach values of parameters (scope, cost, budget and duration) or measures of scale (size, complexity) for the current or proposed project are determined from previous similar projects.
c.      We need good expertise to estimate projects both in project selection process (when estimates included in project proposal) and in initiation due to less defined information. We need to do estimates based on available information. Yes it is true that normally we given a chance to clarify information from the customer or project sponsor in case of internal project but it is also well known truth that as we move towards execution accuracy becomes high due to availability of greater level of details.
d.      Function point analysis is good candidate in early stages as it is possible to identify input screens, external interfaces, simple reports, derived and complex reports as well as other factors like transaction rates, online updates, distribution environment, performance, response time etc with the help of provided SOW. If function point technique is used it should be compared with analogous estimation as a sanity check. One reason of this check is that analogous estimation provides a basis of management expectation. So it gives an opportunity to reconcile differences before using company resources.
5.       When project is selected and initiated and project budget is included in project charter and we started project planning, in planning project estimates are refined and bottom up estimation is recommended approach. WBS gives a consistent framework for cost planning, estimating and control of cost.
a.       If we are in planning then project schedule is important input because project budget is time phase spending plan, and company expects from a project manager to provide information that serve as a basis to identify how much money is required during which period. In addition project schedule provides information which is time sensitive (like purchase of equipment could be less costly after some time period) and can affect the project cost. In this case project schedule may be updated – Planning is iterative.
b.      My recommendation is to use case point’s parametric approach along with bottom up to accurately estimate project cost.
c.      Accuracy of Use Case point’s estimation depends upon how much standardization is present to define use cases in the company. Structure of use cases vary from company to company and even in project to project. A consistent approach should be defined for each project and communicated appropriate team members.
d.      We need to define atomic transactions in use cases to clearly identify number of transactions and complexity of use cases. Consistent review is required.
6.        Estimates are refined in execution as more is known about the project.
7.        During planning and execution project team should be involved for estimation, and project team members should be educated about the difference between padding and contingency reserves. Establishing reserves is professional responsibility of Project Manager. Project Manager must make sure that pads are not included. Pads are added by project team due to uncertainty and based on guess. But in reserves, estimation uncertainties are translated in identified opportunities and threats.
8.       Estimates cannot be finalized without risk analysis; Estimates are both input and output of identify risk process.
9.       Estimates should be in range depending upon when we are doing- in initiating, planning or in execution. One point estimates generally leads to team member working against the project manager to protect themselves and encourage them to add pads instead of doing open communication about project risk to identify contingency reserves which is calculated for the risk remaining after risk mitigation. As project progresses these reserves are used, reduced or eliminated.
10.   In mature project companies, project team generally takes the services of centralized estimating team. This central team provides services based on lesson learned from prior similar projects. The lessons learned are:
a.      Make sure concurrently implement a standard, centralized risk scoring and risk mitigation approach including tools and templates that allow us to establish appropriate contingency reserves.
b.      Make sure regular review of all projects through the PMO to measure CPI and SPI actual against baselines and recommend actions if deviation outside the established control limits.
c.      An effective change control system should be in place to control estimates to re-baseline as risk evolve or changes occur.
d.      Set up a separate charge code for approved activities that can be capitalized based on company guidelines for capital accounting.
11.   Whenever estimates are revised, revised project budget should be reflected in project charter using change control processes and project sponsor is responsible to do that.
If our estimates will be realistic and there is buy-in from all the relevant stakeholders including team that the estimates are realistic then it serves a basis to control the project cost and a project manager is comfortably identify corrective action when project deviate from project planned estimates. If estimates are not realistic and not supported by risk processes then it will be impossible effort to identify when to take corrective action in execution as there is absence of realistic basis to control processes.
Seema Sonkiya