Cost of a Dependency
This presentation will challenge a common movement that is sweeping the lands unnoticed. Agile micro-service projects that live in a single VCS repository, that are slow to test, hard to understand need to be deployed and versioned as a single unit. While that sounds silly, ask these questions of your project:
- Are you using a layered architecture?
- Do you generally have an interface for each class (Java/.NET)?
- Do your Views live in one folder and your ViewModels in another?
- Has your platform’s package manager made it too easy to just add, more?
- Has your team mistaken “reuse” as a goal, not an outcome?
- Does your team favor living code over doco, yet no one understands how the system works?
- Could you make a one line code change, test it, commit it, package it and deploy it in under 15min?
- Do you think you are doing Microservices, but all the code lives in the same repo? Share the same contracts? Get versioned and deployed together? Share a data store?
Even if you are not on the Microservices band wagon, will your framework of choice be relevant in 5 years? Can your team pivot to new libraries, GUI or data store technologies in days or weeks? Or, are you actively building the next legacy project churn-and-burn style?
This session will pose some challenges to prevailing convention and ask how did we get here. More importantly we will discover the costs of our decisions and how we start applying an engineering instead of religious approach to design.