Work Breakdown Structure of Organizing Tasks
- Details
- Hits: 33000
- Work breakdown structure
The WBS details the entire extent of a project and is an outcome-oriented assessment of all the work involved in a project. It contains everything deliverable at the end the project. As such, it contains all the project deliverables. Elements are described in terms of results or outcomes and the top element is the general project deliverable agreed upon by all stakeholders. It provides a big picture of what is required for a project to be completed successfully and is important during the early stages of project development. Every element in the WBS has the scope of work and all its deliverables and the individual tasked with the scope of work. Rather than being a comprehensive work list, WBS is a detailed classification of scope. It is also not an organizational chain of command, an ordered listing, or a project schedule or plan. However, the WBS does not capture sequencing or interdependencies and this is its major drawback. In the WBS, work is grouped in a tree-like and taxonomical manner. Organization of the WBS can be done in many ways. Organization can be by function, deliverables, phase, by tables, and lifecycle phase
The WBS is useful as it is the basis upon which project timeframes, overheads, and alterations are planned and managed. It also provides an overview of the entire project. Other benefits of WBS are that it allows organization of tasks in a tiered manner and this enhances traceability, simplifies planning, allows categories to be easily tracked at different levels, and enhances accountability.
There are five different approaches to WBS. The bottom-up approach entails beginning with tasks that are more meticulous then rolling them up. Unlike the bottom-up approach where one starts with the more complicated tasks, the top-down approach involves beginning with the largest tasks followed by their continuous decomposition. The deliverables-driven approach uses the required deliverables to guide the formulation of WBSs. The objective here is to enhance focus on the project so that estimates and tracking are done better. In the guidelines approach, rules for the preparation of WBSs are formulated. Finally, the analogy approach entails the use of projects resembling the one being implemented as reference points for the formulation of WBSs.
- Software Project Tracking
Software project tracking has four components namely project tracking, cost control, earned value analysis, and agile techniques including burndown charts. Project tracking can be based on the top-down or bottom-down approach. The top-down method utilizes measures that consider the whole project while the bottom-up approach involves getting data points on the tasks into one’s work breakdown schedule (WBS) or Gantt or PERT charts. Once the data points are identified, an evaluation of whether slippage is occurring is done and threshold criteria used to evoke contingency plans or risk mitigation measures determined. The critical path is examined as well.
Cost control entails the examination of cost performance to ensure the inclusion of only those project changes correct in the amended cost baseline. Project cost control also entails change requests where project stakeholders are made aware about project alterations that have the impact of changing project costs.
Earned value analysis (EVA) is one of the most valuable tools used in project tracking. It measures the performances of projects and encompasses the project cost information, time, and scope. It uses a baseline to find out the effectiveness of a project in fulfilling its objectives. For EVA to be useful, one is required occasionally to input tracking data. Mathematical indices used in EVA include the budgeted cost of work performed (BCWP); cost variance (CV), schedule variance (SV), cost performance index (CPI), and schedule performance index (SPI). Values such are CPI and SPI, which are less than 100%, are indicative of problems. The EVA tool is useful as it gives a measure of progress compared to estimates and helps to evaluate actual costs versus expected costs. Two approaches can be used in EVA, these are the product-oriented approach where progress is measured by the value of business delivered, and the task-oriented approach where cost is measured based on the work performed. The extreme programming (XP) approach has three stages namely the exploration stage where the function of the system is determined, the commitment stage where a decision on all the probable requirements is made, and the steering stage where development is guided and the plan formed based on actual happenings.
Agile methods are also used to track software projects. Burndown charts represent a common form of agile methods and resemble EVA charts. In burndown charts, appropriate user stories are used to sum up story points, which are in turn used to plot iteration expectations. Subtraction of complete user stories from the total left to do is carried out. Burndown charts are different from EVP charts as they permit incorporation of change.
Several guidelines are useful in project tracking and these include the setting of short-term goals that can be easily measured, creation of objective descriptions that are “stateful”, and ability to withstand pressure from looming deadlines and external forces in order to keep estimates or objectives from varying. The change impact needs to be understood as priority, business value and effort used traced, and progress rather than rate measured.
- Software Quality Management
Quality management and testing is important as it helps to enhance the reliability of software and hence reduce losses associated with system failure, fault, error, or defects. The objective is not just to identify and fix bugs but also to ensure that the software is at all times correct, reliable, robust, user friendly, verifiable, maintainable, reparable, safe, scalable, reusable, portable, interoperable, and productive, among others. Verification and validation are essential aspects of quality management and these ensure that the software meets specifications and customer intent respectively. Quality practices are integral to the software lifecycle. At the requirements stage of the lifecycle, there are eight important measures of quality and these are that the software needs to be correct, unequivocal, complete, prioritized, reliable, demonstrable, adjustable, and traceable. The design must satisfy all requirements and coding done in a way that enhances software quality. Testing and deployment must also enhance quality and maintenance should be geared at preserving and improving quality. Requirements, accountability issues, inertia, and complexities that are ingrained in the software complicate software quality.
- Software Testing
Testing the software quality entails checking the functionality, usability, performance, reliability, and supportability of the software. Functionality testing aims at assessing the accuracy of the different usage scenarios while usability testing seeks to assess the software from the viewpoint of the convenience it gives to the end-consumer. Performance testing looks at how the software responds online under peak and average loading while reliability testing measures the predictability and consistency of the software. Finally, supportability testing looks at the capacity of the developers of the software to uphold and support the software during its use in production.
There are different types of testing and these include unit testing, acceptance testing, installation testing, and regression testing. Other types of tests are functional or system testing, automated testing, integration testing, and stress testing. Acceptance testing helps to determine the readiness of the software for final release and can take the form of benchmark, pilot, or parallel tests or release candidate. Benchmark tests make use of the actual or replicated user base and are usually reserved for systems that have special requirements. Pilot tests utilize the real end users, focus on mainstream requirements, consist of alpha, and beta tests, which are in-house, and customer pilot tests respectively. Parallel testing is used for new systems, which are used in tandem with older systems, and is useful for comparison analysis. Finally, release candidate is used during the initial availing of the product to the public.
On the other hand, installation testing seeks to find out how well a system works in the field compared to its working in the lab. This type of testing also helps to determine the difficulties in system deployment and maintenance, accuracy of migration procedures, and documentation match. Regression testing seeks to determine the effect of new functionality on working functionality for software that has passed system testing. Functional testing assesses entire systems, is oriented to system function but can also include non-functional tests, and is unconcerned with interface glitches or defect locations. Automated testing involves the use of simulations and record-and-play tools. Test scripts are given workflow support. Integration testing evaluates entire systems or subsystems made up of integrated parts. It is difficult to locate errors using this type of tests. Interface testing is a form of integration testing that seeks to identify faults occasioned by interface errors or incorrect hypotheses about interfaces. These tests can help to identify interface misuse errors, interface-misunderstanding errors, and timing errors. Finally, stress testing overloads a system in order to identify defects and is especially useful for distributed systems, which are amenable to serious malfunctioning due to network overload.
The testing process consists of several steps and these are designing test cases, actual testing of the cases, preparation of test data, use of the test data to run the application, test results, comparison of results to test cases, and generation of test reports. Test documentation includes test planning, specification and assessment, description, script, and analysis report. Agile testing is increasingly being preferred over traditional testing, as it is a continuous process incorporating all stakeholders, integrates quality principles, minimizes risks, and enhances accountability and adaptability.
- Activity Sequencing
Task sequencing is all about time management processes and aims at ensuring that projects are completed within the required time. It entails definition of the project using the work breakdown schedule (WBS), activity sequencing, and estimation of activity duration. This section focuses on activity sequencing.
In activity sequencing, a more comprehensive WBS is generated and explanations given to help one understand the entire work to be done. Thus, activity sequencing results from the WBS work packages and encompasses initial dependencies. Activities that need to be carried out to enable data availability are determined. Additionally, activities that are part of other activities are identified and this enables the activities to be sequenced. Thereafter, the activities are appraised to detect dependencies, which can be mandatory, discretionary, external, or resource. Activity sequencing tools include PERT charts, task networks, and critical path analysis (CPA).
Program Evaluation and Review Technique (PERT) charts help to approximate the duration of a project in instances where there exists a lot of ambiguity about estimates of the duration of each activity. This technique is based on probabilistic estimates of time utilizing optimistic, probable, and pessimistic approximations of the duration of activities. Task networks are diagrammatic depictions of tasks. They help in the visualization of activities, flows, and associations and can be represented using either the activity-on-arrow (AOA) format or the activity-on-node (AON) format. Task networks can represent temporal dependencies between activities using finish-to-start, start-to-start, finish-to-finish, or start-to-finish methods. The final method used in activity sequencing is the critical path method (CPM) and this method predicts the entire duration of a project using network analysis. Defined, the critical path is the sequence of tasks determining the shortest time a project would take to end. It is also the longest path through a network diagram, which contains the smallest quantity of float or slack. Critical paths are found by generating high-quality network diagrams, adding durations for activities on individual paths, and identifying the longest path.
- Risk Management
Risk management is important in software development as it helps to identify potential hazards and put in place mitigation measures in order to avoid catastrophic occurrences or crises. Types of risks include schedule risks, cost risks manifested by unrealistic budgets, and requirements risks manifested by inaccurate, partial, ambiguous, and unpredictable requirements. Risks can also be operational, quality risks, or simply common errors.
Some of the leading risks in software are personnel shortfalls and unrealistic budgets and scheduling. Others are the development of incorrect properties and functions, development of incorrect user interfaces, gold plating, and enduring requirement modifications. Other common risks include deficits in real-time performance, overloading the technical capacity of the software, and deficits in components and tasks that are externally furnished.
Risk management is specific and proactive and entails identification of risks, their analysis, and control. Risk identification is the initial step of risk management and leads to a list of risks that can potentially affect a project’s schedule. Risks can be identified through brainstorming and using a checklist. Once risks are identified, they are then analyzed to find out their possible impact and the exposure to the risk. Risk exposure is the product of the expected loss due to the risk and the magnitude of the loss. The expected overrun is computed through summation of all risk exposures. The expected loss is determined using tools such as Delphi group method, group-consensus method, gambling analogy, and adjective calibration methods. After risk analysis, prioritization of the risks is done to identify the risks that should be ignored and those that should be mitigated to avoid losses. Risk control follows risk prioritization and encompasses risk management planning, risk resolution, and risk monitoring.
Risk resolution can be accomplished through risk avoidance, risk assumption, problem control, risk transfer, or knowledge acquisition. Finally, risk monitoring involves continuously evaluating one’s system and practices to ensure that the risk does not recur. Equally important in the risk management process is risk communication, which ensures that the identified risks are communicated to all stakeholders responsibly and that mitigation measures are shared and understood.
Miniature milestones are important in risk management and are risk-reduction methods that utilize small goals with the schedule of a project. They are useful as they promote iterative development, enhance status visibility and assist in the recovery of projects. However, they increase the effort needed in tracking. Feature-set control helps to avoid common errors and include use of minimal specifications, requirements scrubbing, and versioned development in the early phase of the software lifecycle. Minimal specification helps to avoid issues associated with traditional specs such as archaism, unnecessary efforts, inefficiency, and designs that are highly constrained. Advantages of minimal specifications are that it enhances self-confidence and efficiency and reduces the requirements stage. However, it can lead to the elimination of important details, set unrealistic objectives, and be misused. In requirements scrubbing, features are eliminated from products and only the important ones are retained. In versioned development, some features are removed from the current version and can be included in future versions of the product.
In the mid-project phase, feature-set control includes efficient control of change while in the late stage of the project it includes feature cuts. Traditional specs can also help in risk avoidance through necessity, avoidance of downstream costs, and total control of all product features.
Techniques for managing the leading software risk items have been described. To manage personnel deficits, teams are staffed with top talent, personnel matched to their jobs, teams built, crops training performed, and key personnel agreements drafted and signed on time. To manage impractical budgets and schedules, schedules and costs are estimated comprehensively and judiciously, requirements scrubbed, development done in stages, design matched to cost, and software reused. The risk of developing incorrect properties and functions can be managed through organizational and mission analysis, formulation of operations concept, conducting user surveys and integrating users in the entire development process, prototyping, developing a manual for early users, and performing quality-factor and off-nominal performance analyses. Gold plating is usually managed through requirements scrubbing, designing to cost, analysis of cost to benefit, and prototyping. Incorporation of users in the development process, analysis of tasks, scenario drawing, and prototyping are some of the management techniques used to mitigate risks due to the development of incorrect user interfaces.
With regard to the risk of enduring requirement modifications, management of the ricks can be done through condensing information, development in an incremental manner, and high-change threshold. Benchmarking, scrutiny, compatibility assessment, and referencing are some of the management techniques for handling risks associated with deficits in components that have been sourced externally. Management techniques for handling risk due to tasks performed externally include referencing, team building, awarding of contracts at a predetermined fee, audits before awarding of contracts, and prototyping and competitive designing. Finally, overload of technical capacity of the software can be managed by referencing, technical assessments, prototyping, and cost-benefit assessment.
- Software Estimation
Estimation can be done using the Wideband Delphi method. The Wideband Delphi method entails work estimation by a panel of experts who consult and come up with an agreement on the work estimates. The method involves a process where the group coordinator gives each of the experts a specification and estimation form. Thereafter, the coordinator convenes a group meeting and the experts discuss among themselves about estimation issues. Next, the experts anonymously fill forms and a synopsis of the estimates prepared and distributed by the coordinator. Another group meeting is then convened in which the experts hold a discussion on points that have the largest variation. The forms are refilled anonymously and iteration of the fourth to the sixth steps done as required.
- Agile Development
Agile development of software entails the development of software in an incremental and iterative manner. In this development approach, the software is built by cross-functional teams, which collaborate to formulate requirements and solutions. The definitive feature of the development approach is that the solutions and requirements that are formulated by the teams are not static but are adaptable and evolve through time. Additionally, the teams that build the software are cross self-organizing. Unlike the traditional software development methods where tools and processes are emphasized over interactions and individuals, agile software development places a premium on people and interactions. Agile software development also emphasizes on change response over sticking to a plan, collaboration with clients over negotiation of contracts, and functional software over exhaustive documentation.
Besides the cross-functional, self-organizing teams and functional software, agile development is based also on the principles of simplicity, adjustment to changing needs and requirements, constant emphasis on effective design and excellence, and creation of projects around trustworthy and motivated people. Agile development is also based on the principles of one-on-one communication, daily collaboration between developer and businesspersons, development of software in a sustainable manner, customer satisfaction, and evolving requirements.