An experience with Contract-Driven Development

A bit of background

How did we do (and are still doing)?

  1. We divided the new feature in two subsystems (provider/consumer architecture)
  2. We defined a contract between the two subsystems
  3. We broke each subsystem in tasks that could (kind of) be developed independently
  4. We are feeding the consumer with hardcoded fake input.
  5. We are programming, reviewing and testing each subsystem independently and in parallel
  6. Once ready, we’ll remove the hardcoded parts and we’ll connect both subsystems

1. We divided the new feature in two subsystems (provider/consumer)

Architecture of the new feature

2. We defined a contract between the two subsystems

3. We broke each subsystem in tasks that could (kind of) be developed independently

4. We are feeding the consumer with hardcoded fake input

The writer is fed with fake data

5. We are programming, reviewing and testing each subsystem independently and in parallel

  • One is created by the Report Generator. It’s the python dictionary encoded in raw JSON. It has the real expected data from the db and related calculations.
  • The other is a fixed XLS file.
The system produces two documents with different purposes

6. Once ready, we’ll remove the hardcoded parts and we’ll connect both subsystems

Final thoughts

--

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

3 Nodes Mix kubernetes Cluster with Windows 2019 node on Linux control plane

Advantages to use debian intepreter packages over package manager itself

Writing Your Own Changelog Generator with Git

What is the Semantic Web?

osome7 customer care number/8584892730//8584892730/osome7 customer care…

My Journey to Make Game with Unity

Telegram Bot with Artificial intelligence in 10 minutes

How to allow Zendesk Agents to submit tickets as End Users

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Carles Climent

Carles Climent

More from Medium

How to build a high performing software development team

Software Development in Eastern Europe in 2022

nearshoring, nearshore ouosurcing, software development in eastern Europe, Eastern European IT companies, software developers in Eastern Europe, Bulgaria, Dreamix, healthcare software development

Meet our new Software Engineer at WeGift, Maike Fischer

I’m a Software Engineer. What now?