Agile Development: An Overview of Lightweight Development Methods and Practices

1 Day Course
Code PSD030

Book Now - 1 Delivery Method Available:

Classroom Virtual Classroom Private Group - Virtual Self-Paced Online

Overview

Development processes organise the activities and outputs of software development according to a philosophy and set of practices. The software quality, determinism of the schedule, repeatability of the practices, and so on have not always been either evident or in proportion to the effort invested in many traditional documented methods.

Agile development processes have recently captured the imagination and support of software developers and managers, offering an alternative discipline to either bureaucratic processes or chaotic processes. They are low in ceremony compared to more heavyweight approaches, but are uncompromising on quality and rigour. Agile methods seek to address development issues through techniques that are less removed from either the code or the team. In particular, Extreme Programming has established itself as a process that addresses the developer's technical day-to-day practices, the project management perspective and the business focus.

This seminar aims to highlight the problems in producing and scheduling of modern software development, give an overview of a number of agile development methods, and focus on many practices that are seen to be central to modern development.

On completion of the course delegates will be able to:


  • Outline the motivation for agile development processes
  • Highlight the features common to agile development processes
  • Describe the main agile development processes, and common practices
  • Address practical concerns, including selection and adoption of practices
  • Appreciate when and how — and when not and how not — to apply various agile techniques

Modules

Collapse all

Software Development Issues (6 topics)

  • Managing change
  • Spaghetti architecture
  • Complexity and overgeneralisation
  • Quality and scheduling issues
  • Balancing cost, time, quality and scope
  • Delivery of value

Responsive Development (9 topics)

  • Pitfalls of static processes
  • Informal and continuous design
  • Dependency management
  • Minimalism
  • Iterative and incremental development
  • Prototyping
  • Scenario-driven increments
  • Piecemeal growth
  • Testing versus debugging

Agile Processes (8 topics)

  • The Agile Manifesto
  • Extreme Programming (XP)
  • Rational Unified Process (RUP) and dX
  • Scrum
  • Feature-Driven Development (FDD)
  • Crystall
  • Adaptive software Development
  • Dynamic Systems Development Method (DSDM)

Extreme Programming Practices (12 topics)

  • Small releases
  • Testing
  • Continuous integration
  • Sane working hours
  • Simple design
  • System metaphor
  • Refactoring
  • Pair programming
  • Collective code ownership
  • Coding standards
  • Planning game
  • On-site customer

Process and Practice Adoption (10 topics)

  • Duration and goal of an iteration
  • Use case and technology slicing
  • Derisking
  • Acceptance testing
  • Automated unit testing
  • Test-first programming
  • Level of documentation
  • Fine-grained version control
  • Level of documentation
  • Pairing

Prerequisites

None, however the seminar is suitable for anyone involved in software development who wishes to gain an understanding of agile development processes, including software developers, project managers and technical managers.

Course PDF

Print

Share this Course

Share

Recommend this Course

Sections