topic: Agile Project Management

Tags agile scrum ncit skill/agile

1. Intro to Agile

Watch the two videos below to learn the basics of Agile and Scrum.

2. Cost-benefit analysis

Cost Benefit Analysis (CBA) is a technique for assessing the monetary social costs and benefits of a project over a given time period and its principles are simple:

Appraisal of a project: It is an economic technique for project appraisal, widely used in business as well as government spending projects (for example, should a business invest in a new information system).

Incorporates externalities: It can, if required, include wider social/environmental impacts as well as ‘private’ economic costs and benefits so that externalities are incorporated into the decision process. In this way, CBA can be used to estimate the social welfare effects of an investment.

Stages of a Cost-benefit analysis:

1. General description of the project: This part includes an explanation on the environment under which, each analysis is done such as the objectives, the assumptions, the project/decision life etc.

2. List of alternative scenarios: In order to decide which is the best option in the CBA, we have to consider the costs and the benefits for each of these options. This section lists the options considered during the analysis.

3. Identify Benefits and Costs: In this part, the application lists the exact benefits and costs met in each of the alternative scenarios. The application divides these into two kinds: The ones that are relatively straightforward to be measured and the ones that are not very easy to be measured. Many factors must be considered during the process of estimating the costs associated with competing alternatives in a CBA.

  • Costs: All costs for the full system life cycle for each competing alternative must be included. The following factors must be addressed: Activities and Resources, Cost Categories, Personnel Costs, Direct and Indirect Costs (Overhead), Depreciation, and Annual Costs.

  • Benefits are the services, capabilities and qualities of each alternative system, and can be viewed as the return from an investment. To estimate benefits, first identify the benefits for both the customers and the organization. Benefits to customers are improvements to the current IT services and/or the addition of new services. Some possible benefits for the servicing organization are productivity gains, staffing reductions, or improved organizational effectiveness. The final step is to estimate the value of the benefits. If a benefit cannot reasonably be assigned a monetary value, it should be valued using a more subjective and qualitative rating system.

4. Schedule Benefits and Costs: For each of the alternatives defined in step 2, the user now identifies the value of each benefit and cost for each year through the life cycle of the decision beginning from Year 0, which is the start of the decision life. After the costs and benefits for each year of the system life cycle have been estimated, convert them to a common unit of measurement to properly compare competing alternatives.

5. Comparison of alternatives: The comparison is illustrated with tables and graphs so as to facilitate decision making. When the costs and benefits for each competing alternative have been discounted, compare and rank the competing alternatives. When the alternative with the lowest cost provides the highest benefits, it is clearly the best alternative.

6. Sensitivity Analysis: In this part, the application helps the user define how sensitive the results are to changes in the costs and benefits. This sensitivity involves costs and benefits whose definition is not straightforward or is not easy to be exactly defined. Sensitivity analysis tests the sensitivity and reliability of the results obtained from the cost-benefit analysis. Since the CBA is normally the key document in the investment review process, reviewers want assurance that the analysis is reliable. Sensitivity analysis identifies those input parameters that have the greatest influence on the outcome, repeats the analysis with different input parameter values, and evaluates the results to determine which, if any, input parameters are sensitive.

3. Estimating time

Accurate time estimation is a crucial skill in project management. Without it, you won’t know how long your project will take, and you won’t be able to get commitment from the people who need to sign it off.

Even more importantly for your career, clients often judge whether a project has succeeded or failed depending on whether it has been delivered on time and on budget. To have a chance of being successful as a project manager, you need to be able to negotiate sensible budgets and achievable deadlines.

Use these steps to make accurate time estimates:

Step 1: Understand What’s Required

Start by identifying all of the work that needs to be done within the project. Make a list of all of the technical requirements and the technology and resources required. Be sure to factor in time to learn new frameworks, libraries or languages if the project requires it.

Additionally, make sure that you allow time for meetings, reporting, communications, testing and other activities that are critical to the project’s success.

Step 2: Order These Activities

Now, list all of the activities you identified in the order in which they need to happen.

At this stage, you don’t need to add in how long you think activities are going to take. However, you might want to note any important deadlines. For example, you might need to finish Sprint #2 by Thursday at 5pm.

Step 3: Decide Who You Need to Involve

You can do the estimates yourself, brainstorm them as a group, or ask others to contribute.

Where you can, get the help of the people who will actually do the work, as they are likely to have prior experience to draw upon. By involving them, they’ll also take on greater ownership of the time estimates they come up with, and they’ll work harder to meet them.

Tip: If you involve others, this is a good time to confirm your assumptions with them.

Step 4: Make Your Estimates

You’re now ready to make your estimates. We’ve outlined a variety of methods below to help you do this. Whichever methods you choose, bear these basic rules in mind:

  • To begin with, estimate the time needed for each task rather than for the project as a whole.

  • The level of detail you need to go into depends on the circumstances. For example, you may only need a rough outline of time estimates for future project phases, but you’ll probably need detailed estimates for the first phase of work.

  • List all of the assumptions, exclusions and constraints that are relevant, also note any data sources that you rely on. This will help you when your estimates are questioned, and will also help you identify any risk areas if circumstances change.

  • Assume that your resources will only be productive for 80% of the time. Build in, time for unexpected events such as sickness, supply problems, equipment failure, accidents and emergencies, problem solving and meetings.

  • If some people are only working “part-time” on your project, bear in mind that they may lose time as they switch between their various roles.

  • Remember that people are always overly optimistic, and may significantly underestimate the amount of time that it will take for them to complete tasks.

Tip: The most reliable estimates are those that you have arranged to be challenged. This helps you identify any assumptions and biases that aren’t valid. You can ask team members, other managers, or co-workers to challenge your time estimates.

4. Estimating cost

Cost estimation involves answering the following questions:

  1. How much effort is required to complete each activity?

  2. How much calendar time is needed to complete each activity?

  3. What is the total cost of each activity?

Project cost estimation and project scheduling are normally carried out together. The costs of development are primarily the costs of the effort involved, so the effort computation is used in both the cost and the schedule estimate. However, you may have to do some cost estimation before detailed schedules are drawn up. These initial estimates may be used to establish a budget for the project or to set a price for the software for a customer. There are three parameters involved in computing the total cost of a software development project:

  • Hardware and software costs including updates and maintenance.

  • Travel and training costs.

  • Effort costs (the costs of paying software engineers for development and testing).

  • This includes administrative costs (office space, meetings, communication, etc).

For most projects, the dominant cost is the effort cost. Although extensive travel costs may be needed when a project is developed at different sites, the travel costs are usually a small fraction of the effort costs. Furthermore, modern communications systems significantly reduce the travel required. Effort costs are not just the salaries of the software engineers who are involved in the project. Organisations compute effort costs in terms of overhead costs where they take the total cost of running the organisation and divide this by the number of productive staff. Therefore, the following costs are all part of the total effort cost:

  1. Costs of providing, heating and lighting office space.

  2. Costs of support staff such as accountants, administrators, system managers, cleaners and technicians.

  3. Costs of networking and communications.

  4. Costs of employee benefits such as pensions and health insurance.

Project duration and staffing

As well as estimating the effort required to develop a software system and the overall project costs, project managers must also estimate how long the software will take to develop and when staff will be needed to work on the project. The development time for the project is called the project schedule. Increasingly, organisations are demanding shorter development schedules so that their products can be brought to market before their competitor’s.

The relationship between the number of staff working on a project, the total effort required and the development time is not linear. As the number of staff increases, more effort may be needed. The reason for this, is that people spend more time communicating and defining interfaces between the parts of the system developed by other people. For example, doubling the number of staff does not mean that the duration of the project will be halved.

5. When you don’t deliver on time

One of the benefits of Agile project management is that since your project is broken up into component parts it is easier to keep track of your deliverables and see the repercussions of any delays. If you are late in delivering one of the component parts, you must reassess your time estimations according to how it has affected other related elements of your project and the bigger deliverables.

For example, imagine you have two sprints in your game development to develop the first ‘level.’ The first involves developing the graphics and the second involves programming them to animate. In the first sprint, you are late on confirming the aesthetic of your main character. This will delay the delivery of your first sprint and then have repercussions for the second sprint. Will you be able to start the second sprint without finalising the character? These are the kinds of questions you might ask yourself while reassessing your time estimates.

Does late delivery affect your reputation?

It depends on the situation. Late delivery on a project is generally not good, and it can affect your eligibility for some features. With that said, how your customer rates you has more weight than when you deliver. If you deliver late, but in the end your buyer is happy with your work and recommends you to other clients, that will count more than the fact that it was delivered late.

One of the key features of Agile project management is early and frequent (often daily) communication with the client. If you are honest and timely with letting the customer know about delays or obstacles in project development, they will be more understanding if the project falls behind schedule.

In general, you will get better at estimating time and cost with more experience. Your initial estimates will not be very good, but learn from these mistakes and make better estimates in the future. That way, you won’t fall as far behind schedule and your customers will be completely satisfied with the timing and quality of your work.


RAW CONTENT URL