The following section provides further detail on a few of the more prominent Agile approaches that IT organizations around the world have successfully implemented, including formal Agile methods, such as Scrum, Feature-Driven Development (FDD) and eXtreme Programming (XP). Although the work described in these approaches is quite specific to the IT industry, they align directly with core Agile principles, such as responsive planning, that can be applied to every organization.

Scrum is an iterative project management approach most commonly used for Agile software development projects, but suitable for any project-based work. Scrum provides a framework for businesses to identify and prioritize work required, and for project teams to commit to the subset of priority items that they believe can be delivered in each two- to four-week iteration (or “sprint”).

Scrum processes require the nomination of resources to provide key roles in the project delivery, including:

» the Product Owner who represents the needs of the business, and is responsible for documenting and prioritizing high-level requirements as input into ongoing planning

» the Scrum Team, a cross-disciplinary team that is charged with undertaking the required work in each sprint, and enlisting input from the Product Owner when requirements need to be clarified

» the ScrumMaster who facilitates the team’s work, removing project impediments and ensuring that appropriate Scum practices are being followed by the team.

Core to the success of Scrum are two activities that are undertaken at each iterative sprint: The Sprint Planning Meeting and the Sprint Review. The Sprint Planning Meeting, held at the beginning of each sprint, is where the Product Owner, ScrumMaster and Scrum Team review the highest-priority items identified by the Product Owner and agree on the subset of priority items that will be included in work undertaken to enable continuous improvement for subsequent iterations.

Scrum is used by hundreds of organizations worldwide, including Adobe, Barclays Global Investors, BBC’s New Media Division, BellSouth, Bose, CapitalOne, Federal Reserve Bank, GE, Google, Microsoft, Motorola, Nokia Siemens Networks, SAP, State Farm and Yahoo!

Dynamic Systems Development Method
Dynamic Systems Development Method (DSDM) is another iterative approach to Agile software delivery that has its roots in Rapid Application Development (RAD), resulting in a strong emphasis on building prototypes and confirming the feasibility of the solution prior to undertaking full development activities. This method includes the need for Stakeholder Workshops, a Feasibility Report, a Feasibility Prototype and a Business Study to be undertaken in the first stage of the DSDM project lifecycle.

The practices that underpin DSDM are at the very heart of Agile methods, including active user involvement throughout the process, iterative and incremental development, frequent delivery of tangible outputs and the forthcoming sprint. The Sprint Review occurs at the end of each sprint and includes a demonstration of work completed in that sprint and a retrospective review of the empowering the delivery team. Ongoing testing and quality control throughout the process are also emphasized.

Unlike Scrum, the DSDM framework requires a range of artefacts (e.g. development plans, functional models) to be developed at each phase of the project to provide ongoing confirmation that planned work is aligned with the needs of the business.

However, both Scrum and DSDM have the same core objective – the delivery of high business-value outcomes in controlled, iterative timeframes. Scrum provides a highlevel framework for achieving this objective, and relies on major communication between the participants to ensure that work undertaken meets ongoing business needs. DSDM provides a slightly more structured framework to achieve this objective, requiring proposed work to be documented and confirmed prior to continuing to the next stage.

Feature-Driven Development
Feature-Driven Development (FDD) is an activity-specific Agile method for software development work. However, there are a number of elements of FDD which could provide valuable insights into the successful delivery of any business outcome.

The basic driver of FDD is providing incremental value to the business by delivering complete, working products (i.e. software “feature sets”) in every iteration. FDD requires proposed systems to be modeled and then broken down (decomposed) into smaller tasks (i.e. feature lists) that are able to be completed within each iteration. Small teams are then assigned to deliver nominated feature sets which, once successfully tested, are incorporated into the larger system.

FDD promotes quality control throughout the software development process by focusing multiple team members on the same feature set, undertaking peer reviews of software code, and encouraging regular software builds to ensure that a demonstrable system is always available for client review.

Although FDD is specific to software development work, it also includes practices that are valuable for any business activity, including:

» encouraging teams to take on manageable workloads within short, fixed timeframes

» providing team members with a dedicated set of peers to provide multiple perspectives

» providing context for work undertaken, so that team members appreciate how the activities that they are doing impact the overall deliverables

» measuring the progress of the team by their achievement of tangible milestones.

eXtreme Programming
Like FDD, eXtreme Programming (XP) is an activity specific Agile method for software development work. However, XP also provides techniques which could be applied more broadly to deliver business value across a greater range of business activities.

XP encourages software developers to produce and deliver the simplest possible technical solution required to meet the client’s objectives; anticipates that requirements will change once the client has had an opportunity to work with the delivered software; and encourages the ongoing improvement and optimization of the software based on client feedback.

Unlike the “big upfront documentation” approaches that burdened the IT industry in the 1990s, XP documents client requirements at a high level – and then works hands on with the client to deliver their desired outcomes using the simplest designs, delivered in the earliest possible timeframes.

Unique to XP is the use of a technique called Test-Driven Development (TDD), which encourages software developers to create the tests that will be used to validate the code that they are building prior to undertaking development work. This TDD technique can be used as an innovative quality management approach for delivering any business outcome, requiring employees to define and document their measures of success prior to undertaking the work required.

Another unique characteristic of XP is a concept known as refactoring, which allows the team to regularly review the existing system and modify it, where required, so that future changes can be implemented more easily. Amazingly, this includes full authority for the team to throw away existing software in favor of a replacement solution that will provide the business with greater flexibility to address future requirements. XP advocates that the short-term loss of work undertaken is worth the long term opportunity for deliverables to grow with the organization.

It is the simplicity of design, the expectation of change and the freedom provided to the team to rethink and optimize solutions that enable selected elements of XP to be applied as a unique approach to resolving any business problem.

Lean manufacturing
The Agile approaches described thus far have had a heavy focus on the application of Agile practices and techniques in the IT industry. However, Agile approaches were being successfully used in the manufacturing sector decades before they were used in the IT industry, with indications that Henry Ford had been using elements of an Agile approach, known as lean manufacturing, as early as 1922.26 Lean manufacturing focuses on eliminating the wastes that add little or no value to business processes, including:

» Overproduction: producing more than is needed to satisfy the organization’s (or the customers’) requirements.

» Waiting: where work cannot progress due to the unavailability of required resources, materials, management decisions or management approvals.

» Non-value-added processing: this includes over inspection, reworking and other added tasks to compensate for a lack of effective quality control in the overall process.

» Under-utilized people: where staff cannot work to their full mental and physical potential due to ineffective workflows, restrictive organizational cultures and inadequate training.

To address these areas of waste, the manufacturing sector implemented a number of techniques, including Total Quality Management (TQM), Just-in-Time (JIT) logistics and Batch Size Reduction – designed to optimize work to align with customer demand, to provide materials to employees on an “as required” basis, and to facilitate collaboration through cross-disciplinary teams.

The wastes identified in the manufacturing sector clearly align to wastes that can occur in any sector: delivered work that is misaligned with the needs of the business; work on hold awaiting materials, staff availability or management approval; talented staff who are frustrated because their capabilities are not fully utilized – or because they feel powerless to address inefficiencies in their work.

Other industry sectors have taken the lead from lean manufacturing, adopting quality improvement methodologies, such as SixSigma, in an effort to better measure, improve and control their business processes. These quality improvement methodologies focus on identifying corporate goals, measuring current processes for benchmarking, identifying areas of potential improvement and then piloting and measuring the effect of the proposed improvements. Although the approach differs, these quality improvement methodologies have the same primary goal as Agile methods: to more efficiently meet customer needs by maximizing resource efforts, minimizing waste and maintaining high quality throughout the process.

Source of Information : IT Governance Publishing-Agile Productivity Unleashed 2010


Subscribe to Developer Techno ?
Enter your email address:

Delivered by FeedBurner