Lecture 10 (31/3) - Initiation, Planning

¡Supera tus tareas y exámenes ahora con Quizwiz!

Activity-on-arrow networks activity labeling

divide the node circle into quadrants and use those quadrants to show the event number, the latest and earliest dates by which the event should occur, and the event slack. Event number Earliest date Latest date Slack

YAGNI

"You aren't going to need it". Refers to the act of stripping unneeded features away to keep the implementation simple.

Step Wise planning activities

0. Select project 1. Identify project scope and objectives 2. Identify project infrastructure 3. Analyze project characteristics 4. Identify project products and activities 5. Estimate effort for each activity 6. Identify activity risks 7. Allocate resources 8. Review /publicize plan 9. Execute plan 10. Lower levels of planning Steps 1 and 2 could be tackled in parallel in some cases. Steps 5 and 6 will need to be repeated for each activity in the project.

The four main stages of creating a project schedule

1. Decide what activities need to be carried out and in what order they are to be done. From this we can construct an ideal activity plan. 2. The ideal activity plan will then be the subject of an activity risk analysis, aimed at identifying potential problems. 3. Resource allocation. The expected availability of resources might place constraints on when certain activities can be carried out. 4. Schedule production. Once resources have been allocated to each activity, we will be in a position to draw up and publish a project schedule, which indicates planned start and completion dates and a resource requirements statement for each activity.

Top three problems with agile development methodologies according to the respondents of "Perceptions of agile software development at Microsoft"

1. Does not scale to larger projects 2. Too many meetings 3. Management Buy-in

Top three benefits to agile development methodologies according to the respondents of "Perceptions of agile software development at Microsoft"

1. Improved communication and coordination 2. Quick Releases 3. Flexibility of Design - Quicker Response to changes

The business case (or feasibility study)

1. Introduction and background of the proposal 2. The proposed project 3. The market 4. Organizational and operational infrastructure 5. The benefits 6. Outline implementation plan 7. Costs 8. The financial case 9. Risks 10.Management plan

Boehm Turner's developer levels

3: Able to produce solutions un unprecedented situations 2: Able to tailor solutions to fit new, but precedented situations 1A: Solid developer able to implement functionality, estimate effort, and refactor code 1B: Able to implement simple functionality, execute tests and follow directions -1: Unwilling or unable to work in a collaborative environment

The hybrid approach to identifying activities

A WBS may be based upon the project's products, which is in turn based on a simple list of final deliverables and, for each deliverable, a set of activities required to produce that product.

People-related issues in migrating to Agile

A cooperative social process characterized by communication and collaboration between a community of members who value and trust each other is critical for the success of agile methodologies. For programmers accustomed to solitary activities or working with relatively homogeneous groups of analysts and designers, the ideas of shared learning, reflection workshops, pairprogramming, and collaborative decision making may be overwhelming. At the present time, there is little evidence to suggest that agile principles will work in the absence of competent and above-average people. First, it will be difficult to find enough personnel to staff software development teams that use agile methodologies. Second, it will create a culture of elitism within the systems development group that may affect the morale of non-agile developers.

Milestone

A dummy activity with no duration that indicates the start or end of a group of activities.

Projects versus activities

A project is composed of a number of interrelated activities. A project may start when at least one of its activities is ready to start. A project will be completed when all the activities are completed. An activity must have a clear start and a clear stop An activity should have a duration that can be forecasted Some activities may require that other activities are completed before they can begin

Rules for constructing activity-on-arrow networks

A project network may have only one start node A project network may have only one end node A link has duration - A link represents an activity and, in general, activities take time to execute. Nodes have no duration - Nodes are events and, as such, are instantaneous points in time. The source node is the event of the project becoming ready to start and the sink node is the event of the project becoming completed. Intermediate nodes represent two simultaneous events - the event of all activities leading into a node having been completed and the event of all activities leading out of that node being in a position to be started. Time moves from left to right Nodes are numbered sequentially A network may not contain loops A network may not contain dangles

Rules for constructing precedence networks

A project network should have only one start node - If more than one activity can start immediately it is normal to invent a start activity with zero duration. A project network should have only one end node - If project completion depends on more than one activity it is normal to invent a finish activity. A node has a duration - A node represents an activity and they take time to execute. Links normally have no duration - they represent relationships between activities. Precedents are the immediate preceding activities - If an activity A cannot start before activities B and C are finished, then B and C are precedents of A. Time moves from left to right A network may not contain loops A network should not contain dangles - A dangling activity should not exist as it is likely to lead to errors in subsequent analysis.

The impact of Agile Methods on developers

Agile Methods depend on strong developers - they must be amicable, talented, skilled, and able to communicate well. Agile Methods are very lightweight methods, not affording strict guidelines and processes for developers to follow. Hence, they do not accommodate weaker developers well. This is a management risk as some developers may not fit in this Agile environment.

Software project management and methodologies

All methodologies have risks, and understanding those risks and finding ways to monitor, mitigate, and manage those risks is an important aspect of software project management.

The relation between the float of activities

Although the total float is shown for each activity, it really 'belongs' to a path through the network. Activities A and C each have 2 weeks' total float. If, however, activity A uses up its float (that is, it is not completed until week 8) then activity B will have zero float (it will have become critical).

Technological issues in migrating to Agile

An organization's existing technology can impact the efforts to migrate to agile methodologies. Tools play a critical role in successful implementation of a software development methodology. Organizations planning to adopt agile methodologies must invest in tools that support and facilitate rapid iterative development, versioning/configuration management, JUnits, refactoring, and other agile techniques. Of course, tools alone cannot make software development successful. People must be trained to use them correctly.

Why is a critical path in activity networks identified?

Because the activities on the critical path are the ones that should be closely monitored. If a delay happens with one of those activities, the whole project might be delayed which is something we would like to be avoided.

What might be the effect of a high turnover in an agile team?

Because there is not much formal documentation, high turnover on a project can lead to loss of critical knowledge.

Project schedule

Before work commences on a project or, possibly, a stage of a larger project, the project plan must be developed to the level of showing dates when each activity should start and finish and when and how much of each resource will be required. Once the plan has been refined to this level of detail we call it a project schedule. Creating a project schedule comprises four main stages.

Internal environment as a software process tailoring criteria examples

Clear project proposal: A clear project proposal is an essential artifact. It contains basic goals and requirements essential for the project's success. A blurry proposal is a risk. Management availability: Top management is required to solve problems and to make project progress decisions. Management support: The top management should actively support a project.

What are customers expected to be in an Agile context?

Collaborative Representative Authorized Committed Knowledgeable

Objectives as a software process tailoring criteria examples

Complexity: A higher complexity usually causes a more comprehensive software process, more (formalized) communication, a more formalized configuration and change management and so on. Safety & Security: Safety & security usually cause a comprehensive documentation of a project. The software process should, therefore, provide templates and hints about the documentation. User interface: If a software has special requirements w.r.t. the user interface, the design, implementation, and test should be part of the software process.

The Step Wise approach to project planning

Covers only the planning stages of a project and not monitoring and control.

Tailoring software processes

Defined as "the act of adjusting the definition and/or particularizing the terms of a general description to derive a description applicable to an alternate (less general) environment.

Dummy activities when drawing activity-on-arrow networks

Dummy activities, shown as dotted lines on the network diagram, have a zero duration and use no resources. The use of a dummy activity where two activities share the same start and end nodes makes it easier to distinguish the activity end-points. These are problems that do not occur with activity-on-node networks.

The forward pass in drawing an activity network diagram

During the forward pass, earliest dates are recorded as they are calculated, according to the following reasoning: Activities A, B and F may start immediately, so the earliest date for their start is zero. Activity A will take 6 weeks, so the earliest it can finish is week 6 and so on. Activity C can start as soon as A has finished so its earliest start date is week 6. It will take 3 weeks so the earliest it can finish is week 9.

British Standard BS 4335 labeling convention

Earliest start | Duration | Earliest finish Activity label, activity description Latest start | Float | Latest finish

Effort vs. Elapsed time (estimation)

Effort is the amount of work that needs to be done. If a task requires three members of staff to work for two full days each, the effort expended is six days. Elapsed time is the time between the start and end of a task. If the three members of staff start and finish at the same time then the elapsed time for the activity would be two days.

The life cycle of Extreme Prgramming

Exploration The team becomes familiar with technology, tools, and practices. Planning The project team spends several days working with the customer to prioritize the capabilities needed for the first release. Team lead draws up a release schedule. Iterations to Release Goes through several iterations to produce the first release. Each iteration takes one to four weeks, and at the end of each, the functional tests are executed. Completion of the last iteration marks ready for Productionizing. Productionizing The project team conducts additional performance testing and checking to ensure the release meets the customer requirements. Maintenance The team produces new iterations of the software product to implement changes and new feature requests raised in the previous phase. Death Entails completing all necessary documentation and the disposition the system is planned. This phase occurs when the value proposition for evolving the system further no longer exists.

The objectives of activity planning

Feasibility assessment - Is the project possible within required timescales and resource constraints? Resource allocation - What are the most effective ways of allocating resources to the project. When should the resources be available? Detailed costing - How much will the project cost and when is that expenditure likely to take place? Motivation - Providing targets and being seen to monitor achievement against targets is an effective way of motivating staff. Coordination - When do the staff in different departments need to be available to work on a particular project and when do staff need to be transferred between projects?

The five phases of DSDM

Feasibility study The project is assessed, and the decision on whether or not DSDM is appropriate for the effort. Business study Key characteristics of the business and technology are assessed culminating in a system architecture definition and an outline prototyping plan. Functional model Iteration The project evolves through functional iterations where each iteration involves some enhancements and the increments are directed toward the final system. Design and Build iteration Produces the system that meets the minimum set of requirements and iterate the system based on the customer's comments. Implementation The system is formally transferred to the actual product. The system is delivered to the customer and any subsequent increments are planned. The last three phases are iterative and incremental.

Other measures of activity float

Free float Interfering float

What is the fundamental assumption in agile software development?

High-quality, adaptive software can be developed by small teams using the principles of continuous design improvement and testing based on rapid feedback and change.

Activity-on-arrow networks

In activity-on-arrow networks activities are represented by links (or arrows) and the nodes represent events of activities (or groups of activities) starting or finishing.

When are agile methods most applicable?

In projects where requirements are ill-defined and fluid since they seek to accommodate change easily.

The forward pass in drawing activity-on-arrow networks

Is carried out to calculate the earliest date on which each event may be achieved and the earliest dates on which each activity may be started and completed. The earliest date for an event is the earliest date by which all activities upon which it depends can be completed.

Bar chart

It can be used to present a schedule that clearly indicates when each of the project's activities is planned to occur and what resources it will need.

The product-based approach to identifying activities

It consists of producing a Product Breakdown Structure and a Product Flow Diagram. The PFD indicates, for each product, which other products are required as inputs. The PFD can therefore be easily transformed into an ordered list of activities by identifying the transformations that turn some products into others.

Dynamic System Development Methodology (DSDM):

It fixes time and resources first and then adjusts the amount of functionality accordingly.

What is the effect of time-boxing?

It helps focus the customer and reduces gold-plating and scope creep.

External environment as a software process tailoring criteria examples

Legal aspects: When not delivering the ordered software in time nor with the defined functionality recourse claims can occur. This causes the software process to be very formal. Number of stakeholders: The higher the number of involved stakeholders the more time is required to negotiate all needs and requirements. A software process should pay attention to the number of stakeholders by defining adequate communication and reporting patterns. Requirements stability: The stability of requirements directly influences the entire approach in a project. Client availability: The client's availability influences the customer satisfaction since the client can continuously monitor progress. Regular deliveries in short cycles can compensate for a missing availability.

IBM recommendation of WBS levels

Level 1: project Level 2: Deliverables Level 3: Components which are the key work items needed to produce deliverables, such as the modules and tests required to produce the system software. Level 4: Work-packages which are major work items, or collections of related tasks, required to produce a component. Level 5: Tasks which are tasks that will normally be the responsibility of a single person.

What makes a project difficult to control?

Long activities. They should be broken down into smaller sub-tasks.

Management and organizational issues in migrating to Agile

Neither culture nor mind-sets of people can be easily changed, which makes the move to agile methodologies all the more formidable for many organizations. Agile methodologies require a shift from command-andcontrol management to leadership-and-collaboration.

Six common features to the various agile methods

Not all agile methodologies have all these six characteristics. SCRUM does ot specify a development process and therefore does not explicitly require code reviews. Collaboration Code reviews Small teams Short release schedules Time-boxing Constant testing

Process-related issues in migrating to Agile

One of the biggest barriers to migration is the change in a process model from a life cycle model to one that supports featurebased development using evolutionary and iterative development. Such a change entails major alterations to work procedures, tools and techniques, communication channels, problem-solving strategies, and roles of people.

Product breakdown structure (PBS)

PRINCE2 suggests that the PBS be presented as a hierarchy diagram. In practice it may be more convenient to produce a structured list. Always remember that a product is the result of an activity.

The life cycle of SCRUM

Pre-game Has two sub-phases: - Planning - Architecture/High level design Development Post-game

The Agile Manifesto reflections on the four core values

Processes and tools cannot accommodate all of the changes in software, so people have to pick up the slack. Valuing people over process allows for more creativity in solutions. Documentation, while valuable, takes time to write and maintain. However, it is less valuable than a working product. Allowing the customer to use the product quickly allows the customer to change his or her mind. Thus, instead of writing contracts, which would then need to be changed, the customer instead is encouraged to actively participate. A plan is only as good as when it was initially written. If things change, then the plan must as well. But, changes can often happen faster than the plan can be modified. Any plan must be lightweight and easily modifiable.

Team as a software process tailoring criteria examples

Size: While smaller teams located in a single room can directly communicate the need for formalization increases if the team grows. Team size is one of the key criteria when selecting a software process. Distribution Teams located in a single room can directly communicate while distributed teams need a more formalized communication. Knowledge (tool, technology, proces): Little or missing knowledge w.r.t. the actual tools, the technology and the process to be used is a risk.

Slack in activity-on-arrow networks

Slack is the difference between the earliest date and the latest date for an event - it is a measure of how late an event may be without affecting the end date of the project.

Precedence requirements for activities

Some activities might require that others are completed before they can begin.

Technical products

Such as training material and operating instructions.

What is the fundamental assumption in traditional software development?

Systems are fully specifiable, predictable, and can be built through meticulous and extensive planning

Tailoring criteria for software processes

Team Internal environment External environment Objectives

TDD

Test Driven Development. Has some problems, they require that people know how to write tests. It is a different skill set than writing a system. Writing testable code is not easy. If done systematically it forces you to design code that is testable which is a desired quality.

Approaches to identifying activities

The activity-based approach The product-based approach The hybrid approach

The activity-based approach to identifying activities

The activity-based approach consists of creating a list of all the activities that the project is thought to involve. When listing activities, particularly for a large project, it might be helpful to subdivide the project into the main life-cycle stages and consider each of these separately.

Why can maintenance be an issue for Agile development?

The amount of documentation that can be used by the maintenance developers is often very small.

The critical path approach

The critical path approach is concerned with two primary objectives: planning the project in such a way that it is completed as quickly as possible; and identifying those activities where a delay in their execution is likely to affect the overall end date of the project or later activities' start dates. The method requires that for each activity we have an estimate of its duration. The network is then analysed by carrying out a forward pass, to calculate the earliest dates at which activities may commence and the project be completed, and a backward pass, to calculate the latest start dates for activities and the critical path.

Shortening the project duration

The critical path indicates where we must look to save time. As we reduce activity times along the critical path we must continually check for any new critical path emerging and redirect our attention where necessary.

Identifying the critial path in activity-on-arrow networks

The critical path is identified in a way similar to that used in activity-on-node networks. We do, however, use a different concept, that of slack, in identifying the path. The critical path is the path joining all nodes with a zero slack. The critical path is the longest path through the network.

The critical path in an activity network diagram

The critical path is the longest path through the network. There will be at least one path through the network (that is, one set of successive activities) that defines the duration of the project. This is known as the critical path. Any delay to any activity on this critical path will delay the completion of the project. In managing the project, we must pay particular attention to monitoring activities on the critical path so that the effects of any delay or resource unavailability are detected and corrected at the earliest opportunity. In planning the project, it is the critical path that we must shorten if we are to reduce the overall duration of the project.

The total float in activity network diagrams

The difference between an activity's earliest start date and its latest start date (or, equally, the difference between its earliest and latest finish dates) is known as the activity's float. It is a measure of how much the start or completion of an activity may be delayed without affecting the end date of the project. Any activity with a float of zero is critical in the sense that any delay in carrying out the activity will delay the completion date of the project as a whole. There will always be at least one path through the network joining those critical activities - this path is known as the critical path and is shown bold.

Interfering Float

The difference between total float and free float.

The forward pass rule when drawing activity network diagrams

The earliest start date for an activity is the earliest finish date for the preceding activity. Where there is more than one immediately preceding activity we take the latest of the earliest finish dates for those activities.

Formulating a network model

The first stage in creating a network model is to represent the activities and their interrelationships as a graph. In activity-on-node we do this by representing activities as nodes (boxes) in the graph - the lines between nodes represent dependencies.

Example calculation of the backward pass

The latest completion date for activities G and H is assumed to be week 13. Activity H must therefore start at week 11 at the latest (13 - 2) and the latest start date for activity G is week 10 (13 - 3). The latest completion date for activities C and D is the latest date at which activity H must start - that is, week 11. They therefore have the latest start dates of week 8 (11 - 3) and week 7 (11 - 4) respectively. The latest start date for the project start is the earliest of the latest start dates for activities A, B and F. This is week zero. This is, of course, not very surprising since it tells us that if the project does not start on time it won't finish on time.

The backward pass rule when drawing activity network diagrams

The latest finish date for an activity is the latest start date for the activity that commences immediately that activity is complete. Where more than one activity can commence we take the earliest of the latest start dates for those activities.

Gantt chart

The product of Steps 7.1 and 7.2 would typically be a Gantt chart. The Gantt chart gives a clear picture of when activities will actually take place and highlights which ones will be executed at the same time. It is a communication, resource planning, and monitoring progress tool. The float can be depicted in the chart with arrows. It is for tracking project progress, and it shows scheduled activity dates and durations, frequently augmented with activity floats. Reported progress is recorded on the chart.

What should the project manager's traditional role be altered to when migrating to agile?

The project manager's traditional role of planner and controller must be altered to that of a facilitator who directs and coordinates the collaborative efforts of those involved in development, thus ensuring that the creative ideas of all participants are reflected in the final decision.

The backward pass

The second stage in the analysis of a critical path network is to carry out a backward pass to calculate the latest date at which each activity may be started and finished without delaying the end date of the project. In calculating the latest dates, we assume that the latest finish date for the project is the same as the earliest finish date - that is, we wish to complete the project as early as possible.

The backward pass in drawing activity-on-arrow networks

The second stage is to carry out a backward pass to calculate the latest date at which each event may be achieved, and each activity started and finished, without delaying the end date of the project. The latest date for an event is the latest date by which all immediately following activities must be started for the project to be completed on time.

Free float

The time by which an activity may be delayed without affecting any subsequent activity. It is calculated as the difference between the earliest completion date for the activity and the earliest start date of the succeeding activity.

Labelling conventions

There are a number of differing conventions that have been adopted for entering information on an activity-on-node network.

Network planning models

These project scheduling techniques model the project's activities and their relationships as a network. In the network, time flows from left to right. The two best known are CPM (Critical Path Method) and PERT (Program Evaluation Review Technique).

A key advantage of doing code reviews

They serve as a method of communication. Developers become familiar with the inner workings, design tradeoffs, and open issues with areas of the code they may be required to work with later.

The role of documentation when using Agile Methods

This documentation-light process avoids wasted effort where documents are written once and then become obsolete as they are not updated to reflect the changes. With Agile processes, information is communicated informally. While reducing the amount of documentation can increase productivity, it does come at some risk and cost. Documentation serves as a way to bring new members up to speed. It is useful when transitioning the project to a maintenance team.

Work Breakdown Structure (WBS)

This involves identifying the high-level tasks required to complete a project and then breaking each of these down into a set of lower-level tasks. Note that it is only the leaves of the structure that comprise the list of activities in the project - higher-level nodes merely represent collections of activities.

Precedence networks

This method uses activity-on-node networks where activities are represented as nodes and the links between nodes represent precedence (or sequencing) requirements.

When to plan?

Throughout the project, until the final deliverable has reached the customer, monitoring and replanning must continue to correct any drift that might prevent meeting time or cost targets. On a large project, detailed plans for the later stages will be delayed until information about the work required has emerged from the earlier stages.

Activity plan

To be effective, a plan must be stated as a set of targets, the achievement or nonachievement of which can be unambiguously measured. The activity plan does this by providing a target start and completion date for each activity (or a window within which each activity may be carried out). The starts and completions of activities must be clearly visible and this is one of the reasons why it is advisable to ensure that each and every project activity produces some tangible product or 'deliverable'. The activity plan should provide a means of evaluating the consequences of not meeting any of the activity target dates and guidance as to how the plan might most effectively be modified to bring the project back to target.

What is a much favored way of generating a task list?

To create a Work Breakdown Structure (WBS).

Primary responsibility of the project manager

To ensure a highly collaborative environment. The reason is that any agile method is doomed to fail without a highly collaborative environment. The project manager must be more of a coach and mentor than a dictator.


Conjuntos de estudio relacionados

Systems Analysis and Design - Chapter 1

View Set

Cardio Lecture 2 Part 2 - Intro to ECG

View Set

MCAT Gen Chem Chapter 12: Electrochemistry ***

View Set

AP Biology Chapter 3 Test Review

View Set

BRS: Biochem Nitrogen Metabolism ?s

View Set

Lista 10: ¿Qué haces en tu casa? (Verbos)

View Set