Subscribe by Email


Thursday, October 15, 2009

Dynamic Systems Development Model (DSDM) - Type of Agile Methodology

The Dynamic Systems Development Model was developed in the U.K. in the mid-1990s. DSDM favors the philosophy that nothing is built perfectly the first time and looks to software development as an exploratory endeavor.

The nine principles of DSDM are:
- Active user involvement.
- Empowered teams that the authority to can make decisions.
- A focus on frequent delivery of products.
- Using fitness for business purpose as the essential criterion for acceptance of deliverables.
- Iterative and incremental development to ensure convergence on an accurate business solution.
- Reversible changes during development.
- Requirements that are baselined at a high level.
- Integrated testing throughout the life cycle.
- Collaboration and cooperation between all stakeholders.

Requirements are baselined at a high level early in the project. Rework is built into the process, and all development changes must be reversible. Requirements are planned and delivered in short, fixed-length time-boxes, also referred to as iterations, and requirements for DSDM projects are prioritized using MoSCoW Rules:
M – Must have requirements
S – Should have if at all possible
C – Could have but not critical
W - Won’t have this time, but potentially later
All critical work must be completed in a DSDM project. It is also important that not every requirement in a project or time-box is considered critical. Within each time-box, less critical items are included so that if necessary, they can be removed to keep from impacting higher priority requirements on the schedule.
The DSDM project framework is independent of, and can be implemented in conjunction with, other iterative methodologies such as Extreme Programming and the Rational Unified Process.


Tuesday, October 13, 2009

FTP Software & Anonymous FTP Servers

FTP Software
Depending on what you are planning to do with your FTP software you should pick different ones. There are hundreds of free pieces of software so there is a very good choice. The three software packages are:

- Cute FTP : It used to be the best shareware FTP program around. It is easy to use and has many functions. Unfortunately, because it has become so popular, the latest version only allows you to transfer one file at a time unless you register. If you can find a copy of version 2.6.* it is an excellent program.

- FTP Explorer : It is not such a good program as Cute FTP but it is freeware so there are no annoying nag-screens. It can be downloaded here.

- Elite FTP : It is not such a good program for uploading standard files it works better if you are working with CGI as you can send commands to the server by typing them in.

Anonymous FTP Servers
A host that provides an FTP service may additionally provide anonymous FTP access. Users typically login to the service with an 'anonymous' account when prompted for user name. Although users are commonly asked to send their email address in lieu of a password, little to no verification is actually performed on the supplied data.
The login id for the public accounts on most anonymous FTP servers is anonymous, and guest is also common. The password can be anything, but most anonymous FTP service machines will ask you to enter your complete email address as your password.


Overview Of File Transfer Protocol

File Transfer Protocol (FTP) is a standard network protocol used to exchange and manipulate files over a TCP/IP based network, such as the Internet. FTP is built on a client-server architecture and utilizes separate control and data connections between the client and server applications.

The objectives of FTP are :
* To promote sharing of files (computer programs and/or data).
* To encourage indirect or implicit use of remote computers.
* To shield a user from variations in file storage systems among different hosts.
* To transfer data reliably, and efficiently.

What FTP does ?
It works by establishing a connection between one computer (for example, your PC) and another (for example, your Web server). To do this, you need to know the host name (e.g."webserver.example.com") or IP address (e.g. "12.34.56.78") of your Web server. Your FTP program will allow you to enter lots of different servers if you want (by host name or IP address), and usually you can double-click on one of them to connect to it.
- Logging in
Once connected, the Web server usually asks you for your user name and password.
- Transferring files
You're then logged in to your Web server. Once you're logged in, you can start moving files about. On most FTP programs, this works a lot like Windows Explorer or other similar file managers.
- The home directory
When you first log in, you will be viewing your home directory on your Web server. This will be the directory that contains your website, amongst other files.
- Going dotty
Some FTP programs will show two extra entries in the folder display - a single dot and a pair of dots. The single dot means "this directory" and usually does nothing, but the pair of dots mean "the directory above".


Saturday, October 10, 2009

Critical Path Method (CPM)

The Critical Path Method (CPM) is one of several related techniques for doing project planning. CPM is for projects that are made up of a number of individual "activities." If some of the activities require other activities to finish before they can start, then the project becomes a complex web of activities.

CPM provides the following benefits:
* Provides a graphical view of the project.
* Predicts the time required to complete the project.
* Shows which activities are critical to maintaining the schedule and which are not.
CPM models the activities and events of a project as a network. Activities are depicted as nodes on the network and events that signify the beginning or ending of activities are depicted as arcs or lines between the nodes.

STEPS IN CPM PROJECT PLANNING:
1. Specify the individual activities : From the work breakdown structure, a listing can be made of all the activities in the project. This listing can be used as the basis for adding sequence and duration information in later steps.
2. Determine the sequence of those activities : Some activities are dependent on the completion of others. A listing of the immediate predecessors of each activity is useful for constructing the CPM network diagram.
3. Draw a network diagram : Once the activities and their sequencing have been defined, the CPM diagram can be drawn. CPM originally was developed as an activity on node (AON) network, but some project planners prefer to specify the activities on the arcs.
4. Estimate the completion time for each activity : The time required to complete each activity can be estimated using past experience or the estimates of knowledgeable persons. CPM is a deterministic model that does not take into account variation in the completion time, so only one number is used for an activity's time estimate.
5. Identify the critical path : The critical path can be identified by determining the following four parameters for each activity:
* ES - earliest start time.
* EF - earliest finish time.
* LF - latest finish time.
* LS - latest start time.
6. Update the CPM diagram as the project progresses : As the project progresses, the actual task completion times will be known and the network diagram can be updated to include this information. A new critical path may emerge, and structural changes may be made in the network if project requirements change.

CPM LIMITATIONS :
CPM was developed for complex but fairly routine projects with minimal uncertainty in the project completion times. For less routine projects there is more uncertainty in the completion times, and this uncertainty limits the usefulness of the deterministic CPM model.


Program Evaluation and Review Technique (PERT)

Complex projects require a series of activities, some of which must be performed sequentially and others that can be performed in parallel with other activities. This collection of series and parallel tasks can be modeled as a network. The Program Evaluation and Review Technique (PERT) is a network model that allows for randomness in activity completion times.
In a project, an activity is a task that must be performed and an event is a milestone marking the completion of one or more activities. Before an activity can begin, all of its predecessor activities must be completed. Project network models represent activities and milestones by arcs and nodes. PERT originally was an activity on arc network, in which the activities are represented on the lines and milestones on the nodes. Over time, some people began to use PERT as an activity on node network. For this discussion, we will use the original form of activity on arc.

PERT planning involves the following steps:
1. Identify the specific activities and milestones : The activities are the tasks required to complete the project. The milestones are the events marking the beginning and end of one or more activities. It is helpful to list the tasks in a table that in later steps can be expanded to include information on sequence and duration.
2. Determine the proper sequence of the activities : This step may be combined with the activity identification step since the activity sequence is evident for some tasks. Other tasks may require more analysis to determine the exact order in which they must be performed.
3. Construct a network diagram : Using the activity sequence information, a network diagram can be drawn showing the sequence of the serial and parallel activities. For the original activity-on-arc model, the activities are depicted by arrowed lines and milestones are depicted by circles or "bubbles".
4. Estimate the time required for each activity : A distinguishing feature of PERT is its ability to deal with uncertainty in activity completion times. For each activity, the model usually includes three time estimates:
- Optimistic time : Generally the shortest time in which the activity can be completed. It is common practice to specify optimistic times to be three standard deviations from the mean so that there is approximately a 1% chance that the activity will be completed within the optimistic time.
- Most likely time : The completion time having the highest probability. Note that this time is different from the expected time.
- Pessimistic time : The longest time that an activity might require. Three standard deviations from the mean is commonly used for the pessimistic time.
Expected time for each activity can be approximated using the following weighted average:
Expected time = ( Optimistic + 4 x Most likely + Pessimistic ) / 6
To calculate the variance for each activity completion time, if three standard deviation times were selected for the optimistic and pessimistic times, then there are six standard deviations between them, so the variance is given by:
[(Pessimistic - Optimistic)/6]2
5. Determine the critical path : The critical path is determined by adding the times for the activities in each sequence and determining the longest path in the project. The critical path determines the total calendar time required for the project. If activities outside the critical path speed up or slow down (within limits), the total project time does not change. The amount of time that a non-critical path activity can be delayed without delaying the project is referred to as slack time.
If the critical path is not immediately obvious, it may be helpful to determine the following four quantities for each activity:
* ES - Earliest Start time
* EF - Earliest Finish time
* LS - Latest Start time
* LF - Latest Finish time
These times are calculated using the expected time for the relevant activities. The earliest start and finish times of each activity are determined by working forward through the network and determining the earliest time at which an activity can start and finish considering its predecessor activities. The latest start and finish times are the latest times that an activity can start and finish without delaying the project. LS and LF are found by working backward through the network. The difference in the latest and earliest finish of each activity is that activity's slack. The critical path then is the path through the network in which none of the activities have slack.
6. Update the PERT chart as the project progresses : Make adjustments in the PERT chart as the project progresses. As the project unfolds, the estimated times can be replaced with actual times. In cases where there are delays, additional resources may be needed to stay on schedule and the PERT chart may be modified to reflect the new situation.

PERT is useful because it provides the following information:
* Expected project completion time.
* Probability of completion before a specified date.
* The critical path activities that directly impact the completion time.
* The activities that have slack time and that can lend resources to critical path activities.
* Activity start and end dates.

The following are some of PERT's weaknesses:
* The activity time estimates are somewhat subjective and depend on judgment.
* Even if the activity times are well-estimated, PERT assumes a beta distribution for these time estimates, but the actual distribution may be different.
* Even if the beta distribution assumption holds, PERT assumes that the probability distribution of the project completion time is the same as the that of the critical path. Because other paths can become the critical path if their associated activities are delayed, PERT consistently underestimates the expected project completion time.


Thursday, October 8, 2009

Defining a Task Set For The Software Project

No single task is appropriate for all projects. The set of tasks that would be appropriate for a large, complex system would likely be perceived as overkill for a small, relatively simple software product. Therefore, an effective software process should define a collection of task sets, each designed to meet the needs of different types of projects.

To develop a project schedule, a task set must be distributed on the project time line. The task set will vary depending upon the project type and the degree of rigor with which the software team decides to do its work. Most software organizations encounter the following projects :
- Concept Development projects : These projects are initiated to explore some new business concept or application of some new technology.
- New Application Development projects : These projects are undertaken as a consequence of a specific customer request.
- Application Enhancement projects : These projects occur when existing software undergoes major modifications to function, performance, or interfaces that are observable by the end user.
- Application Maintenance projects : The projects that correct, adapt, or extend existing software in ways that may not be immediately obvious to the end-user.
- Re engineering projects : These projects are undertaken with the intent of rebuilding an existing system in whole or in part.

DEFINING A TASK NETWORK
Individual tasks and subtasks have inter dependencies based on their sequence. A task network, also called an activity network, is a graphic representation of the task flow for a project. It is sometimes used as a mechanism through which task sequence and dependencies are input to an automated project scheduling tool. The concurrent nature of software engineering activities leads to a number of important scheduling requirements. Because parallel tasks occur asynchronously, the planner must determine intertask dependencies to ensure continuous progress toward completion. In addition, the project manager should be aware of those tasks that lie on the critical path.


Basic Principles of Project Scheduling

Scheduling is the culmination of a planning activity that is a primary component of software project management. When combined with estimation methods and risk analysis, scheduling establishes a road map for the project manager.

BASIC PRINCIPLES THAT GUIDE SOFTWARE PROJECT SCHEDULING
- Compartmentalization : The project must be compartmentalized into a number of manageable activities, actions and tasks. To accomplish compartmentalization, both the product and the process are decomposed.
- Interdependency : The interdependency of each compartmentalized activity, action, or task must be determined. Some tasks must occur in sequence while others can occur in parallel.
- Time allocation : Each task to be scheduled must be allocated some number of work units. In addition, each task must be assigned a start date and a completion date that are a function of the inter dependencies and whether work will be conducted on a full-time or part-time basis.
- Effort validation : As time allocation occurs, the project manager must ensure that no more than the allocated number of people have been scheduled at any given time.
- Defined responsibilities : Every task that is scheduled should be assigned to a specific team member.
- Defined outcomes : Every task that is scheduled should have a defined outcome. For software projects, the outcome is normally a work product or a part of work product.
- Defined milestones : Every task or group of tasks should be associated with a project milestone. A milestone is accomplished when one or more work products has been reviewed for quality.

Each of these principles is applied as the project schedule evolves.


Facebook activity