SlideShare a Scribd company logo
Buzzword Deathmatch: Agile vs SOA formerly  “ Agile Development with SOA”
About me 10 years experience in IT, mainly as a consultant Took part in many large scale projects Government(s) Banking Insurances A foot in the process, the other one in the architecture. My blog:  http://ziobrando.blogspot.com
Agenda Starting from the dinosaurs… The Agile Landscape The SOA Landscape
The Agile Rationale Waterfall software development  proved itself inefficient and unsatisfactory Waterfall is “traditionally” associated with  high cost,  long development time Result unpredictability and low success ratio Difficulties in managing and accommodating change If asked, nobody is doing waterfall anymore (…or so they think)
Unified Process The unified process changed the scenario Iterations   as a fundamental part of the process Fine grained  roles   and  artefact   definition UML   as the official representation language A  comprehensive definition of all development process activities Unfortunately, it also set the ground for A family of  UML modelling tools A lot of  documentation templates
The Dark side of Unified Process The  tools became more and more important, ultimately twisting the process Analysis and design turned into solo activities Paper, paper, paper, and more paper
Developers Developers were considered “interchangeable resources” whose only goal was to implement the specification, though  iteratively .
Roles and responsibilities The fine grained roles framework eventually turned into a slow down factor: People took over only “the right tasks” (implicit waterfall) Slower response Bottlenecks Blame game ...
Rebel forces gathered
The three flavours of Agility XP  made a breakthrough focusing on  extreme  software development practices Scrum  defined a framework in which Agile practices could be applied within an organization Lean software development  introduced concepts and principles from the manufacturing industry into software development (defining also a theoretical background)
eXtreme Programming User Stories Less formal than Use cases, act like placeholder for a real discussion Frequent small releases Iterations are shorter and targeted to production, Frequent planning and estimation Each iteration is re-planned according to the currently available information No anticipated development No frameworks or layered architecture Test first Test suites run preserving application integrity, and producing better interfaces Customer availability Real feedback is the key to make the right thing No code ownership Continuous integration The whole system is frequently integrated and tested Pair programming Programmers work in pairs, in coding sessions No overtime ...
XP Feedback  seems to be the driving factor for many of the proposed practices From the code From peers From the customer From the project From the team  The team is largely empowered and encouraged to propose original solutions Process itself might be modified or improved
Scrum Scrum does not refer strictly to software development, but provides a framework for adaptive project management Unlike UP,  only 3 roles are defined in Scrum The  Team The  Product Owner  The  Scrum Master
Development team landscape
The agile team Small units Cross-functional The team is  free  to  take  any design  decision In Scrum, the team reports only to the product owner A well defined ceremony and set of actions to prevent the team to drift in dangerous directions
Dealing with several stakeholders The  Product Owner  is the  ONE  and  ONLY  responsible for the development team.
XP vs Scrum XP Frequent iterations of working software Frequent status update and re-planning Focus on the development team internal organization and practices Scrum Frequent iterations of working software Frequent status update and re-planning Focus on the relations between the development team and the organization
XP and Scrum The two perspectives are largely complementary: XP does not say much about what happens outside of the development team Scrum lets the team free to organize, and XP might be a sensible choice Scrum has definitely a better marketing
Lean software development principles Eliminate waste Everything that is not delivering any value to the user Amplify learning Developing is discovery,  Decide as late as possible Avoid irreversible decisions or take them only when you have as much information as needed to decide Deliver as fast as possible Fast development cycles help feedback. Speed is better than quality Empower the team The team is or will become the maximum expert on the matter  Build integrity in Software must be useful, used and right for the job See the whole Failing to see the whole picture will lead to  local optimizations
Waste Instances  of  waste  that can show up in different shapes Unnecessary documentation Anticipated design Over engineering Waiting Communication leaks Defects Handoff Complexity Blame Quality (?) ...
The lo-fi approach As a consequence, some tools were deprecated, favouring a non-tech approach: Paper Post-it Whiteboards Information radiators  took advantage of  physical proximity  to allow a more efficient exchange of meaningful information (where possible)  Some tools were basically banned (es. MSProject), others entered the show (es. Wikis)
The bottom-up revolution Agile sets the ground for interesting proposal to emerge from the team The team  learns  and  focuses  on a given problem space eventually turning into the  best available expert  on the matter
Breeding collaboration Isolation happens seldom Many activities are performed in groups, or pairing, or in a clearly visible way Transparency enables trust and a more effective form of collaboration Information exchange happens in both ways
The Ideal Agile scenario Not every condition is optimal to turn to agile: to fully benefit of agile’s potential we should (ideally)  Be  employed  by a company in whose top priority is software development.  Be located in the same place Have access to customers (whatever this means) Be free to grow as a team and assume responsibilities Free to arrange logistics, hardware, etc.
Agenda Setting the Background The Agile Landscape The SOA Landscape
SOA Rationale Large organizations were burdened with the weight of Different  legacy systems Mergers and acquisitions Necessity to  integrate heterogeneous systems Duplicate  and  redundant systems High (unnecessary) complexity Operation costs Evolution costs Extremely slow reaction times, or ...basically being stuck, or failing to deliver value ...Does all this sound familiar?
Pursuing uniformity Standards, frameworks, rules and tight integration failed to deliver the needed business agility, resulting in a heavier burden to take into account, before even designing a possible solution to a given problem.
Service Oriented Architecture SOA aims to dramatically reduce  coupling  between applications in a given landscape: Language coupling     XML Protocol coupling     WS, SOAP Network coupling     ESB Availability coupling     messages Standards  and  low coupling  defined an enterprise-level architecture made up of  replaceable components
Low coupling Services are meant to talk to each other, with the  lowest possible reciprocal knowledge Enterprise Service Bus
The ideal goal SOA  was a  tool  to Allow the long awaited  necessary cleanup Allow IT to become a  driving factor  for the business instead of a burden “ It’s a mess” “ I’ll schedule it for 2010” “ We have no time right now” “ We can do that” “ Why not doing that instead?” “ ...We have an idea” Allow enterprises to reduce vendor lock-in recovering control on IT budget.
Put in another way SOA is a tool to allow large enterprises to achieve  business agility Shorter products release cycles Getting feedback straight from the market Experimenting new ways to make business SOA is not a way to recreate an existing structure with a newer technology
The “classical” SOA scenario The agile greenfield Be employed by a company in whose top priority is software development.  Be located in the same place Have access to customers (whatever this means) Be free to grow as a team and assume responsibilities Free to arrange logistics, hardware, etc. The “classical” SOA Company’s top priority is generally not software development Consultants, contractors (and sub-contractors) are the rule Development  takes often place in  multiple locations , remote and offshore teams are possible. Smaller incentives to grow and assume responsibilities Low control over logistics, hardware, etc.
Unleashing freedom Loose coupling and language neutral standards offered the possibility to develop applications in the most appropriate technology Enterprise Service Bus
... Maybe we’re still coupled...? Technical coupling was only one of the many coupling factor on the stage: Licence budget Operations & Support Standards, Rules and existing prescriptions HR strategies Architecture Corporate culture
A new Jargon UML was not enough for SOA needs A new Jargon eventually emerged as well as new notations, new diagrams, new stencils, new layers ...
Agenda Setting the Background The Agile Landscape The SOA Landscape Putting things together
Pairing Agile and SOA “ Enterprises experience more success with SOA when they eschew big top-down delivery projects and instead get down in the trenches with an evolutionary approach. Agile processes provide a basic structure for this kind of incremental delivery.”    Carey Schwaber, Forrester Research Interestingly, not so many articles tell how Agility benefits from SOA.
Agile as a Cooperative Game Software development might be classified as a  finite, goal-directed, cooperative game  (Cockburn) Carpet wrestling Jazz Tennis Software Development Dolls Competitive Cooperative Organization Survival Career management Finite, Non-goal-directed Finite, goal-directed Infinite
Software development as a Game Finite:  a project starts and ends (somehow)   Goal directed:  es. deliver on time Collaborative : we’re playing  together  within a team …  but we’re not  only  doing that: We’re playing  career  game Playing  family  game Etc. etc.
A successful team
Some key issues The Team Best of breed selection Team goals before individual ones High motivation The goal Clearly defined goal Time-framed experience Measurable outcome
A “not so successful” team
Key issues The team Best of breed? Individual goals before common goals The Goal Not so clearly defined Random time-frame Non measurable outcome (only history will tell)
Limited resources game A Software Development scenario is bounded on several key areas: Budget Time Expertise Talent Manageable Information
SOA game? SOA is generally a different type of game played at a different level: SOA’s goal might be of a longer term strategy Mid term results might not be easily observable and measurable by the team. Es. Budget Suppression of an external system
The SOA Game A common critic to Agile methods is that they focus on a short-term strategy, in a given project scope. SOA aims to see “the whole picture” focusing on somewhat obscure long-term goals
The dominant culture Enterprise culture might be far from agility SOA might have management’s sponsorship but agile might not. Careers, roles and specialities might be put under pressure
Project Size SOA scope calls for many development teams at a time.
A more realistic scenario
Team’s reward Individual bonuses might be counterproductive or out of control Consultants and contractors might not be reached We’ve got to work on something else Increase the team’s knowledge Improve working conditions Bring (honest) positive feedback ...
Top – Down reprise Some tools and artifacts re-introduce a top-down philosophy Role based game  Tool driven design Specification based development Another vicious effect is that ... Bottom up feedback is discouraged Possible good ideas get lost
Starting Agile and SOA? Though “orthogonal”, two revolutions at the same time are probably too much for any team But ...agile performs well where a lot of explorations and uncertainty is involved: Adaptive process spikes  For a  good  Agile team SOA is  “Just another Technical Hassle”
Read the scenario Different roles within the organization read buzzwords differently: Team might value agility more  (and blame SOA if something goes wrong) Architects might value SOA more (and blame agility if something goes wrong) Management couldn’t care less And value only  results
Set up the scene Don’t raise expectations you cannot fulfil Keep management aware of potential emerging problems Transitions to agile practices (especially Scrum and lean) stress the organization, exposing problems that lived long “under the carpet”. Problems have always being there, but pointing them out might result  impolite .
Choose a close target first Can’t wait months to prove that choices were good. Look to close targets Achieve them Build on this Confidence Team jellying Reputation
Travel light Availability of tools to manage SOA-related complexity does not mean that complexity has to be encouraged The dark side of SOA would not be better than it was before
Adhere to standards As a corollary to “ Decide as late as possible ”: Develop on standards whenever possible Generally better documentation More easily replaceable ... Think long term Avoid temptations from vendor-specific features Keep deviation from standards under control Don’t  buy  anything until proves necessary.
Rethink waste Some obvious form of waste  “doing the same thing twice”   might be preferable to  “document what you’ve been doing” Large scale changes priority Company and location boundaries impact Communication cost Handoff cost
The cost of communication Information does not propagate with documentation, but by knowing what others are doing. Keep multiple teams in sync Scrum of Scrums Information radiators Proximity End of iteration demo When written words are better, favour Wikis and  on-demand  documentation.
Share the big plan Preventing developers to see the whole picture severely harms the possibility of a bottom-up contribution Only local optimizations are possible  
High level planning SOA is a long term transformation process Every step changes the scenario More knowledge Different weight Different opportunities Frequent high-level re-planning is necessary to achieve the goals (not necessarily the original ones)  Measure , don’t  expect Assess risks , don’t make  predictions Don’t initiate anything that’s not needed  now
Testing a SOA SOA overall design is based on  Design by Contract  principles Clean interface definition based upon standards “ Official” expected service behaviour Let’s test on the contract!
Testing a SOA: challenges Language independent test suite   Mocks  and  Stubs  implementing services   Selection of  key areas    Test environment management  
Environment definition Staging environment might be hard to afford in certain context Keep continuous integration tools running and testing the app Extend your integration capabilities as far as you can get Find a balance between correctness and manageability Keep the tests updated
Put in two words... Don’t let the “old bad habits” strike back Be prepared to compromises, in the short term (it’s a limited resource game) Keep track the price you pay Be ready to change them if opportunities arise Always aim to your long term goals Involve the right sponsors Communicate! Be ready for a rollercoaster ride!
References Agile Software Development  – Alistair Cockburn (Addison Wesley) Extreme Programming Explained  – Kent Beck (Addison Wesley) The Unified Software Development Process  – Ivar Jacobson, Grady Booch, James Rumbaugh (Addison Wesley) Agile Modeling  – Scott Ambler (Wiley)
References Lean Software Development: An Agile Toolkit    – Mary Poppendieck, Tom Poppendieck (Addison Wesley) User Stories Applied  – Mike Cohn (Addison Wesley) Enterprise SOA: Service-Oriented Architecture Best Practices  – Dirk Krafzig, Karl Banke, Dirk Slama (Prentice Hall) Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services  – Thomas Erl (Prentice Hall)

More Related Content

PDF
UX Bootcamp
PPTX
Customer Relationship Management (CRM) and The Real Estate Professional
PDF
Enterprise Cloud Governance: A Frictionless Approach
PPTX
The Values and Principles of Agile Software Development
PPTX
Corporate storytelling
PDF
Value Proposition Design
PDF
Digital Customer Journey Mapping
PDF
My 7-Step Guide to Build a Customer Journey Map in 1 Week (Lessons Learned)
UX Bootcamp
Customer Relationship Management (CRM) and The Real Estate Professional
Enterprise Cloud Governance: A Frictionless Approach
The Values and Principles of Agile Software Development
Corporate storytelling
Value Proposition Design
Digital Customer Journey Mapping
My 7-Step Guide to Build a Customer Journey Map in 1 Week (Lessons Learned)

What's hot (20)

PPT
Scrum ppt
PPTX
Basics of UX Research
PDF
Secure your Azure and DevOps in a smart way
PPTX
All things data presentation Analytics Attribution models
PPTX
Design Thinking for Children
PPTX
Agile Requirements Gathering Techniques
PDF
Digital Transformation Strategy & Framework | By ex-McKinsey
PPTX
MIT Class on Product Management 10-22-2013
PDF
Funnelholic's Book of Funnels
PDF
UX is Not Equal to UI Design
PPTX
Epics and User Stories
PDF
Create a User Experience Mindset Within Your Organization by Conducting Custo...
PDF
Design Thinking - 101 Building Empathy
PDF
AGILE@DELOITTE AGILE LANDSCAPE v02
PPTX
Agile Methodology
PPTX
Agile Transition Framework - presented at Frankfurt PMI Chapter
PPTX
Dev ops != Dev+Ops
PDF
Practical Guide to Scrum
PDF
Design thinking la modelisation: le prototype
PDF
Mapping the customer experience: innovate using customer experience journey maps
Scrum ppt
Basics of UX Research
Secure your Azure and DevOps in a smart way
All things data presentation Analytics Attribution models
Design Thinking for Children
Agile Requirements Gathering Techniques
Digital Transformation Strategy & Framework | By ex-McKinsey
MIT Class on Product Management 10-22-2013
Funnelholic's Book of Funnels
UX is Not Equal to UI Design
Epics and User Stories
Create a User Experience Mindset Within Your Organization by Conducting Custo...
Design Thinking - 101 Building Empathy
AGILE@DELOITTE AGILE LANDSCAPE v02
Agile Methodology
Agile Transition Framework - presented at Frankfurt PMI Chapter
Dev ops != Dev+Ops
Practical Guide to Scrum
Design thinking la modelisation: le prototype
Mapping the customer experience: innovate using customer experience journey maps
Ad

Similar to Buzzword Deathmatch: Agile vs SOA (20)

PPTX
SLDC Presentation
PPT
Using Agile Methodologies
PPTX
Agile and Scrum Workshop
PPT
Agile Methodology
PPT
DITA: Managing It All
PPT
Why Agile? Why Now? IPMA Forum 2009
PPT
Anti Patterns Siddhesh Lecture2 Of3
PPT
Be Agile Rather Than Do Agile
ODP
How to Maximize Effectiveness of Developers Contributing to Free Software
PDF
GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...
PPT
Agile And Open Development
PPT
Quality, Cost, and Governance of Open Source Software
PPT
Using Agile Processes on Documentum Projects
PPTX
An Agile Development Primer
PPTX
Agile Keynote at PDS Romania
PPTX
From Agile Development to Agile Operations (QCon SF 2009)
PDF
Scrum an extension pattern language for hyperproductive software development
PPTX
Agile is as Agile Does
PDF
Practices and obstacles in agile development
PDF
Practices and obstacles in agile development
SLDC Presentation
Using Agile Methodologies
Agile and Scrum Workshop
Agile Methodology
DITA: Managing It All
Why Agile? Why Now? IPMA Forum 2009
Anti Patterns Siddhesh Lecture2 Of3
Be Agile Rather Than Do Agile
How to Maximize Effectiveness of Developers Contributing to Free Software
GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...
Agile And Open Development
Quality, Cost, and Governance of Open Source Software
Using Agile Processes on Documentum Projects
An Agile Development Primer
Agile Keynote at PDS Romania
From Agile Development to Agile Operations (QCon SF 2009)
Scrum an extension pattern language for hyperproductive software development
Agile is as Agile Does
Practices and obstacles in agile development
Practices and obstacles in agile development
Ad

More from Alberto Brandolini (20)

PDF
DDD tales from ProductLand - NewCrafts Paris - May 2024
PDF
1 Million Orange Stickies later - Devoxx Poland 2024
PDF
Extreme DDD Modelling Patterns - 2024 Devoxx Poland
PDF
Modelling Up - DDDEurope 2024 - Amsterdam
PDF
All the Small Things - XP2024 Bolzano/Bozen
PDF
L'illusione dell'ortogonalità
PDF
Redesigning everything ITARC Stockholm 2021
PDF
What lies beneath
PDF
Redesigning everything (avanscoperta meeutp edition)
PDF
Extreme DDD modelling
PDF
The gordian knot
PDF
Software design as a cooperative game with EventStorming
PDF
La fatina dei denti
PDF
50.000 orange stickies later
PDF
The alignment
PDF
Chasing elephants
PDF
Transactions redefined
PDF
Optimized for what
PDF
Reshaping enterrprise software
PDF
Guerrilla portfolio management
DDD tales from ProductLand - NewCrafts Paris - May 2024
1 Million Orange Stickies later - Devoxx Poland 2024
Extreme DDD Modelling Patterns - 2024 Devoxx Poland
Modelling Up - DDDEurope 2024 - Amsterdam
All the Small Things - XP2024 Bolzano/Bozen
L'illusione dell'ortogonalità
Redesigning everything ITARC Stockholm 2021
What lies beneath
Redesigning everything (avanscoperta meeutp edition)
Extreme DDD modelling
The gordian knot
Software design as a cooperative game with EventStorming
La fatina dei denti
50.000 orange stickies later
The alignment
Chasing elephants
Transactions redefined
Optimized for what
Reshaping enterrprise software
Guerrilla portfolio management

Recently uploaded (20)

PDF
Approach and Philosophy of On baking technology
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Encapsulation theory and applications.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Machine learning based COVID-19 study performance prediction
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Spectroscopy.pptx food analysis technology
PPTX
Cloud computing and distributed systems.
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Spectral efficient network and resource selection model in 5G networks
Approach and Philosophy of On baking technology
Unlocking AI with Model Context Protocol (MCP)
MYSQL Presentation for SQL database connectivity
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
sap open course for s4hana steps from ECC to s4
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Building Integrated photovoltaic BIPV_UPV.pdf
Encapsulation_ Review paper, used for researhc scholars
NewMind AI Weekly Chronicles - August'25 Week I
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Programs and apps: productivity, graphics, security and other tools
Encapsulation theory and applications.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Machine learning based COVID-19 study performance prediction
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Spectroscopy.pptx food analysis technology
Cloud computing and distributed systems.
Understanding_Digital_Forensics_Presentation.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Spectral efficient network and resource selection model in 5G networks

Buzzword Deathmatch: Agile vs SOA

  • 1. Buzzword Deathmatch: Agile vs SOA formerly “ Agile Development with SOA”
  • 2. About me 10 years experience in IT, mainly as a consultant Took part in many large scale projects Government(s) Banking Insurances A foot in the process, the other one in the architecture. My blog: http://ziobrando.blogspot.com
  • 3. Agenda Starting from the dinosaurs… The Agile Landscape The SOA Landscape
  • 4. The Agile Rationale Waterfall software development proved itself inefficient and unsatisfactory Waterfall is “traditionally” associated with high cost, long development time Result unpredictability and low success ratio Difficulties in managing and accommodating change If asked, nobody is doing waterfall anymore (…or so they think)
  • 5. Unified Process The unified process changed the scenario Iterations as a fundamental part of the process Fine grained roles and artefact definition UML as the official representation language A comprehensive definition of all development process activities Unfortunately, it also set the ground for A family of UML modelling tools A lot of documentation templates
  • 6. The Dark side of Unified Process The tools became more and more important, ultimately twisting the process Analysis and design turned into solo activities Paper, paper, paper, and more paper
  • 7. Developers Developers were considered “interchangeable resources” whose only goal was to implement the specification, though iteratively .
  • 8. Roles and responsibilities The fine grained roles framework eventually turned into a slow down factor: People took over only “the right tasks” (implicit waterfall) Slower response Bottlenecks Blame game ...
  • 10. The three flavours of Agility XP made a breakthrough focusing on extreme software development practices Scrum defined a framework in which Agile practices could be applied within an organization Lean software development introduced concepts and principles from the manufacturing industry into software development (defining also a theoretical background)
  • 11. eXtreme Programming User Stories Less formal than Use cases, act like placeholder for a real discussion Frequent small releases Iterations are shorter and targeted to production, Frequent planning and estimation Each iteration is re-planned according to the currently available information No anticipated development No frameworks or layered architecture Test first Test suites run preserving application integrity, and producing better interfaces Customer availability Real feedback is the key to make the right thing No code ownership Continuous integration The whole system is frequently integrated and tested Pair programming Programmers work in pairs, in coding sessions No overtime ...
  • 12. XP Feedback seems to be the driving factor for many of the proposed practices From the code From peers From the customer From the project From the team The team is largely empowered and encouraged to propose original solutions Process itself might be modified or improved
  • 13. Scrum Scrum does not refer strictly to software development, but provides a framework for adaptive project management Unlike UP, only 3 roles are defined in Scrum The Team The Product Owner The Scrum Master
  • 15. The agile team Small units Cross-functional The team is free to take any design decision In Scrum, the team reports only to the product owner A well defined ceremony and set of actions to prevent the team to drift in dangerous directions
  • 16. Dealing with several stakeholders The Product Owner is the ONE and ONLY responsible for the development team.
  • 17. XP vs Scrum XP Frequent iterations of working software Frequent status update and re-planning Focus on the development team internal organization and practices Scrum Frequent iterations of working software Frequent status update and re-planning Focus on the relations between the development team and the organization
  • 18. XP and Scrum The two perspectives are largely complementary: XP does not say much about what happens outside of the development team Scrum lets the team free to organize, and XP might be a sensible choice Scrum has definitely a better marketing
  • 19. Lean software development principles Eliminate waste Everything that is not delivering any value to the user Amplify learning Developing is discovery, Decide as late as possible Avoid irreversible decisions or take them only when you have as much information as needed to decide Deliver as fast as possible Fast development cycles help feedback. Speed is better than quality Empower the team The team is or will become the maximum expert on the matter Build integrity in Software must be useful, used and right for the job See the whole Failing to see the whole picture will lead to local optimizations
  • 20. Waste Instances of waste that can show up in different shapes Unnecessary documentation Anticipated design Over engineering Waiting Communication leaks Defects Handoff Complexity Blame Quality (?) ...
  • 21. The lo-fi approach As a consequence, some tools were deprecated, favouring a non-tech approach: Paper Post-it Whiteboards Information radiators took advantage of physical proximity to allow a more efficient exchange of meaningful information (where possible) Some tools were basically banned (es. MSProject), others entered the show (es. Wikis)
  • 22. The bottom-up revolution Agile sets the ground for interesting proposal to emerge from the team The team learns and focuses on a given problem space eventually turning into the best available expert on the matter
  • 23. Breeding collaboration Isolation happens seldom Many activities are performed in groups, or pairing, or in a clearly visible way Transparency enables trust and a more effective form of collaboration Information exchange happens in both ways
  • 24. The Ideal Agile scenario Not every condition is optimal to turn to agile: to fully benefit of agile’s potential we should (ideally) Be employed by a company in whose top priority is software development. Be located in the same place Have access to customers (whatever this means) Be free to grow as a team and assume responsibilities Free to arrange logistics, hardware, etc.
  • 25. Agenda Setting the Background The Agile Landscape The SOA Landscape
  • 26. SOA Rationale Large organizations were burdened with the weight of Different legacy systems Mergers and acquisitions Necessity to integrate heterogeneous systems Duplicate and redundant systems High (unnecessary) complexity Operation costs Evolution costs Extremely slow reaction times, or ...basically being stuck, or failing to deliver value ...Does all this sound familiar?
  • 27. Pursuing uniformity Standards, frameworks, rules and tight integration failed to deliver the needed business agility, resulting in a heavier burden to take into account, before even designing a possible solution to a given problem.
  • 28. Service Oriented Architecture SOA aims to dramatically reduce coupling between applications in a given landscape: Language coupling  XML Protocol coupling  WS, SOAP Network coupling  ESB Availability coupling  messages Standards and low coupling defined an enterprise-level architecture made up of replaceable components
  • 29. Low coupling Services are meant to talk to each other, with the lowest possible reciprocal knowledge Enterprise Service Bus
  • 30. The ideal goal SOA was a tool to Allow the long awaited necessary cleanup Allow IT to become a driving factor for the business instead of a burden “ It’s a mess” “ I’ll schedule it for 2010” “ We have no time right now” “ We can do that” “ Why not doing that instead?” “ ...We have an idea” Allow enterprises to reduce vendor lock-in recovering control on IT budget.
  • 31. Put in another way SOA is a tool to allow large enterprises to achieve business agility Shorter products release cycles Getting feedback straight from the market Experimenting new ways to make business SOA is not a way to recreate an existing structure with a newer technology
  • 32. The “classical” SOA scenario The agile greenfield Be employed by a company in whose top priority is software development. Be located in the same place Have access to customers (whatever this means) Be free to grow as a team and assume responsibilities Free to arrange logistics, hardware, etc. The “classical” SOA Company’s top priority is generally not software development Consultants, contractors (and sub-contractors) are the rule Development takes often place in multiple locations , remote and offshore teams are possible. Smaller incentives to grow and assume responsibilities Low control over logistics, hardware, etc.
  • 33. Unleashing freedom Loose coupling and language neutral standards offered the possibility to develop applications in the most appropriate technology Enterprise Service Bus
  • 34. ... Maybe we’re still coupled...? Technical coupling was only one of the many coupling factor on the stage: Licence budget Operations & Support Standards, Rules and existing prescriptions HR strategies Architecture Corporate culture
  • 35. A new Jargon UML was not enough for SOA needs A new Jargon eventually emerged as well as new notations, new diagrams, new stencils, new layers ...
  • 36. Agenda Setting the Background The Agile Landscape The SOA Landscape Putting things together
  • 37. Pairing Agile and SOA “ Enterprises experience more success with SOA when they eschew big top-down delivery projects and instead get down in the trenches with an evolutionary approach. Agile processes provide a basic structure for this kind of incremental delivery.”  Carey Schwaber, Forrester Research Interestingly, not so many articles tell how Agility benefits from SOA.
  • 38. Agile as a Cooperative Game Software development might be classified as a finite, goal-directed, cooperative game (Cockburn) Carpet wrestling Jazz Tennis Software Development Dolls Competitive Cooperative Organization Survival Career management Finite, Non-goal-directed Finite, goal-directed Infinite
  • 39. Software development as a Game Finite: a project starts and ends (somehow) Goal directed: es. deliver on time Collaborative : we’re playing together within a team … but we’re not only doing that: We’re playing career game Playing family game Etc. etc.
  • 41. Some key issues The Team Best of breed selection Team goals before individual ones High motivation The goal Clearly defined goal Time-framed experience Measurable outcome
  • 42. A “not so successful” team
  • 43. Key issues The team Best of breed? Individual goals before common goals The Goal Not so clearly defined Random time-frame Non measurable outcome (only history will tell)
  • 44. Limited resources game A Software Development scenario is bounded on several key areas: Budget Time Expertise Talent Manageable Information
  • 45. SOA game? SOA is generally a different type of game played at a different level: SOA’s goal might be of a longer term strategy Mid term results might not be easily observable and measurable by the team. Es. Budget Suppression of an external system
  • 46. The SOA Game A common critic to Agile methods is that they focus on a short-term strategy, in a given project scope. SOA aims to see “the whole picture” focusing on somewhat obscure long-term goals
  • 47. The dominant culture Enterprise culture might be far from agility SOA might have management’s sponsorship but agile might not. Careers, roles and specialities might be put under pressure
  • 48. Project Size SOA scope calls for many development teams at a time.
  • 49. A more realistic scenario
  • 50. Team’s reward Individual bonuses might be counterproductive or out of control Consultants and contractors might not be reached We’ve got to work on something else Increase the team’s knowledge Improve working conditions Bring (honest) positive feedback ...
  • 51. Top – Down reprise Some tools and artifacts re-introduce a top-down philosophy Role based game Tool driven design Specification based development Another vicious effect is that ... Bottom up feedback is discouraged Possible good ideas get lost
  • 52. Starting Agile and SOA? Though “orthogonal”, two revolutions at the same time are probably too much for any team But ...agile performs well where a lot of explorations and uncertainty is involved: Adaptive process spikes For a good Agile team SOA is “Just another Technical Hassle”
  • 53. Read the scenario Different roles within the organization read buzzwords differently: Team might value agility more (and blame SOA if something goes wrong) Architects might value SOA more (and blame agility if something goes wrong) Management couldn’t care less And value only results
  • 54. Set up the scene Don’t raise expectations you cannot fulfil Keep management aware of potential emerging problems Transitions to agile practices (especially Scrum and lean) stress the organization, exposing problems that lived long “under the carpet”. Problems have always being there, but pointing them out might result impolite .
  • 55. Choose a close target first Can’t wait months to prove that choices were good. Look to close targets Achieve them Build on this Confidence Team jellying Reputation
  • 56. Travel light Availability of tools to manage SOA-related complexity does not mean that complexity has to be encouraged The dark side of SOA would not be better than it was before
  • 57. Adhere to standards As a corollary to “ Decide as late as possible ”: Develop on standards whenever possible Generally better documentation More easily replaceable ... Think long term Avoid temptations from vendor-specific features Keep deviation from standards under control Don’t buy anything until proves necessary.
  • 58. Rethink waste Some obvious form of waste “doing the same thing twice” might be preferable to “document what you’ve been doing” Large scale changes priority Company and location boundaries impact Communication cost Handoff cost
  • 59. The cost of communication Information does not propagate with documentation, but by knowing what others are doing. Keep multiple teams in sync Scrum of Scrums Information radiators Proximity End of iteration demo When written words are better, favour Wikis and on-demand documentation.
  • 60. Share the big plan Preventing developers to see the whole picture severely harms the possibility of a bottom-up contribution Only local optimizations are possible 
  • 61. High level planning SOA is a long term transformation process Every step changes the scenario More knowledge Different weight Different opportunities Frequent high-level re-planning is necessary to achieve the goals (not necessarily the original ones) Measure , don’t expect Assess risks , don’t make predictions Don’t initiate anything that’s not needed now
  • 62. Testing a SOA SOA overall design is based on Design by Contract principles Clean interface definition based upon standards “ Official” expected service behaviour Let’s test on the contract!
  • 63. Testing a SOA: challenges Language independent test suite  Mocks and Stubs implementing services  Selection of key areas  Test environment management 
  • 64. Environment definition Staging environment might be hard to afford in certain context Keep continuous integration tools running and testing the app Extend your integration capabilities as far as you can get Find a balance between correctness and manageability Keep the tests updated
  • 65. Put in two words... Don’t let the “old bad habits” strike back Be prepared to compromises, in the short term (it’s a limited resource game) Keep track the price you pay Be ready to change them if opportunities arise Always aim to your long term goals Involve the right sponsors Communicate! Be ready for a rollercoaster ride!
  • 66. References Agile Software Development – Alistair Cockburn (Addison Wesley) Extreme Programming Explained – Kent Beck (Addison Wesley) The Unified Software Development Process – Ivar Jacobson, Grady Booch, James Rumbaugh (Addison Wesley) Agile Modeling – Scott Ambler (Wiley)
  • 67. References Lean Software Development: An Agile Toolkit  – Mary Poppendieck, Tom Poppendieck (Addison Wesley) User Stories Applied – Mike Cohn (Addison Wesley) Enterprise SOA: Service-Oriented Architecture Best Practices – Dirk Krafzig, Karl Banke, Dirk Slama (Prentice Hall) Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services – Thomas Erl (Prentice Hall)