Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
The integrations we fear
and how we can manage them
Karoline Klever
@karolikl
I fear badly written APIs
New_GetChanges()
New2_GetChanges()
Old_GetChanges()
Old_New_GetChanges()
Test_GetChanges()
I fear heavy payloads
I fear uneccessary complexity
I fear third party vendors who are
unwilling to cooperate
«We’d rather you didn’t use our APIs as they
require about 200 hours of training»
Quote - Head of Account and Sales
The phases of integration projects
Setup
Implementation
The Setup phase
Find out who to talk to
Communicating the hard way
You
Project Manager
Account Manager
Tech guy
Project Manager
Reducing the complexity of communication
You Tech guy
The Setup phase
Find out who to talk to
Ask for documentation
The Setup phase
Find out who to talk to
Ask for documentation
Agree on jurisdiction and specification
The Setup phase
Find out who to talk to
Ask for documentation
Agree on jurisdiction and specification
Get access to everyt...
The Setup phase
Find out who to talk to
Ask for documentation
Agree on jurisdiction and specification
Get access to everyt...
Start setting up as soon as possible
Current task Integration Something else
Deadline
Start setting up as soon as possible
Current task Integration Something else
Setup Implementation Something else
Deadline
...
Start setting up as soon as possible
Current task Integration Something else
Setup Implementation Something else
Deadline
...
Time consuming communication
Time consuming communication
22 emails
15 days
The phases of integration projects
Setup
Implementation
The Implementation phase
Badly written APIs
Heavy payloads
Uneccessary complexity
Third-party vendors unwilling
to coopera...
The Implementation phase
Facade pattern
Integration tests
Logging
One facade, one API
ProductFacade.cs
Product API
One facade, several APIs
ProductInventoryFacade.cs
Product API Inventory API
Helper facades
InventoryFacade.cs
Product API ProductFacade.cs
Example: Without facades
Example: With facades
How does the facade look?
The Implementation phase
Facade pattern
Integration tests
Logging
What do I test?
Internal classes/subsystems
External components
Application Service Layer
Example: System under test
Example: Integration test
The Implementation phase
Facade pattern
Integration tests
Logging
Minimal logging
Lots of logging
Logging with PostSharp
OnMethodBoundaryAspect
Injecting code
Decompiled
PostSharp attribute
@karolikl
karoline.klever@epinova.no
NDC Oslo 2014: The integrations we fear and how we can manage them
Upcoming SlideShare
Loading in …5
×

NDC Oslo 2014: The integrations we fear and how we can manage them

Slides from NDC Oslo 2014: http://ndcoslo.com/

View a video of the presentation here: http://vimeo.com/97349265

Have you ever received an API or a set of webservices that just weren't good enough? This happens more often than we'd like, and when it happens it's important to know what you can do to make sure your project isn't infected with the lack of quality from third party vendors. I'll talk you through the different stages in your project, highlighting the steps you can take to minimize the risks of integrating your system with another, while making sure it will be maintainable in the future.

  • Be the first to comment

  • Be the first to like this

NDC Oslo 2014: The integrations we fear and how we can manage them

  1. 1. The integrations we fear and how we can manage them Karoline Klever @karolikl
  2. 2. I fear badly written APIs
  3. 3. New_GetChanges() New2_GetChanges() Old_GetChanges() Old_New_GetChanges() Test_GetChanges()
  4. 4. I fear heavy payloads
  5. 5. I fear uneccessary complexity
  6. 6. I fear third party vendors who are unwilling to cooperate
  7. 7. «We’d rather you didn’t use our APIs as they require about 200 hours of training» Quote - Head of Account and Sales
  8. 8. The phases of integration projects Setup Implementation
  9. 9. The Setup phase Find out who to talk to
  10. 10. Communicating the hard way You Project Manager Account Manager Tech guy Project Manager
  11. 11. Reducing the complexity of communication You Tech guy
  12. 12. The Setup phase Find out who to talk to Ask for documentation
  13. 13. The Setup phase Find out who to talk to Ask for documentation Agree on jurisdiction and specification
  14. 14. The Setup phase Find out who to talk to Ask for documentation Agree on jurisdiction and specification Get access to everything you need
  15. 15. The Setup phase Find out who to talk to Ask for documentation Agree on jurisdiction and specification Get access to everything you need Demand a test environment
  16. 16. Start setting up as soon as possible Current task Integration Something else Deadline
  17. 17. Start setting up as soon as possible Current task Integration Something else Setup Implementation Something else Deadline Current task
  18. 18. Start setting up as soon as possible Current task Integration Something else Setup Implementation Something else Deadline Setup Implementation Something else Current task Current task
  19. 19. Time consuming communication
  20. 20. Time consuming communication 22 emails 15 days
  21. 21. The phases of integration projects Setup Implementation
  22. 22. The Implementation phase Badly written APIs Heavy payloads Uneccessary complexity Third-party vendors unwilling to cooperate Hard to maintain
  23. 23. The Implementation phase Facade pattern Integration tests Logging
  24. 24. One facade, one API ProductFacade.cs Product API
  25. 25. One facade, several APIs ProductInventoryFacade.cs Product API Inventory API
  26. 26. Helper facades InventoryFacade.cs Product API ProductFacade.cs
  27. 27. Example: Without facades
  28. 28. Example: With facades
  29. 29. How does the facade look?
  30. 30. The Implementation phase Facade pattern Integration tests Logging
  31. 31. What do I test? Internal classes/subsystems External components Application Service Layer
  32. 32. Example: System under test
  33. 33. Example: Integration test
  34. 34. The Implementation phase Facade pattern Integration tests Logging
  35. 35. Minimal logging
  36. 36. Lots of logging
  37. 37. Logging with PostSharp
  38. 38. OnMethodBoundaryAspect
  39. 39. Injecting code
  40. 40. Decompiled
  41. 41. PostSharp attribute
  42. 42. @karolikl karoline.klever@epinova.no

×