Top Banner
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 :
15

SOFTWARE ARCHITECTURE AND AGILE DEVELOPMENT AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

Dec 17, 2015

Download

Documents

Clifford Sharp
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SOFTWARE ARCHITECTURE AND AGILE DEVELOPMENT AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

SOFTW

ARE

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 M

ESSIN

GER

SOURCE ARTICLE :

Page 2: SOFTWARE ARCHITECTURE AND AGILE DEVELOPMENT AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

http://www.agilemanifesto.org/

WHAT IS AGILE?

Page 3: SOFTWARE ARCHITECTURE AND AGILE DEVELOPMENT AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

http://www.agilemanifesto.org/

WHAT IS AGILE?

Page 4: SOFTWARE ARCHITECTURE AND AGILE DEVELOPMENT AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

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 AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

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 AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

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 AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

“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 AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

“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 AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

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 AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

EXAMPLE OF AN AGILE CYCLE: SCRUM

Source: G3 Global

Page 11: SOFTWARE ARCHITECTURE AND AGILE DEVELOPMENT AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

SCRUM – A DIFFERENT LOOK

Source: msdn

Page 12: SOFTWARE ARCHITECTURE AND AGILE DEVELOPMENT AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

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 AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

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 AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

REALITY VS. PERCEPTION

Page 15: SOFTWARE ARCHITECTURE AND AGILE DEVELOPMENT AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

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