HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTSSander Hoogendoorn | Principal Technology Officer, Global Agile Thought Leader ...
SANDER HOOGENDOORNCapgemini        Principal technology officer        Global agile thought leader        Chief architect ...
3   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS    ©2012 Sander Hoogendoorn. All Rights Reserved
4   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS    ©2012 Sander Hoogendoorn. All Rights Reserved
AGENDA  An short story                                    How frameworks can    Software architectureabout frameworks     ...
AGENDA  An short story                                    How frameworks can    Software architectureabout frameworks     ...
WATERFALL? BIG-UP FRONT?Architecture!    7   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS        ©2012 Sander Hoogendoorn. ...
WATERFALL? BIG-UP FRONT? 8   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
THE WATERFALL DENTIST 9   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
BOEHM’S LAW10   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
11   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
AGILE. NO UP-FRONT?Architecture?    12   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS         ©2012 Sander Hoogendoorn. All...
BOEHM’S LAW. PER ITERATION13   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
AGILE. SOME UP-FRONTJust enougharchitecting!                            Frameworks?14   HOW FRAMEWORKS CAN KILL YOUR AGILE...
HOFSTADTER’S LAWIt always takes longer than you expect, even when you take into account Hofstadter’s Law
MYFIRSTSURVEY16   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
LIFE IS NEVER EASY …Frameworks, like pizzas, come in only two sizes: too big and too small.
MYFIRSTSURVEY18   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
General purpose frameworks         WHAT’S IT GONNA BE PUNK?                                                               ...
FRAMEWORKS - CODEPLEX20   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
FRAMEWORKS – WWW.CSHARPOPENSOURCE.COM21   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Ri...
FRAMEWORKS – MICROSOFT ENTERPRISE LIBRARY22   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. Al...
FRAMEWORKS – PROJECT CASTLE23   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reser...
DON’T BELIEVE THE HYPE – IT’S A SQL 24   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS      ©2012 Sander Hoogendoorn. All Ri...
CONVINCING THE MANAGEMENT TO APPLY THE FRAMEWORK (25.5 %) 25   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS      ©2012 Sand...
UNDERSTANDING THE FRAMEWORK (56.4 %)26   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rig...
CONVINCING OTHER DEVELOPERS TO USE THE FRAMEWORK (23.6 %) 27   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS      ©2012 Sand...
CONVINCING OTHER DEVELOPERS TO USE THE FRAMEWORK (23.6 %) 28   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS      ©2012 Sand...
TRAINING THE DEVELOPERS (20 %)29   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Re...
THE EYE OF THE TIGER30   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
AGENDA  An short story                                     How frameworks can    Software architectureabout frameworks    ...
APPLYING FRAMEWORKSMy software never has bugs. It just develops random features
AGILE. SOME UP-FRONTJust enougharchitecting!                                         Frameworks?    Just enough           ...
SO GLAD YOU MADE IT!                                                 What if the author of our                            ...
MORE THAN ANYTHING, DEPENDENCIES WILL KILL YOUR PROJECT 35   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS      ©2012 Sander...
KENTUCKY FRIED ARCHITECTUREA short story about framework developers and application developers
PIGS & CHICKENSThe framework                                          The application  developer                          ...
KFC ARCHITECTURE – ENTITY FRAMEWORK38   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Righ...
KFC ARCHITECTURE – ENTITY FRAMEWORK39   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Righ...
KFC ARCHITECTURE – ENTITY FRAMEWORK40   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Righ...
beta!                                                                          Here’s … beta !LETTING THE LUNATICS RUN THE...
HOT OR NOT?Hot?                                                   From hot to not?        Not?Metro                       ...
BE A F***ING GENIUS Metro?                                                      WTF? I just figured                       ...
HERE’S JOHNNY! – ASP.NET MVC44   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Rese...
HERE’S JOHNNY! – ASP.NET MVC45   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Rese...
NO STRINGS ATTACHEDIt’s only in theory that practice and theory are the same
MYFIRSTSURVEY47   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
CHANGING BASE CLASSES – – NHIBERNATE / LOG4NET48   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoor...
CHANGING BASE CLASSES – NHIBERNATE / LOG4NET49   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn....
YES, YOUR FRAMEWORKS VERSION TOOProgramming is like sex.One mistake and you have to support it for the rest of your life
IT AIN’T OVER TILL IT’S OVER 51   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS      ©2012 Sander Hoogendoorn. All Rights Re...
MISSING BASE CLASSES – WORKFLOW FOUNDATION 4.052   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoor...
MISSING BASE CLASSES – WORKFLOW FOUNDATION 4.053   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoor...
AGENDA  An short story                                     How frameworks can    Software architectureabout frameworks    ...
SOUND ARCHITECTUREArchitecture starts when you carefully put two bricks together. There it begins.
(SOFTWARE.ARCHITECTURE != LIST<FRAMEWORK>)
A SOFTWARE ARCHITECTURE57   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
PagesPresentation                                                            Android?      UserControls                   ...
LAYER SUPERTYPEFrom a developers point of view the user is a peripheralthat types when you issue a read request.
LAYER SUPERTYPE                                                          What’s a layer supertype Ollie?                  ...
LAYER SUPERTYPE – ASP.NET MVC61   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Res...
LAYER SUPERTYPE – ASP.NET MVC62   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Res...
PagesPresentation                                                                                 UserControls            ...
LAYER SUPERTYPE – USING A LAYER SUPERTYPE64   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. Al...
LAYER SUPERTYPE – REASON ABOUT LAYER SUPERTYPES65   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoo...
LAYER SUPERTYPE – EXTENSION METHODS ON LAYER SUPERTYPES 66   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS      ©2012 Sander...
AGENDA  An short story                                     How frameworks can    Software architectureabout frameworks    ...
DESCRIPTORAlways code as if the guy who ends up maintaining your codewill be a violent psychopath who knows where you live.
I KNOW NOTHING. I’M FROM BARCELONA                                                           What is the matter           ...
DESCRIPTOR – THE PROBLEM (1)70   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Rese...
DESCRIPTOR – THE PROBLEM (2)71   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Rese...
ENUM?72   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
STRING COLLECTION?73   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
STRING COLLECTION74   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
I KNOW NOTHING. I’M FROM BARCELONA                                                            Descriptor                  ...
DESCRIPTOR PATTERN76   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
DESCRIPTOR PATTERN - DEFINITION77   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights R...
DESCRIPTOR PATTERN – EXTENDED DEFINITION78   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All...
DESCRIPTOR PATTERN – USE IN FRAMEWORK79   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Ri...
DESCRIPTOR PATTERN – USE IN APPLICATION80   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All ...
MYFIRSTSURVEY81   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
DESCRIPTOR PATTERN – USE IN ASP.NET MVC82   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All ...
DESCRIPTOR PATTERN – USE IN ASP.NET MVC83   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All ...
AGENDA  An short story                                     How frameworks can    Software architectureabout frameworks    ...
DEPENDENCY INJECTIONXML is like violence. If it doesn’t solve your problems, you are not using enough of it.
A NEW DISEASE?                                         What do you think it is?                                           ...
DIFFERENT VARIATIONS?                                  Did you know that there                                            ...
DEPENDENCY INJECTION – CONSTRUCTOR INJECTION88   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn....
DEPENDENCY INJECTION – MANUAL INJECTION                                                     c89   HOW FRAMEWORKS CAN KILL ...
DEPENDENCY INJECTION – WHAT TO PLUG IN90   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All R...
MANAGER – PROVIDER"Teamwork is a lot of people doing what I say“ - Marketing executive, Citrix Corporation
MANAGER-PROVIDER PATTERNDefinition           Create a simple static facade           (manager) for a (set of) interfaced  ...
MANAGER – VALIDATIONMANAGER93   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reser...
INTERFACE94   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
MANAGER – INITIALIZATION (USING DEPENDENCY INJECTION) 95   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS      ©2012 Sander H...
CONFIGURATION OF IMPLEMENTATION96   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights R...
MANAGER - EXECUTING METHODS97   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reser...
CLIENT – CALLING METHODS98   HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS     ©2012 Sander Hoogendoorn. All Rights Reserved
MANAGER-PROVIDER PATTERNUseful when        Generic services need to be called,        which may have different implementat...
ARCHITECTURAL CHANGES IN AGILE?Re-factoring or re-architecting?
PagesPresentation                                                                                          UserControls   ...
REFERENCES AND QUESTIONSsander.hoogendoorn@capgemini.com | sander@ditisagile.nl | @aahoogendoorn | @ditisagilewww.sanderho...
Upcoming SlideShare
Loading in...5
×

Agile and Frameworks

804

Published on

Slide deck for my talk at the Avisi Software Architecture Symposium 2012.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
804
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
35
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Agile and Frameworks

  1. 1. HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTSSander Hoogendoorn | Principal Technology Officer, Global Agile Thought Leader | Capgeminiwww.sanderhoogendoorn.com | sander.hoogendoorn@capgemini.com | @aahoogendoorn
  2. 2. SANDER HOOGENDOORNCapgemini Principal technology officer Global agile thought leader Chief architect Accelerated Delivery Platform (ADP)Other Author books on UML, agile Author +200 articles, columns Speaker +100 international conferences and seminars Microsoft Partner Advisory Council .NET Editorial boards & Advisory boards Capping IT Off BlogWeb www.sanderhoogendoorn.com www.ditisagile.nl | www.smartusecase.com sander@ditisagile.nl @aahoogendoorn @ditisagile 2 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  3. 3. 3 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  4. 4. 4 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  5. 5. AGENDA An short story How frameworks can Software architectureabout frameworks get you in trouble versus frameworks The layer Introducing the The supertype descriptor pattern manager-provider5 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  6. 6. AGENDA An short story How frameworks can Software architectureabout frameworks get you in trouble versus frameworks The layer Introducing the The supertype descriptor pattern manager-provider6 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  7. 7. WATERFALL? BIG-UP FRONT?Architecture! 7 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  8. 8. WATERFALL? BIG-UP FRONT? 8 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  9. 9. THE WATERFALL DENTIST 9 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  10. 10. BOEHM’S LAW10 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  11. 11. 11 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  12. 12. AGILE. NO UP-FRONT?Architecture? 12 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  13. 13. BOEHM’S LAW. PER ITERATION13 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  14. 14. AGILE. SOME UP-FRONTJust enougharchitecting! Frameworks?14 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  15. 15. HOFSTADTER’S LAWIt always takes longer than you expect, even when you take into account Hofstadter’s Law
  16. 16. MYFIRSTSURVEY16 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  17. 17. LIFE IS NEVER EASY …Frameworks, like pizzas, come in only two sizes: too big and too small.
  18. 18. MYFIRSTSURVEY18 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  19. 19. General purpose frameworks WHAT’S IT GONNA BE PUNK? Enterprise Library, Spring.Net, Castle, NakedObjects, Accelerated Delivery Framework (ADF), SubSonicSingle goaled frameworks – verticals Single goaled frameworks – architecturalDependency injection: ObjectBuilder, Unity, Castle Windsor User interface: Silverlight, ASP.NET MVC, WPF, ASP.NET Ajax, Spring MVCLogging: Log4Net, Logging Block, Common.Logging Process: UI Process Application Block, WFException handling: Exception Handling Block Domain: Entity Framework, Hibernate, NEOApect orientation: PostSharp, SetPointSearch: Lucene.net, NLucene Data: Entity Framework, Hibernate, Castle ActiveRecord, CSLAPortals: DotNetNukeSpatial, Umbraco Service s: WCF, WCF RIA 19 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  20. 20. FRAMEWORKS - CODEPLEX20 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  21. 21. FRAMEWORKS – WWW.CSHARPOPENSOURCE.COM21 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  22. 22. FRAMEWORKS – MICROSOFT ENTERPRISE LIBRARY22 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  23. 23. FRAMEWORKS – PROJECT CASTLE23 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  24. 24. DON’T BELIEVE THE HYPE – IT’S A SQL 24 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  25. 25. CONVINCING THE MANAGEMENT TO APPLY THE FRAMEWORK (25.5 %) 25 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  26. 26. UNDERSTANDING THE FRAMEWORK (56.4 %)26 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  27. 27. CONVINCING OTHER DEVELOPERS TO USE THE FRAMEWORK (23.6 %) 27 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  28. 28. CONVINCING OTHER DEVELOPERS TO USE THE FRAMEWORK (23.6 %) 28 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  29. 29. TRAINING THE DEVELOPERS (20 %)29 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  30. 30. THE EYE OF THE TIGER30 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  31. 31. AGENDA An short story How frameworks can Software architectureabout frameworks get you in trouble versus frameworks The layer Introducing the The supertype descriptor pattern manager-provider31 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  32. 32. APPLYING FRAMEWORKSMy software never has bugs. It just develops random features
  33. 33. AGILE. SOME UP-FRONTJust enougharchitecting! Frameworks? Just enough re-architecting33 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  34. 34. SO GLAD YOU MADE IT! What if the author of our favorite framework suddenly What if we require stops developing it? additional features that aren’t covered by our framework? And what if the new version of our framework is implemented totally different? What if we decide thatanother framework might be better than the one we’re using now? What if the framework contains bugs? 34 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  35. 35. MORE THAN ANYTHING, DEPENDENCIES WILL KILL YOUR PROJECT 35 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  36. 36. KENTUCKY FRIED ARCHITECTUREA short story about framework developers and application developers
  37. 37. PIGS & CHICKENSThe framework The application developer developer 37 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  38. 38. KFC ARCHITECTURE – ENTITY FRAMEWORK38 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  39. 39. KFC ARCHITECTURE – ENTITY FRAMEWORK39 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  40. 40. KFC ARCHITECTURE – ENTITY FRAMEWORK40 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  41. 41. beta! Here’s … beta !LETTING THE LUNATICS RUN THE ASYLUMI don’t care if it works on your machine! We are not shipping your machine!
  42. 42. HOT OR NOT?Hot? From hot to not? Not?Metro Expression Blend Entity Framework 2.0HTML5 ASP.NET Ajax LINQ2SQLLightSwitch REST LINQ2EntitiesWCF RIA Services Unity Entity Data ModelSilverlight 4.0? BizTalk DublinASP.NET MVC 3 Surface DSL’sMEF Duet Silverlight 2.0jQuery SketchFlow F#NService Bus Azure Services ASP.NETEntity Framework - Code First ADO.NET Data Services PopFly ASP.NET Dynamic Data M WPF Oslo MGrammar 42 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  43. 43. BE A F***ING GENIUS Metro? WTF? I just figured out ASP.NET MVC 43 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  44. 44. HERE’S JOHNNY! – ASP.NET MVC44 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  45. 45. HERE’S JOHNNY! – ASP.NET MVC45 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  46. 46. NO STRINGS ATTACHEDIt’s only in theory that practice and theory are the same
  47. 47. MYFIRSTSURVEY47 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  48. 48. CHANGING BASE CLASSES – – NHIBERNATE / LOG4NET48 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  49. 49. CHANGING BASE CLASSES – NHIBERNATE / LOG4NET49 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  50. 50. YES, YOUR FRAMEWORKS VERSION TOOProgramming is like sex.One mistake and you have to support it for the rest of your life
  51. 51. IT AIN’T OVER TILL IT’S OVER 51 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  52. 52. MISSING BASE CLASSES – WORKFLOW FOUNDATION 4.052 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  53. 53. MISSING BASE CLASSES – WORKFLOW FOUNDATION 4.053 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  54. 54. AGENDA An short story How frameworks can Software architectureabout frameworks get you in trouble versus frameworks The layer Introducing the The supertype descriptor pattern manager-provider54 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  55. 55. SOUND ARCHITECTUREArchitecture starts when you carefully put two bricks together. There it begins.
  56. 56. (SOFTWARE.ARCHITECTURE != LIST<FRAMEWORK>)
  57. 57. A SOFTWARE ARCHITECTURE57 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  58. 58. PagesPresentation Android? UserControls XAML? PanelsWhat to do? ASPX? Use casesProcess Workflow• Identify your architectural requirements Entities (from EF)• Set up a (layered) architecture Domain MVVM? Services MVP?• Identify layers and layer elementsDomain Domain objects / Entities MVWTF? Factories / Repositories• List the elements responsibilities Enums / Value objects / Smart references Metadata?• List the elements collaborations JSON?• And only then map to frameworks Service gatewaysData / Services Service locators• Create a thin “umbrella” of independence [Mapping] EF? responsible for managing dependencies LINQ? Exact SAP BizTalk Java Nhibernate? DatabasesOutside world Services / ESB 58 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  59. 59. LAYER SUPERTYPEFrom a developers point of view the user is a peripheralthat types when you issue a read request.
  60. 60. LAYER SUPERTYPE What’s a layer supertype Ollie? Acts as a supertype for all types in its layer All types inherit from the layer supertype Well Stan, it’s characteristics are Name expresses common behaviour Forces common features on all inherited types Ideal starting point for services Initially the layer supertype is empty Reserve layer supertype for future additions60 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS Extension methods don’t (always) help, you know ©2012 Sander Hoogendoorn. All Rights Reserved
  61. 61. LAYER SUPERTYPE – ASP.NET MVC61 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  62. 62. LAYER SUPERTYPE – ASP.NET MVC62 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  63. 63. PagesPresentation UserControls Panels Use casesProcess Workflow Domain objects / EntitiesDomain Factories / Repositories Enums / Value objects / Smart references Service gatewaysData / Services Service locators [Mapping] Exact SAP BizTalk Java DatabasesOutside world Services / ESB 63 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  64. 64. LAYER SUPERTYPE – USING A LAYER SUPERTYPE64 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  65. 65. LAYER SUPERTYPE – REASON ABOUT LAYER SUPERTYPES65 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  66. 66. LAYER SUPERTYPE – EXTENSION METHODS ON LAYER SUPERTYPES 66 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  67. 67. AGENDA An short story How frameworks can Software architectureabout frameworks get you in trouble versus frameworks The layer Introducing the The supertype descriptor pattern manager-provider67 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  68. 68. DESCRIPTORAlways code as if the guy who ends up maintaining your codewill be a violent psychopath who knows where you live.
  69. 69. I KNOW NOTHING. I’M FROM BARCELONA What is the matter Mister Fawlty?The problem Manuel, is that I want to use constants in my application But I want to define them in my framework and extend them in my application Enumeration won’t do – there’s no inheritance 69 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  70. 70. DESCRIPTOR – THE PROBLEM (1)70 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  71. 71. DESCRIPTOR – THE PROBLEM (2)71 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  72. 72. ENUM?72 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  73. 73. STRING COLLECTION?73 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  74. 74. STRING COLLECTION74 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  75. 75. I KNOW NOTHING. I’M FROM BARCELONA Descriptor Defines a restricted but application specific extendible list of definitionsUseful when Enums can not be inherited Framework defines enumeration types that need to be extended in application code Define layer supertype using reflection Pre-define frequently used instances 75 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  76. 76. DESCRIPTOR PATTERN76 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  77. 77. DESCRIPTOR PATTERN - DEFINITION77 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  78. 78. DESCRIPTOR PATTERN – EXTENDED DEFINITION78 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  79. 79. DESCRIPTOR PATTERN – USE IN FRAMEWORK79 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  80. 80. DESCRIPTOR PATTERN – USE IN APPLICATION80 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  81. 81. MYFIRSTSURVEY81 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  82. 82. DESCRIPTOR PATTERN – USE IN ASP.NET MVC82 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  83. 83. DESCRIPTOR PATTERN – USE IN ASP.NET MVC83 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  84. 84. AGENDA An short story How frameworks can Software architectureabout frameworks get you in trouble versus frameworks The layer Introducing the The supertype descriptor pattern manager-provider84 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  85. 85. DEPENDENCY INJECTIONXML is like violence. If it doesn’t solve your problems, you are not using enough of it.
  86. 86. A NEW DISEASE? What do you think it is? Create true separation between definition and implementation, so that the two can vary independently and can be replaced easily So … Single topic servicesLooks like a typical case of dependency injection Single or multiple implemenations need to Call functionality without having to know be handled, which differs dependant on the actual implementation context, like with Windows API, logging or error handling Implement replaceable services Unit testing Apply implementations in different contexts Plug-in services at run-time 86 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  87. 87. DIFFERENT VARIATIONS? Did you know that there are different types of this dependency injection?Yeah, sure. There’s Arggh… Constructor injection Property (setter) injection And even manual injection Who cares doc? 87 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  88. 88. DEPENDENCY INJECTION – CONSTRUCTOR INJECTION88 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  89. 89. DEPENDENCY INJECTION – MANUAL INJECTION c89 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  90. 90. DEPENDENCY INJECTION – WHAT TO PLUG IN90 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  91. 91. MANAGER – PROVIDER"Teamwork is a lot of people doing what I say“ - Marketing executive, Citrix Corporation
  92. 92. MANAGER-PROVIDER PATTERNDefinition Create a simple static facade (manager) for a (set of) interfaced implementations (providers)In practice Manager holds one or a collection of providers Provider implement a particular interface Manager has methods to call methods from interface At run-time, using dependency injection, actual providers are injected92 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  93. 93. MANAGER – VALIDATIONMANAGER93 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  94. 94. INTERFACE94 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  95. 95. MANAGER – INITIALIZATION (USING DEPENDENCY INJECTION) 95 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  96. 96. CONFIGURATION OF IMPLEMENTATION96 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  97. 97. MANAGER - EXECUTING METHODS97 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  98. 98. CLIENT – CALLING METHODS98 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  99. 99. MANAGER-PROVIDER PATTERNUseful when Generic services need to be called, which may have different implementations Manager prevents having to loop through each of a list of providers Flexibility to add or remove providers without changing application code Providers differ e.g. in development code, test code or deployed codeUse for Task Management View Management Binding and Persisting Resource Management State Management Logging Datasource interaction Testing! 99 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  100. 100. ARCHITECTURAL CHANGES IN AGILE?Re-factoring or re-architecting?
  101. 101. PagesPresentation UserControls Panels What to do? Use casesProcess Workflow • Identify your architectural requirements • Set up a (layered) architectureDomain • Identify layers and layer elements Domain objects / Entities Factories / Repositories • List the elements responsibilities / Value objects / Smart references Enums • List the elements collaborations • And only then map to frameworks Service gatewaysData / Services Service locators • Create a thin “umbrella” of independence [Mapping] responsible for managing dependencies Exact SAP BizTalk Java DatabasesOutside world Services / ESB 101 HOW FRAMEWORKS CAN KILL YOUR AGILE PROJECTS ©2012 Sander Hoogendoorn. All Rights Reserved
  102. 102. REFERENCES AND QUESTIONSsander.hoogendoorn@capgemini.com | sander@ditisagile.nl | @aahoogendoorn | @ditisagilewww.sanderhoogendoorn.com | www.ditisagile.nl | www.smartusecase.com | www.accelerateddeliveryplatform.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×