15
SOFTWARE ARCHITECTURE AND AGILE DEVELOPMENT AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT UNIVERSITY OF COPENHAGEN PHILIPPE KRUCHTEN, UNIVERSITY OF BRITISH COLUMBIA ALAN MESSINGER SOURCE ARTICLE :

software Architecture and AgilE Development

  • Upload
    raven

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

software Architecture and AgilE Development. Agility and Architecture:Can They Coexist? Pekka Abrahamsson , University of Helsinki Muhammad Ali Babar, IT University of Copenhagen Philippe Kruchten , University of British Columbia. ALAN MESSINGER. SOURCE ARTICLE :. WHAT IS AGILE?. - PowerPoint PPT Presentation

Citation preview

Page 1: software Architecture and AgilE Development

SOFTWARE

ARCHITECTU

RE

AND AGILE DEVELO

PMENT

A G I L I T Y A N D A R C H I T E C T U R E : C A N T H E Y C O E X I S T ?P E K K A A B R A H A M S S O N , U N I V E R S I T Y O F H E L S I N K I

M U H A M M A D A L I B A B A R , I T U N I V E R S I T Y O F C O P E N H A G E N

P H I L I P P E K R U C H T E N , U N I V E R S I T Y O F B R I T I S H C O L U M B I A

ALAN MESSINGER

SOURCE ARTICLE :

Page 2: software Architecture and AgilE Development

http://www.agilemanifesto.org/

WHAT IS AGILE?

Page 3: software Architecture and AgilE Development

http://www.agilemanifesto.org/

WHAT IS AGILE?

Page 4: software Architecture and AgilE Development

REASONS WHY AGILE AROSE

o Response to Waterfall and other traditional development methodologies.

o Need for projects to respond better to change.

o Created by developers in reaction to traditional top-down, management-heavy work environments. BUFD and YAGNI.

Page 5: software Architecture and AgilE Development

BENEFITS OF AGILEo Flexibility: Changes to requirements,

even late in the project life cycle can be handled with little disruption.

o Increased Productivity?: Proponents of Agile claim improvements in project success.

o Developer Friendly: Developers tend to prefer working in Agile environments.

Page 6: software Architecture and AgilE Development

CRITICISMS OF AGILEo Not Scalable: Difficult to make Agile work

across large geographically dispersed teams in complex enterprise level projects.

o Not Proven: Agile is a collection of best practices based on opinion. Agile projects tend to collect few hard metrics. (working software is the primary gauge of progress)

o Too Developer Friendly: Meets developer needs, not necessarily business goals. Agile is often perceived as lacking rigor or structure.

Page 7: software Architecture and AgilE Development

“Agile Software Development is often considered a software development process, but is actually a marketing technique developed by 3M to sell more post-it notes.”

Uncyclopedia, The Content-Free Encyclopedia

Page 8: software Architecture and AgilE Development

“Just as a crop circle is hard to see when you’re standing in the middle of it, we believe that much of frameworks’ accidental complexity comes from their bottom-up creation intended to give programmers, not architects, more powerful, expressive forms.”

Paul Clements & Mary Shaw“The Golden Age of Software Architecture” Revisited

Page 9: software Architecture and AgilE Development

A CLOSER LOOK:COMMON AGILE CHARACTERISTICSo Iterative and incremental life cycles, o Focus on small releases, o Collocated teams, ando A planning strategy based on a release

plan driven by a feature or product backlog and an iteration plan handling a task backlog.

Source: Sanjiv Augustine, Managing Agile Projects

Page 10: software Architecture and AgilE Development

EXAMPLE OF AN AGILE CYCLE: SCRUM

Source: G3 Global

Page 11: software Architecture and AgilE Development

SCRUM – A DIFFERENT LOOK

Source: msdn

Page 12: software Architecture and AgilE Development

WAYS AGILE NEEDS ARCHITECTUREo Communication: SCRUM meetings and

Stakeholder feedback. High level communication can be aided by Architecture.

o Decomposition/Sprint Planning: How to divide a project up into sprint sized blocks in an inherently architectural problem.

o Non Functional Requirements: User stories tend to focus on functionality. You cannot handle security in a 2 week sprint.

Page 13: software Architecture and AgilE Development

WHAT ARCHITECTURE CAN LEARN FROM AGILE

o Flexibility: It is important for architectures to evolve over the lifecycle of the project. Project control comes from the ability to respond to change

o Team structure: The perception of “the ivory tower” is damaging to team morale and productivity. Architects should be part of the development team.

Page 14: software Architecture and AgilE Development

REALITY VS. PERCEPTION

Page 15: software Architecture and AgilE Development

SOFTWARE ARCHITECTURE

AGILE DEVELOPMENT

ANTICIPATION: Make important decisions early.

ADAPTATION: Leave decisions as late as

possible.QUALITY ATTRIBUTES:

Architectural concerns often relate to non-functional

requirements.

FUNCTIONALITY: User stories relate primarily to

functional requirements.

MACRO PERSPECTIVE:Big picture, high level viewpoint

of the project.

MICRO PERSPECTIVE: Focus on small chunks, two week

sprints.BUSINESS CONCERNS:

Balance conflicting requirements and concerns upfront.

DEVELOPER FRIENDLY:Improves team morale

COMPLEXITY:The more complex a project the more of a need for architectural

planning

SIMPLICITY:Divide and conquer. Known domains. Reusing a basic

architecture.

DIFFERENT APPROACHES AND RELATIVE STRENGTHS