ndc oslo 2014: the integrations we fear and how we can manage them

43
The integrations we fear and how we can manage them Karoline Klever @karolikl

Upload: karoline-klever

Post on 28-Nov-2014

99 views

Category:

Technology


1 download

DESCRIPTION

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.

TRANSCRIPT

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

The integrations we fear and how we can manage

themKaroline Klever

@karolikl

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

I fear badly written APIs

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

New_GetChanges()

New2_GetChanges()

Old_GetChanges()

Old_New_GetChanges()

Test_GetChanges()

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

I fear heavy payloads

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

I fear uneccessary complexity

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

I fear third party vendors who are unwilling to cooperate

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

«We’d rather you didn’t use our APIs as they require about 200 hours of

training»

Quote - Head of Account and Sales

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

The phases of integration projects

Setup

Implementation

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

The Setup phase

Find out who to talk to

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

Communicating the hard way

You

Project ManagerAccount Manager

Tech guy

Project Manager

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

Reducing the complexity of communication

You Tech guy

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

The Setup phase

Find out who to talk to

Ask for documentation

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

The Setup phase

Find out who to talk to

Ask for documentation

Agree on jurisdiction and specification

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

The Setup phase

Find out who to talk to

Ask for documentation

Agree on jurisdiction and specification

Get access to everything you need

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

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

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

Start setting up as soon as possible

Current task Integration Something else

Deadline

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

Start setting up as soon as possible

Current task Integration Something else

Setup Implementation Something else

Deadline

Current task

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

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

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

Time consuming communication

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

Time consuming communication

22 emails

15 days

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

The phases of integration projects

Setup

Implementation

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

The Implementation phase

Badly written APIs

Heavy payloads

Uneccessary complexity

Third-party vendors unwilling to cooperate

Hard to maintain

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

The Implementation phase

Facade pattern

Integration tests

Logging

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

One facade, one API

ProductFacade.cs

Product API

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

One facade, several APIs

ProductInventoryFacade.cs

Product API Inventory API

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

Helper facades

InventoryFacade.cs

Product API ProductFacade.cs

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

Example: Without facades

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

Example: With facades

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

How does the facade look?

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

The Implementation phase

Facade pattern

Integration tests

Logging

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

What do I test?

Internal classes/subsystems

External components

Application Service Layer

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

Example: System under test

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

Example: Integration test

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

The Implementation phase

Facade pattern

Integration tests

Logging

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

Minimal logging

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

Lots of logging

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

Logging with PostSharp

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

OnMethodBoundaryAspect

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

Injecting code

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

Decompiled

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

PostSharp attribute

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

@karolikl

[email protected]