Sunteți pe pagina 1din 30

Comparative Development Methodologies

For the BSc IS&M Programme

Lecture 4 Agile Methodologies


Dell Zhang
Birkbeck, University of London

Agile Methodologies

Reaction against heavyweight methodologies


The crushing weight of corporate bureaucracy The rapid pace of information technology change The dehumanizing of detailed plan-driven development Originally called lightweight methodologies Sounds not serious/robust enough A weekend in February 2001 at Snowbird, Utah.

Evolved from the mid 1990s


Agile Alliance

Agile Methodologies

eXtreme Programming (XP) SCRUM Dynamic Systems Development Method (DSDM) Feature-Driven Development (FDD) Adaptive Software Development (ASD) Crystal Clear Agile Modeling ......

Agile Principles

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

Agile Principles

Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress.

Agile Principles

Continuous attention to technical excellence and good design enhances agility. Simplicity the art of maximizing the amount of work not done is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Ongoing Debate

Are we returning back to cowboy coding?


Not really. Agile Methodologies do have disciplines.

Criticism

Hacker Interpretations

e.g., responding to change over following a plan Great! Now I have a reason to avoid planning and to just code up whatever comes next.

http://agilemanifesto.org/

Would you like to sign it?

The Planning Spectrum

B. Boehm. Get Ready for Agile Methods, with Care. IEEE Computer, January 2002.

Agility

Agility (in a software development sense)


The ability to respond quickly to change & environment The adaptability to suite new or unexpected challenges

Where does agility come from?

Agile methodologies derive much of their agility by relying on the tacit knowledge embodied in the team, rather than writing the knowledge down in plans.

Developers

Agile Methodologies

put a premium on having premium people critical people factors: amicability, talent, skill and communication invest in life-cycle architectures and plans use these to facilitate external reviews

Plan-Driven Methodologies

Customers

Agile Methodologies

customers operate in dedicated mode with the development team

Plan-Driven Methodologies

avoid tacit knowledge shortfalls via documentation avoid onsite-customer shortfalls via architecture review boards and independent expert project reviews

Requirements

Agile Methodologies

in turbulent, highly-change environments emergent rather than prespecifiable

Plan-Driven Methodologies

determined in advance

including via prototyping with change rates with <1% per month

remain relatively stable

Architecture

Agile Methodologies

emphasizes simplicity: maximizing the work not done designed for current requirements YAGNI

Plan-Driven Methodologies

emphasizes heavyweight architecture and design documentation designed for current and forseeable requirements

Refactoring

Agile Methodologies

assumes that refactoring is essentially free (with great developers and small systems)

Plan-Driven Methodologies

assumes that refactoring effort increases with the number of requirements (with less-than-great developers or very large systems) the 20% problems (causing 80% rework) come largely from architecture-breakers

Size

Agile Methodologies

need tightly coordinated teamwork

e.g., face-to-face communication

are suitable for small teams (< 15 or 20 people) scale better to larger (million-line) projects

Plan-Driven Methodologies

Primary Objective

Agile Methodologies

rapid value early and continuous delivery

Plan-Driven Methodologies

high-assurance predictability, repeatability, and optimization

B. Boehm. Get Ready for Agile Methods, with Care. IEEE Computer, January 2002.

Risk Management

How much planning is enough? Risk Exposure

RE = P(L) x S(L)

Probability of Loss P(L) Size of Loss S(L)

REQuality + RESpeed

REQuality is caused by inadequate plans RESpeed is caused by delays (market share erosion)

B. Boehm. Get Ready for Agile Methods, with Care. IEEE Computer, January 2002.

Agile Methodologies - Exercise

What are the aspects of software development that all agile methodologies share?

(A) User involvement is vital to success. (B) Build and release software in small increments. (C) Attention to quality and excellence. (D) Conformance to standards.

Teach Yourself Extreme Programming In 24 Hours.

Video

Are You Agile or Are You Fragile?


by Scott Ambler http://video.google.com/videosearch?q=+Are+You +Agile+or+Are+You+Fragile

Take Home Messages


Agile Manifesto Agile vs. Plan-Driven


The Planning Spectrum Home Ground Comparative Risk Exposure Profiles

S-ar putea să vă placă și